Używam Ubuntu 18.04.
Zmieniłem nazwę /etc
folderu na apache2
. To był mój największy błąd
Teraz nie mogę zmienić nazwy, ponieważ muszę go użyć sudo
, ale kiedy próbuję, pojawia się błąd
sudo: unknown uid 1000
Jak mogę rozwiązać ten problem? Nie mam systemu na żywo do rozruchu, aw trybie odzyskiwania terminal główny otwiera się, ale potem zamyka cannot open password database
.
/mnt
, dokonaj zmiany nazwy, uruchom ponownie.Odpowiedzi:
Prostym sposobem na rozwiązanie takich problemów jest często uruchomienie systemu na żywo, zamontowanie partycji głównej,
/mnt
a następnie zmiana nazwy pliku.Jeśli nie masz systemu na żywo lub nie możesz go utworzyć, lub nie masz fizycznego dostępu do systemu, ale możesz zrestartować komputer i uzyskać menu GRUB, możesz użyć edytora GRUB, aby uzyskać powłokę root i zmienić nazwę plik.
Uruchom ponownie lub wyłącz zasilanie, włącz i, jeśli normalnie nie widzisz menu GRUB podczas uruchamiania, naciśnij Shiftlub, Escaby przejść do menu GRUB.
Przesuń kursor w dół do opcji zaawansowanych dla Ubuntu i naciśnij enter, a następnie naciśnij, eaby edytować opcje rozruchu (tylko jeden raz - zmiany tutaj nie będą trwałe, więc nie musimy później sprzątać).
Zobaczysz ekran, który wygląda mniej więcej tak 1 :
Przesuń kursor w dół do linii, która zaczyna się od,
linux
a następnie przesuń kursor na koniec tej linii lub w dowolne miejsce wśród parametrów rozruchowych jądra. Upewnij się, że jesteś na właściwej linii i wpisz tutaj ostrożnie, ponieważ system może się nie uruchomić bez instalacji/etc
.Dodaj tekst
init=/bin/bash
i naciśnij, F10aby uruchomić.To uruchomi system z powłoką Bash jako init. Otrzymasz root root, a system plików zostanie zamontowany tylko do odczytu. 2 Aby system plików był zapisywalny, wprowadź polecenie
Teraz możesz zmienić nazwę
/etc
(możeszls
najpierw)Teraz możesz zrestartować komputer lub dokończyć rozruch normalnie z tego miejsca, zastępując powłokę roota zwykłym systemem init 3 :
Przetestowałem tę procedurę na Ubuntu MATE 18.04.
1 Wielkie podziękowania dla Kulfy za uzyskanie dobrej jakości zrzutu ekranu edytora GRUB z VirtualBox!
2 Chociaż
/etc
w tym scenariuszu nie można ustawić PATH na podstawie plików konfiguracyjnych , Bash automatycznie ją ustawi .3 Jeśli
exec systemd
to nie działa,exec /sbin/init
powinieneś załatwić sprawę. Jeśli nie,readlink -e /sbin/init
należy podać ścieżkę do dowolnego programu inicjującego, który powinien być uruchomiony, a następnie można podaćexec
pełną ścieżkę. Jeśli nie możesz postępować w ten sposób, po prostu wpiszreboot
.źródło
F10
pojawieniu się zaledwie kilku linii i zatrzymuje się na pustym ekranie. Czy możesz coś zasugerować?Jeśli masz aktywne złącze USB, powinieneś być w stanie uruchomić się na nim i zamontować istniejący system plików, a następnie zmienić jego nazwę
/etc
z tego miejsca. Oto samouczek na temat tworzenia Live USB, jeśli jest to potrzebne.Po uruchomieniu na żywo USB (jeśli używasz dysku Ubuntu 18.04), wybierz „Wypróbuj Ubuntu bez instalacji”, a zasadniczo da ci pełną instancję instalacji Ubuntu, która nie będzie trwała po wyłączeniu. Po uruchomieniu masz kilka opcji:
Sposób wiersza poleceń
Otwórz terminal i uruchom
lsblk
. Poszukaj woluminu, który byłby dyskiem oryginalnej instalacji i zanotuj, jaki to numer (/ dev / sd #)Następnie utwórz punkt montowania dysku za pomocą
mkdir -p /mnt/directory
, a następnie zamontuj dysk za pomocąsudo mount /dev/sd# /mnt/directory
. Przejdź do katalogu za pomocącd /mnt/directory
i powinieneś być teraz w katalogu głównym instalacji, ale teraz z działającymsudo
poleceniem. uruchomsudo mv apache2 etc
i uruchom ponownie w hipotetycznie działającym systemie operacyjnym.Graficzny sposób
Otwórz narzędzie dyskowe, wyszukując dyski. Wybierz wolumin, który wygląda jak dysk instalacyjny, i zamontuj go. Otwórz menedżera plików i wybierz zamontowany wolumin, kliknij prawym przyciskiem myszy
/apache2
folder i zmień jego nazwę na/etc
, a następnie uruchom ponownie.źródło
sudo nautilus
z terminala. (Ubuntu używa „nautilus” jako menedżera plików w taki sam sposób, jak system Windows używa „eksploratora”.)sudo -H nautilus
aby uniknąć sytuacji, w której root stanie się właścicielem plików konfiguracyjnych$HOME
, potencjalnie uniemożliwiając dostęp do nich programom uruchamianym jako zwykły użytkownik. Prawdopodobnie jesteś tego świadomy, ale mówię o tym innym czytelnikom.Utwórz bootowalny USB, jak pokazano tutaj.
Uruchom z USB, naciskając klawisz, jak pokazano tutaj.
Sprawdź swoją partycję systemu plików, uruchamiając
gparted
. Załóżmy, że to sdxy.Uruchom na terminalu
sudo mount /dev/sdxy /mnt
Uruchom na terminalu
sudo mv /mnt/apache2 /mnt/etc
Sprawdź swój system plików w / mnt pod kątem zmiany nazwy.
Uruchom na terminalu
sudo reboot
Po wyświetleniu monitu odłącz USB i naciśnij enter
źródło
mount
program jest bardzo ścisły i zawsze musi być uruchamiany jako root; jedynym wyjątkiem jest sytuacja, gdy system plików jest włączonyfstab
i ma takąuser
opcję. Programudisksctl
pozwala zwykłym użytkownikom montować urządzenia, używając na przykładudisksctl mount -b /dev/sda1
(tworzy odpowiedni punkt montowania w/media/$USER/
). Nie próbowałem używaćudisksctl
z systemu na żywo, ale w systemie na żywo zawsze jest się uprzywilejowanym użytkownikiem, który może uruchamiaćsudo
się bez hasła, więc nie ma potrzeby używania narzędzi,udisksctl
które w przeciwnym razie