Что я пытаюсь сделать?

Что я пытаюсь сделать?

Что я пытаюсь сделать?

Установите Arch с полным шифрованием системы (без загрузочного раздела и раздела носителя) с помощью LVM поверх LUKS на внешнем жестком диске (sdb) с помощью: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 ..."

Вот моя запись fstab для root

<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

решение1

Ваша проблема, по-видимому, заключается в разнице между :cryptгруппой томов /dev/sdb2и использованием lvmpool-имени группы томов в качестве параметра для root.

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(а не Syslinux), с LVM поверх LUKS. Так что я бы следовал этой настройке.

То, что у вас есть дополнительный, незашифрованный раздел, не имеет значения.

решение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

Это обновит ваш /boot/grub/grub.cfg с учетом информации, которую вы добавили в /etc/default/grub.

После того, как я это сделал, система сразу же загрузилась и предложила разблокировать корневой раздел.

решение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"

Команда Run:

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 

Связанный контент