我正在尋找一種方法在 Gentoo 中進行以下設定:
/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
|
+- /dev/mapper/root-fs -> / (ext4)
+- /dev/mapper/swap -> (swap)
它與 Ubuntu 進行圖形安裝時的設定基本相同。
我確實知道如何手動設置 LUKS 甚至 LVM 設置,但在啟動時將它們組合在一起時我遇到了困難。如何告訴核心和 grub 解鎖 LUKS 分割區並掛載正確的 LVM 分割區?
答案1
所以我確實弄清楚了:
我按照手冊對磁碟進行了部分分割區:
# 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
我所做的唯一更改是沒有建立交換分割區和根分割區,而是建立一個分割區並將其命名為 lvm(名稱並不重要)。接下來我設定了 LUKS:
# 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
之後設定實際卷數:
# 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
對於其餘部分,我們基本上遵循手冊,除了您通常為/dev/sda3
(swap) 或/dev/sda4
(root) 執行操作的地方,您現在將使用/dev/mapper/vg0-lvol0
(swap) 和/dev/mapper/vg0-lvol1
。
重要的是,在生成內核(我用於genkernel
此)時首先使用emerge -av cryptsetup
.然後genkernel
使用以下參數運行:
genkernel --luks --lvm --busybox --menuconfig all
請務必設定核心以支援 LVM 以及所選的雜湊和加密演算法(在我的例子中aes
和sha256
)。然後繼續按照手冊進行操作,直到啟動grub
-config。
在運行之前,grub2-mkconfig
您應該編輯該文件/etc/defaults/grub
。 (我應該聲明,作為記錄,我不確定這是否是最好的解決方案,但它對我有用)。
在該文件中,我放置了以下內容(尋找並取消註釋該參數):
GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"
您可以使用 找到正確的 UUID ls -l /dev/disk/by-uuid
。之後grub2-mkconfig
應該會發現核心和 initramfs 很麻煩/boot
。再次按照手冊操作,重新啟動後您應該會收到密碼提示。
希望這對其他人有幫助。