use*_*422 6 gentoo lvm grub2 luks
我正在寻找一种在 Gentoo 中进行以下设置的方法:
/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
|
+- /dev/mapper/root-fs -> / (ext4)
+- /dev/mapper/swap -> (swap)
Run Code Online (Sandbox Code Playgroud)
它基本上与 Ubuntu 在进行图形安装时所做的设置相同。
我知道如何手动设置 LUKS 甚至 LVM 设置,但是在启动时将它们组合在一起时我会卡住。我如何告诉内核和 grub 解锁 LUKS 分区并安装正确的 LVM 分区?
use*_*422 11
所以我确实弄清楚了:
我按照手册对磁盘进行了部分分区:
# 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
Run Code Online (Sandbox Code Playgroud)
我所做的唯一更改不是创建交换分区和根分区,而是创建单个分区并将其命名为 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
Run Code Online (Sandbox Code Playgroud)
之后设置实际卷:
# 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
Run Code Online (Sandbox Code Playgroud)
其余的我们基本上遵循手册,除了您通常会为/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
Run Code Online (Sandbox Code Playgroud)
确保设置内核以支持 LVM 和所选的散列和加密算法(在我的情况下aes和sha256)。然后继续按照手册进行操作,直到启动grub-config。
在运行之前,grub2-mkconfig您应该编辑文件/etc/defaults/grub。(我应该声明,为了记录,我不确定这是否是最好的解决方案,但它对我有用)。
在该文件中,我放置了以下内容(查找并取消注释参数):
GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"
Run Code Online (Sandbox Code Playgroud)
您可以使用 找到正确的 UUID ls -l /dev/disk/by-uuid。之后grub2-mkconfig应该找到打扰内核和 initramfs /boot。同样,按照手册进行操作,重新启动后,您应该会收到密码提示。
希望这对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
6051 次 |
| 最近记录: |