Niedawno zainstalowałem Ubuntu 12.10 i wymaga hasła do uruchomienia (zainstalowałem go z zaszyfrowanym systemem plików).
Czy muszę ponownie zainstalować, aby przejść do standardowego niezaszyfrowanego systemu plików?
Niedawno zainstalowałem Ubuntu 12.10 i wymaga hasła do uruchomienia (zainstalowałem go z zaszyfrowanym systemem plików).
Czy muszę ponownie zainstalować, aby przejść do standardowego niezaszyfrowanego systemu plików?
Odpowiedzi:
Jeśli Ubuntu poprosi o hasło szyfrujące podczas rozruchu (tj. Na konsoli tekstowej przed wyświetleniem ekranu logowania), oznacza to, że użyto metody szyfrowania całego dysku. (Jest na to więcej niż jeden sposób, ale zachowam ogólną odpowiedź.) Szyfrowanie jest obsługiwane przez dodatkową warstwę oprogramowania między systemem plików a fizycznym dyskiem twardym, a nie sam system plików.
Nie ma prostej metody ani narzędzia do cofnięcia tego. Przy odrobinie wiedzy na temat działania systemów Linux można to zrobić. Trzeba przenieść cały system plików (lub wszystkie pliki) na inną partycję (z wystarczającą ilością wolnego miejsca) lub zewnętrzny dysk twardy. Następnie usuń zaszyfrowany pojemnik i ponownie utwórz system plików bez szyfrowania. Na koniec upewnij się, że nowy system plików jest poprawnie rozpoznawany przez moduł ładujący mount -a
przed ponownym uruchomieniem.
Jeśli to możliwe, najlepiej unikać tej czasochłonnej i podatnej na błędy procedury. Po prostu wykonaj świeżą instalację. Dla nowych użytkowników jest to najszybsza i najbezpieczniejsza opcja.
PS: Możliwe, że możesz zmienić hasło szyfrowania, prawdopodobnie na pusty ciąg. Następnie odszyfrowanie wymaga jedynie naciśnięcia Enter. Być może możesz pójść dalej i pominąć monit (teraz bezużyteczny) o hasło. Nie wyłącza to jednak szyfrowania. Dane nadal byłyby szyfrowane, chociaż szyfrowanie byłoby bezużyteczne, ponieważ klucz można zgadnąć w trywialny sposób.
dd
a sterowniki bazowe nie piszą, dopóki nie zakończą odczytu każdego bloku (zapewne istnieją flagi i ustawienia, aby to zapewnić) 2. odczyt / zapis bloki nie nakładają się na krawędzie bloków szyfrowania (można to sprawdzić, może wymagać pewnej matematyki) 3. ważne informacje nagłówka potrzebne do odszyfrowania nie są nadpisywane przed zakończeniem (sprawdź podstawowy format szyfrowania, być może przetwarzany od początku do początku). Myślę, że jest to możliwe, ale wymagałoby bardziej starannej konfiguracji i analizy.
Poniżej moje rozwiązanie, które zadziałało. Pamiętaj, że nie jestem specjalistą od Linuksa, więc może nie być to najlepsze rozwiązanie. W każdym razie nie mogłem znaleźć lepszego.
UWAGA : Ilekroć mówię, mam na myśli
/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition
Uruchom z płyty CD na żywo. Użyłem 32-bitowego pulpitu Ubuntu 13.10 ISO.
Zamontuj partycję:
sudo cryptsetup luksOpen /dev/sda5 crypt1
Skopiuj dane źródłowe na docelową partycję i zapisz dd PID w zmiennej pid:
sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!
Spowoduje to wysłanie polecenia ping co drugi proces dd z sygnałem USR1 i statusem wyników dd:
while sudo kill -USR $pid; do sleep 1; done
Jeśli nie lubisz powyższej metody „while”, możesz użyć zegarka. Otwórz inne okno terminala i uzyskaj PID:
pgrep -l '^dd$' | awk '{ print $1 }'
Zamień na swój identyfikator procesu:
watch kill -USR1 <pid>
Powinieneś zobaczyć wyjście w terminalu dd co 2s.
Po zakończeniu możesz zamontować nieszyfrowaną partycję, aby sprawdzić, czy jest w porządku:
sudo mount /dev/sda3 /mnt
Następnie odmontuj partycję:
sudo umount /dev/sda3
Zwolnij partycję crypt:
sudo cryptsetup luksClose /dev/sda5
Uruchom gparted. Usuń partycję LUKS (zarówno rozszerzoną, jak i logiczną). Zmień rozmiar / dev / sda3 i przesuń w lewo. Utwórz partycję wymiany.
Uwaga: Przeniesienie / dev / sda3 w lewo może potrwać długo. Dla mnie zajęło to 30 minut na partycji 120 GB i dysku SSD. Jeśli masz 500 GB + HDD, przygotuj się na kilka godzin oczekiwania. Możesz chcieć utworzyć swap przed partycją zamiast przenosić / dev / sda3.
Utwórz nowy system plików wymiany na partycji wymiany:
sudo mkswap /dev/sda2
i przechowuj gdzieś UUID.
Uzyskaj identyfikator UUID partycji głównej:
sudo blkid /dev/sda3
Edytuj fstab:
sudo nano /etc/fstab
Usuń lub skomentuj linie nakładek i tmpfs.
Dodaj zastąpienie wiersza wynikiem blkid:
UUID=<uuid_root> / ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0
Usuń plik:
rm /etc/crypttab
Zaktualizuj initramfs, aby uniknąć błędów typu „cryptsetup: evms_activate nie jest dostępny”:
sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all
Dla mnie to zadziałało, ale jest szansa, że wykonanie powyższej czynności krok po kroku może nie działać. Zanim odkryłem metodę update-initramfs, kilka razy instalowałem ponownie jądro, modyfikowałem grub. Nie powinno to jednak dotyczyć Ciebie. Pamiętaj, że powyższe instrukcje mogą usunąć Twoje dane, więc bądź ostrożny i wykonaj KOPIĘ ZAPASOWĄ , PRZED kontynuowaniem.
Na wypadek problemów z jądrem (chrootowany i / boot zamontowany):
uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic
Oczywiście zastąp linux-image-3.XY-ZZ datą jądra od uname.
lub GRUB (poza chroot):
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)
Więcej informacji: https://help.ubuntu.com/community/Boot-Repair
Powodzenia
/etc/initramfs-tools/conf.d/resume
ręcznie zmienić identyfikator UUID partycji wymiany i zaleciłbym skopiowanie zawartości systemu plików z cp -a
lub, rsync -a
ponieważ byłoby to ogólnie szybsze i bezpieczniejsze dla dysków SSD.
dd
kopiuje całą partycję, nawet bloki, które powinny być puste, co powoduje niepotrzebne zapisy na SSD (a na niektórych nawet szkodzi wydajności zapisu do prawie wszystkich komórek). Kilka lat temu ja i niektórzy inni odkryliśmy również, że kopiowanie dd
i aktywowanie TRIM (opcja odrzucania EXT4) spowoduje, że TRIM usunie bloki, które uważa za puste i po kilku godzinach pozostawi zepsutą instalację.
W przypadku, gdy utrzymanie szyfrowania jest w porządku, ale wyłączenie monitu o hasło jest o wiele prostsze, wystarczy ustawić trywialne hasło, takie jak „hasło”, a następnie zapisać to trywialne hasło w initramfs w postaci czystego tekstu. Wyłącz hasło szyfrowania LUKS .
Zasadniczo dodaj skrypt przechwytujący, który z kolei dodaje „skrypt klawiszy” do initramfs. Zwykle te skrypty są używane do uzyskania hasła przez Bluetooth, z pamięci USB itp., Ale w tym przypadku po prostu wydrukuj trywialne hasło.