web-dev-qa-db-ja.com

LUKS + LVMを使用したフルディスク暗号化によるGentooセットアップのガイド

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パーティションをマウントするように指示するにはどうすればよいですか?

6
user3181422

だから私はそれを理解しました:

ハンドブックに従って、ディスクを部分的にパーティション分割しました。

# 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(スワップ)または/dev/sda4(ルート)を通常行う場合は、/dev/mapper/vg0-lvol0(スワップ)および/dev/mapper/vg0-lvol1を使用します。

重要なのは、カーネルを生成するとき(私はこれにgenkernelを使用しました)、最初にemerge -av cryptsetupを使用して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"

ls -l /dev/disk/by-uuidを使用すると、正しいUUIDを見つけることができます。その後、grub2-mkconfigは、/boot内のカーネルとinitramfsを気にする必要があります。もう一度、ハンドブックに従ってください。再起動後、パスワードプロンプトが表示されます。

これが他の人を助けることを願っています。

11
user3181422