我想做什麼?

我想做什麼?

我想做什麼?

使用 LVM 在外部硬碟 (sdb) 上的 LUKS 之上安裝具有完整系統加密(無啟動和媒體分割區)的 Arch,使用:http://suddenkernelpanic.blogspot.com/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html

我的問題是什麼:

系統啟動 grub,似乎對在哪裡找到 root 存在一些混亂

錯誤:找不到裝置「uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d」。跳過 fsck

錯誤:無法找到根設備“uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d”

我偏離本教程的地方

  1. 我按照教程建議使用了 Grub 而不是 Syslinux (這似乎是癥結所在),而且 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 ..."

這是我的 root 的 fstab 條目

<filesystem>
/dev/mapper/lvmpool-root                                                 
UUID=f7153c4b-e6ea-48a2-9ee1-bf38c037173d / ext4 rw,relatime,data=ordered   0 1

目前的解決方法

我仍然可以使用該系統,因為在出現錯誤後,它會讓我進入恢復 shell,在這種類型下我可以簡單地執行以下操作:

cryptsetup luksOpen /dev/sdb2 crypt 
enter password

然後退出恢復 shell,它會讓我回到正常的 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

答案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

有匹配的:MyStorageMyStorage-。那專門針對grub(而不是 Syslinux),LVM 位於 LUKS 之上。所以我會遵循這個設定。

你有一個額外的、未加密的分割區並不重要。

答案2

感謝 Anthon 的上述回答,它對解決我的問題做出了很大貢獻。

看來我的問題的解決方案分為兩部分。

  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

這將使用您新增至 /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 

相關內容