私は何をしようとしているのでしょうか?

私は何をしようとしているのでしょうか?

私は何をしようとしているのでしょうか?

次のコマンドを使用して、外付けハードドライブ (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' が見つかりません

このチュートリアルから外れた点

  1. チュートリアルで提案されているように、Syslinuxの代わりにGrubを使用しました(これが核心のようです)が、Grubの解決策は本当に曖昧です。

  2. 私のパーティション スキームは、暗号化に関係のない追加の 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-ページ特にターゲットはgrubLUKS 上の LVM です (Syslinux ではありません)。そのため、そのセットアップに従います。

暗号化されていない追加のパーティションがあっても問題ありません。

答え2

Anthon さん、上記の回答をありがとうございます。問題解決に大いに役立ちました。

私の問題の解決策は 2 つの部分から成っているようです。

  1. 私の場合、/etc/default/grub のエントリは次のようになります。

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdb2:lvmpool ルート=/dev/mapper/lvmpool-root"

各エントリを詳しく見てみましょう:

cryptdevice は暗号化を適用したパーティションで構成されます。私の場合は /dev/sdb2 と lvmpool (ボリューム グループ) です。

root は、暗号化されたルート lvmpool (sdb2 にあります) の場所を指しているだけです。

  1. エントリが作成された後 (これは私にとって大きな間違いでした)、次を実行する必要があります。

    grub-mkconfig -o /boot/grub/grub.cfg

これにより、/etc/default/grub に追加した情報で /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 

関連情報