私は何をしようとしているのでしょうか?
次のコマンドを使用して、外付けハードドライブ (sdb) 上の LUKS 上の LVM を使用して、完全なシステム暗号化 (ブート パーティションとメディア パーティションなし) で Arch をインストールします。http://suddenkernelpanic.blogspot.com/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html
私の問題は何ですか:
システムはGRUBを起動しますが、ルートがどこにあるかが混乱しているようです。
エラー: デバイス 'uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d' が見つかりません。fsck をスキップします
エラー: ルートデバイス 'uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d' が見つかりません
このチュートリアルから外れた点
チュートリアルで提案されているように、Syslinuxの代わりにGrubを使用しました(これが核心のようです)が、Grubの解決策は本当に曖昧です。
私のパーティション スキームは、暗号化に関係のない追加の FAT32 パーティションで構成されています (問題とは無関係のようです)
/etc/default/grub の問題:
(ここが問題だと思う)
私が読んだところによると、このファイル内のいくつかの場所を具体的に更新する必要があるようです。
GRUB_CMDLINE_LINUX="root=/dev/mapper/lvmpool-root cryptdevice=/dev/sdb2:crypt ro"
そしてコメントを外す必要があります:
GRUB_DISABLE_LINUX_UUID=true
問題/etc/mkinitcpio.conf
次のようにフックを追加するはずです
HOOKS="... encrypt lvm2 ... filesystems ..."
これがルートのfstabエントリです
<filesystem>
/dev/mapper/lvmpool-root
UUID=f7153c4b-e6ea-48a2-9ee1-bf38c037173d / ext4 rw,relatime,data=ordered 0 1
現在の回避策
エラーが発生した後、回復シェルに切り替わるので、システムを引き続き使用できます。回復シェルでは、次のように入力するだけで済みます。
cryptsetup luksOpen /dev/sdb2 crypt
enter password
その後、リカバリ シェルを終了すると、通常の arch ログイン プロンプトに戻ります。時間がかからなければ、これはそれほど悪くありません... (起動時にエラーが発生するまで 20 秒ほどかかります)
私が試した他のリソース
私も使用しました:
wiki.archlinux.org/index.php/初心者ガイド
wiki.archlinux.org/index.php/Gr … 暗号化
wiki.archlinux.org/index.php/Dm … oot_loader
wiki.archlinux.org/index.php/Dm … VM_on_LUKS
答え1
:crypt
問題は、ボリューム グループとしての使用と、ルートのパラメーターとしてのボリューム グループ名の/dev/sdb2
使用の違いにあるようです。lvmpool-
GRUB_CMDLINE_LINUX="root=/dev/mapper/lvmpool-root cryptdevice=/dev/sdb2:crypt ro"
例ここ:
cryptdevice=/dev/partition:MyStorage root=/dev/mapper/MyStorage-rootvol
:MyStorage
とが一致していますMyStorage-
。ページ特にターゲットはgrub
LUKS 上の LVM です (Syslinux ではありません)。そのため、そのセットアップに従います。
暗号化されていない追加のパーティションがあっても問題ありません。
答え2
Anthon さん、上記の回答をありがとうございます。問題解決に大いに役立ちました。
私の問題の解決策は 2 つの部分から成っているようです。
- 私の場合、/etc/default/grub のエントリは次のようになります。
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdb2:lvmpool ルート=/dev/mapper/lvmpool-root"
cryptdevice は暗号化を適用したパーティションで構成されます。私の場合は /dev/sdb2 と lvmpool (ボリューム グループ) です。
root は、暗号化されたルート lvmpool (sdb2 にあります) の場所を指しているだけです。
- エントリが作成された後 (これは私にとって大きな間違いでした)、次を実行する必要があります。
grub-mkconfig -o /boot/grub/grub.cfg
それを実行すると、システムはすぐに起動し、ルート パーティションのロックを解除するためのプロンプトが表示されました。
答え3
含めるmkinitcpio.conf
MODULES="dm_mod dm_crypt ext4 aes_x86_64 sha256 sha512"
HOOKS="... encrypt lvm2 ..."
含める/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... quiet "
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX:name"
GRUB_ENABLE_CRYPTODISK="y"
コマンドを実行:
sudo mkinitcpio -p linux
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo grub-install --recheck --target=i386-pc /dev/sda
sudo pacman -S linux linux-headers