У меня есть довольно простая установка ArchLinux в VirtualBox, которую я регулярно копирую на флешку для загрузки на реальной машине. Последние несколько месяцев он работал нормально, но после последнего обновления (8 октября 2018 года) GRUB2 больше не распознает мой системный раздел, зашифрованный LUKS, при загрузке с USB-накопителя и бросает меня в аварийную оболочку. Запуск blkid в этой оболочке показывает, что GRUB2 даже не распознает USB-накопитель, с которого он загружен.

Вот небольшая сводка вещей, которые работают (ed) и которые не работают, предполагая, что проблема не в моем компьютере, а в USB-накопителе, а в моей системе Arch:

                          |                      ArchLinux                      |  Fresh install of
                          |  before update  |  after update  | fresh reinstall  |   Ubuntu 18.04.1
--------------------------+-----------------+----------------+------------------+--------------------
Booting from virtual hard |     worked      |     works      |      works       |       works*
disk in VirtualBox        |                 |                |                  |
--------------------------+-----------------+----------------+------------------+--------------------
Booting from USB          |     worked      |  NOT WORKING   |   NOT WORKING    |       works*
in VirtualBox             |                 |                |                  |
--------------------------+-----------------+----------------+------------------+--------------------
Booting from USB          |     worked      |  NOT WORKING   |   NOT WORKING    |       works*
on a computer             |                 |                |                  |

* with and without full disk encryption (LVM on LUKS)

Естественно, я попытался это исправить, запустив Arch-iso, смонтировав все разделы (USB-флешки), запустив arch-chroot в систему, проверив /etc/mkinitcpio.conf а также /etc/default/grub и работает mkinitcpio -p linux а также grub-mkconfig -o /boot/grub/grub.cfg . Все еще не может загрузиться ... Я также попытался перезаписать флешку с обновленной и все еще работающей системой с виртуального жесткого диска, но безуспешно.

Кто-нибудь знает, что может быть причиной такого поведения, или есть подсказка, где мне нужно искать проблемы? Это не может быть шифрование диска, потому что система на виртуальном жестком диске все еще работает после обновления (и, к сожалению, у меня нет резервной копии до обновления).


ОБНОВЛЕНИЕ: загрузка с резервным initramfs работает нормально во всех случаях (vbox, usb в vbox, usb на машине). Возможно, в mkinitcpio.conf отсутствуют некоторые хуки.


Вот некоторые особенности моей системы Arch: Это система EFI с диском в формате GPT, содержащим только два раздела, раздел FAT32 объемом 200 МБ с GRUB2 на нем и контейнер объемом 15,8 ГБ LUKS, содержащий системный раздел ext4, без участия LVM. Вот краткое изложение файлов конфигурации. Если вам нужно больше, дайте мне знать.

# /etc/mkinitcpio.conf
[...]
HOOKS=(base udev autodetect keyboard keymap modconf block encrypt filesystems fsck)
[...]

# /etc/default/grub
[...]
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/disk/by-uuid/UUID_OF_LUKS_CONTAINER:cryptosystem"
GRUB_CMDLINE_LINUX=""
[...]
#GRUB_DISABLE_LINUX_UUID=true
[...]
#GRUB_ENABLE_CRYPTODISK=y
[...]

# /boot/grub/grub.cfg
[...]
linux /vmlinuz-linux root=UUID=UUID_OF_FS_INSIDE_LUKS rw cryptdevice=/dev/disk/by-uuid/UUID_OF_LUKS_FS:cryptosystem quiet
[...]

Теги: USB, Arch-Linux, Grub2

1 ответ1

0

Удаление ловушки autodetect решает проблему, теперь я могу загрузить систему, не используя резервный образ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .