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) または(root)に対して行うところを、(swap) と を/dev/sda4
使用します。/dev/mapper/vg0-lvol0
/dev/mapper/vg0-lvol1
重要なのは、カーネルを生成するとき (私はgenkernel
これに使用しました)、最初にemerge -av cryptsetup
. を使用して cryptsetup をインストールし、次にgenkernel
次のパラメータで実行することです。
genkernel --luks --lvm --busybox --menuconfig all
aes
必ず、LVM と選択したハッシュおよび暗号化アルゴリズム (私の場合は と)をサポートするようにカーネルを設定してくださいsha256
。その後、-config を開始するまでハンドブックに従ってくださいgrub
。
実行する前に、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
。もう一度、ハンドブックに従ってください。再起動後、パスワード プロンプトが表示されます。
これが他の誰かの役に立つことを願っています。