Próbuję skonfigurować pełny zaszyfrowany dysk z oddzielną /boot
partycją i mam pewne problemy.
Spiszę procedurę, którą śledziłem podczas sesji Live DVD Ubuntu 15.04.
Wypełnij dysk „losowymi danymi”
sudo dd if=/dev/urandom of=/dev/sda1 bs=4096 #ok
Utwórz partycje (używając gparted)
- Utwórz tablicę partycji - gpt 2.
- / dev / sda1 ext2 1.5GB #boot
- / dev / sda2 linux-swap 4GB #swap
- / dev / sda3 ext4 15 GB #root
- / dev / sda4 ext4 FREESPACE #home
- Utwórz tablicę partycji - gpt 2.
Szyfruj woluminy
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda1 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda2 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda3 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 /dev/sda4
Otwórz kryptowaluty
cryptsetup luksOpen /dev/sda1 boot cryptsetup luksOpen /dev/sda2 swap cryptsetup luksOpen /dev/sda3 root cryptsetup luksOpen /dev/sda4 home
Format
mkfs.ext2 /dev/mapper/boot mkswap /dev/mapper/swap mkfs.ext4 /dev/mapper/root mkfs.ext2 /dev/mapper/home
Zainstaluj (używając Ubiquity)
- program ładujący na / dev / sda
- / dev / sda1 - użyj jako ext2 - punkt podłączenia / boot
- / dev / sda2 - użyj jako ext2 - punkt podłączenia / boot
- / dev / sda3 - użyj jako ext2 - punkt podłączenia / boot
- / dev / sda4 - użyj jako ext2 - punkt podłączenia / boot
Na koniec instalator ostrzega, że grub-install nie powiódł się (ponieważ wolumin rozruchowy jest zaszyfrowany), więc wybierz „kontynuuj bez bootloadera”.
Wyczyść wolumin rozruchowy
mkfs.ext2 /dev/mapper/boot
Zamontuj głośność
mkdir /mnt/root mount /dev/mapper/root /mnt/root mount /dev/mapper/boot /mnt/root/boot
Zaktualizuj fstab i crypttab
sudo blkid [/dev/sr0: UUID="2015-10-21-16-17-40-00" LABEL="Ubuntu 15.10 amd64" TYPE="iso9660" PTUUID="429817b4" PTTYPE="dos" /dev/sda1: UUID="...#1" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda2: UUID="...#2" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda3: UUID="...#3" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda4: UUID="...#4" TYPE="crypto_LUKS" PARTUUID="..." /dev/mapper/boot: UUID="..." TYPE="ext2" /dev/mapper/swap: UUID="..." TYPE="swap" /dev/mapper/root: UUID="..." TYPE="ext4" /dev/mapper/home: UUID="..." TYPE="ext4"]
fstab
#<file system> <mount point> <type> <options> <dump> <pass> UUID=#1 /boot ext2 defaults 0 2 UUID=#2 none swap sw 0 0 UUID=#3 / ext4 errors=remount-ro 0 1 UUID=#4 /home ext4 defaults 0 2
crypttab
boot UUID=#1 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool, time=3000 swap UUID=#2 luks,swap,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 root UUID=#3 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 home UUID=#4 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=5000
Zaktualizuj obraz initramfs
cd /mnt sudo chroot root mount -t proc proc /proc mount -t sysfs sys /sys mount -t devpts devpts /dev/pts update-initramfs -u #ok
Skonfiguruj bootloader (
/etc/default/grub
)GRUB_ENABLE_CRYPTODISK=y GRUB_PRELOAD_MODULES="luks cryptodisk" GRUB_CMDLINE_LINUX="cryptdevice=UUID#3:root root=/dev/mapper/root resume=/dev/mapper/swap crypto=whirlpool:twofish-xts-plain64:512:0:"
utwórz plik konfiguracyjny
$ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/root'.]
spróbuj na zewnątrz
$ exit $ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.]
Czy popełniłem wcześniej jakiś błąd? Jak mogę nadal poprawnie konfigurować i instalować GRUB?
encryption
grub2
Nicholas Roveda
źródło
źródło
grub
+ twojego tytułu. Podejrzewam, że znalazłeś swoją procedurę szyfrowania na pavelkogan.com/2014/05/23/luks-full-disk-encryption (która jest pierwszą wyszukiwarką google na ten temat). jeśli nie, może to pomoże. Dobre pytanie! i powodzenia!/boot
jako punkt mocowania wszystkiego. Mam nadzieję, że to literówka. 2. Nie/dev
wspinałeś się podczas chrootowania, ale montowałeś oddanych. OoOdpowiedzi:
Popełniłeś kilka błędów, ale głównym problemem jest wszechobecność i grub. Zasadniczo, gdy ustawisz
/
się na zaszyfrowaną partycję i nie utworzysz osobnej partycji/boot
, grub wyświetli komunikat o błędzie:Przegląd procesu
/boot
partycji i zaszyfrowanym pliku btrfs/
przy użyciu standardowego instalatora.chroot
dokonujemy ważnych zmian w konfiguracji i ponownie instalujemy grub na partycji systemowej EFI i ponownie tworzymy initrd.Szczegółowe kroki
sudo apt update && sudo apt upgrade
aby zaktualizować komponenty instalatorafdisk
,gparted
lub innego narzędzia, aby utworzyć 3 partycje:/boot
Przygotuj zaszyfrowaną partycję
Zainstaluj Ubuntu
/dev/sda1
jakoEFI System Partition
/dev/sda2
jako ext2, sformatowany, z punktem podłączenia/boot
/dev/mapper/sda3_crypt
jako btrfs z punktem montowania/
Skopiuj zawartość
/boot
i wykonajchroot
(Wszystko dzieje się teraz jak
chroot
w twoim nowym systemie).Dodaj linię do
/etc/default/grub
Dodaj linię do
/etc/crypttab
. Musisz najpierw uruchomić,sudo blkid
aby znaleźć identyfikator UUID/dev/sda3
(NIE/dev/mapper/sda3_crypt
).Edytuj
/etc/fstab
i usuń wiersz dla/boot
. Pozostałe wpisy są poprawne.Zainstaluj grub na partycji systemowej EFI, wygeneruj nowy grub.cfg i przygotuj initrd.
Opcjonalne podwójne sprawdzenie: podwójne sprawdzenie, które
/boot/efi/EFI/ubuntu/grub/grub.cfg
zawiera wiersze zawierająceinsmod luks
,cryptomount -u <UUID>
poprawne wpisy rozruchu itp. I podwójne sprawdzenie, czy initrd zawieracryptsetup
plik binarny. Jeśli tych rzeczy brakuje, to dlatego, że grub-mkconfig i / lub update-initrd nie mogą dowiedzieć się, w jaki sposób woluminy, które zamontowałeś lub podałeś w fstab, odnoszą się do zaszyfrowanego woluminu w crypttab. (Jest w nich wiele magicznej autokonfiguracji.) Może się tak zdarzyć, jeśli odejdziesz od tego przewodnika, na przykład używając ZFS lub próbując podzielić sda3_crypt na partycje.(Jeśli używasz ZFS zamiast btrfs) grub-mkconfig i update-initrd nie rozpoznają ZFS. Obejście obejmuje (podczas chroot, przed grub-mkconfig / update-initrd) edycję w
/usr/sbin/grub-mkconfig
celu dodania|| true
do linii 139 (która zaczyna się odGRUB_DEVICE=
), dodawanieGRUB_DEVICE="/dev/mapper/sda3_crypt"
do/etc/default/grub
, tworzenie pliku/usr/share/initramfs-tools/conf-hooks.d/forcecryptsetup
z zawartościąexport CRYPTSETUP=y
i pliku/etc/initramfs-tools/conf.d/cryptroot
z zawartościątarget=sda3_crypt,source=UUID=<UUID of sda3>,key=none,discard
. Wszystko to jest dodatkiem do kroków, które należy wykonać, jeśli nie szyfrujesz partycji ZFS (np. Instalowanie narzędzi przestrzeni użytkownika zfs zarówno w systemie live, jak i podczas chroot i usuwanie linii montowanej/
w fstab).Wyjdź z chroota i uruchom ponownie w nowym systemie
Powinieneś zobaczyć gruba pytającego o twoje hasło. Następnie pojawi się menu rozruchu. Po wybraniu Ubuntu ponownie zostaniesz poproszony o podanie hasła. Wtedy będziesz w swoim systemie. Przeczytaj więcej o tym, jak Ubuntu używa BTRFS .
DO ZROBIENIA : Utwórz zaszyfrowaną wymianę (wskazówka: wymaga edycji crypttab, fstab i ponownego uruchomienia
update-initrd
).Ulepszenia
grub-mkconfig
polecenie.grub-install
polecenie.Inne notatki
źródło
fstab
icrypttab
faktycznie nie są poprawne w pytaniu.crypttab
powinien wskazywaćuuid
na surowe/dev/sdxY
urządzenia;fstab
powinien wskazywać otwarte urządzenia szyfrujące na/dev/mapper/label
.grub-install
instrukcji masz--bootloader=ubuntu
parametr. Nie mogę znaleźć tego argumentu w podręcznikach Ubuntu ani GNU . Czy możesz wyjaśnić, co robi lub gdzie jest udokumentowane?