Ich suche nach einer Möglichkeit, das folgende Setup in Gentoo durchzuführen:
/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
|
+- /dev/mapper/root-fs -> / (ext4)
+- /dev/mapper/swap -> (swap)
Es handelt sich grundsätzlich um dasselbe Setup, das Ubuntu bei einer grafischen Installation durchführen würde.
Ich weiß zwar, wie man LUKS und sogar das LVM-Setup manuell einrichtet, aber ich stecke fest, wenn ich es beim Booten zusammenstelle. Wie sage ich dem Kernel und Grub, dass sie die LUKS-Partition entsperren und die richtigen LVM-Partitionen mounten sollen?
Antwort1
Also, ich habe es herausgefunden:
Ich habe die Platte gemäß Handbuch teilweise partitioniert:
# parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)mklabel gpt
(parted)unit mib
(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on
(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 -1
(parted)name 3 lvm
(parted)set 2 boot on
(parted)q
Die einzige Änderung, die ich vorgenommen habe, war, keine Swap- und Root-Partition zu erstellen, sondern eine einzelne Partition zu erstellen und sie lvm zu nennen (der Name ist egal). Als nächstes habe ich LUKS eingerichtet:
# Load the dm-crypt module (probably not nessesary)
modprobe dm-crypt
# Crypt the partition we named lvm (in my case that would be /dev/sda3)
cryptsetup -c aes-cbc-essiv:sha256 -v luksFormat -s 256 /dev/sda3
# Open the luks volume
cryptsetup luksOpen /dev/sda3 sda3-luks
# Setup a LVM physical volume
lvm pvcreate /dev/mapper/sda3-luks
# Setup a volume group
lvm vgcreate vg0 /dev/mapper/sda3-luks
Richten Sie anschließend die eigentlichen Lautstärken ein:
# Fist setup the swap volume
lvm lvcreate -L 2048M vg0
# Then check how many 'extends' are free (Free PE) using lvm vgdisplay
# use that number to use up the rest of the space:
lvm lvcreate -l 7809 vg0
Im Übrigen folgen wir grundsätzlich dem Handbuch, außer dort, wo Sie normalerweise Dinge für /dev/sda3
(swap) oder /dev/sda4
(root) tun würden, wo Sie jetzt /dev/mapper/vg0-lvol0
(swap) und verwenden würden /dev/mapper/vg0-lvol1
.
Wichtig ist, beim Generieren des Kernels (ich habe genkernel
hierfür den Kernel verwendet) zuerst cryptsetup mit zu installieren emerge -av cryptsetup
und dann genkernel
mit den folgenden Parametern auszuführen:
genkernel --luks --lvm --busybox --menuconfig all
Stellen Sie sicher, dass der Kernel LVM und die ausgewählten Hash- und Verschlüsselungsalgorithmen unterstützt (in meinem Fall aes
und sha256
). Folgen Sie dann weiterhin dem Handbuch, bis Sie die grub
-config starten.
Vor dem Ausführen grub2-mkconfig
sollten Sie die Datei bearbeiten /etc/defaults/grub
. (Ich möchte der Vollständigkeit halber anmerken, dass ich nicht sicher bin, ob dies die beste Lösung ist, aber bei mir funktioniert es.)
In diese Datei habe ich Folgendes eingefügt (suchen Sie den Parameter und entfernen Sie die Kommentarzeichen):
GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"
Die richtige UUID finden Sie mit ls -l /dev/disk/by-uuid
. Danach grub2-mkconfig
sollten Sie sowohl den Kernel als auch das Initramfs in finden /boot
. Folgen Sie auch hier dem Handbuch und nach dem Neustart sollten Sie eine Passwortabfrage erhalten.
Hoffe, das hilft anderen.