Что я пытаюсь сделать?
Установите 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'
Где я отклонился от этого руководства
Я использовал Grub вместо Syslinux, как предлагается в руководстве (кажется, это и есть суть), и решение для 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 для 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
Спасибо, Антон, за ваш ответ, он очень помог решить мою проблему.
Похоже, решение моей проблемы состояло из двух частей.
- Запись в /etc/default/grub, по моему мнению, должна выглядеть так:
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdb2:lvmpool root=/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"
Команда 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