web-dev-qa-db-ja.com

Lrubの上にGVMを使用したLVM

私は何をしようとしていますか?

次のコマンドを使用して、外部ハードドライブ(sdb)のLUKSの上にLVMを使用し、LVMを使用して完全なシステム暗号化(sansブートおよびメディアパーティション)でArchをインストールします http://suddenkernelpanic.blogspot.com/2013/03/Arch-linux -lvm-on-top-of-luks-2013-style.html

私の問題は何ですか:

システムがグラブを起動し、ルートを見つける場所に混乱があるようです

エラー:デバイス '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/Beginners%27_guide

  • wiki.archlinux.org/index.php/Gr…暗号化

  • wiki.archlinux.org/index.php/Dm…oot_loader

  • wiki.archlinux.org/index.php/Dm…VM_on_LUKS

5
Cyberpsychosis

あなたの問題は、: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

一致する:MyStorageMyStorage-があります。その ページ は、特にgrub(Syslinuxではなく)をターゲットにし、LVMをLUKSの上に置きます。だから私はその設定に従います。

暗号化されていない余分なパーティションがあるかどうかは関係ありません。

2
Anthon

上記の回答をありがとう、Anthon、それは私の問題の解決に大きく貢献しました。

私の問題の解決策は2つの部分だったようです。

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

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

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

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

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

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

それを行った後、システムはプロンプトで直接起動し、ルートパーティションのロックを解除しました。

1
Cyberpsychosis

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 
0
user161348