Linux на жестком диске, загрузчик на USB-накопителе

Как я могу использовать USB-накопитель для загрузки Linux из раздела на другом жестком диске?

Я пытаюсь установить Linux на зашифрованном разделе на жестком диске (используя LVM на LUKS).

Поскольку /boot должен находиться на отдельном незашифрованном разделе, я хотел бы сохранить его на USB-накопителе.

Мой план состоял в том, чтобы установить GRUB (2) на флэш-накопитель ( /dev/sdb ) и загрузить Linux из его MBR, или если диск был отключен, просто загрузите Windows из MBR на жестком диске ( /dev/sda ).


Я установил GRUB (2) в /dev/sdb , но когда я попытался загрузить с флеш-накопителя, я получил следующее сообщение:

Загрузка Grub

Через пару секунд я получил дополнительное сообщение:

Ошибка чтения

В целях тестирования я попытался удалить содержимое /boot , и после получения загрузки с флеш-накопителя я получил одно и то же сообщение.


ДЕТАЛИ ОПРЕДЕЛЕНИЯ

/dev/sda (жесткий диск):

 MBR: Windows Bootloader /dev/sda1 - Windows System Partition /dev/sda2 - Windows Boot Partition /dev/sda3 - Windows Data Partition /dev/sda4 - Linux partition 

/dev/sdb (флэш-накопитель USB):

 MBR: GRUB /dev/sdb1 - Linux /boot Partition 

РЕЗУЛЬТАТЫ ГРУБ

/etc/default/grub :

 GRUB_CMDLINE_LINUX="cryptdevice=/dev/disk/by-uuid/$SDA4_UUID:vg root=/dev/mapper/vg-root resume=/dev/mapper/vg-swap cryptkey=/dev/disk/by-uuid/$SDB1_UUID:ext2:/key" .. GRUB_DISABLE_LINUX_UUID=true 

Команда установки

 grub-install --target=i386-pc --recheck /dev/sdb 

Я использую Arch Linux.

Ты пробовал

 grub-install --target=i386-pc --recheck /dev/sdb1 

Обратите внимание на / dev / sdb1, который кажется вашим USB-устройством.

 MBR: GRUB /dev/sdb1 - Linux /boot Partition 

Возможно, попробуйте это:

 title Start Ubuntu from USB DISK (PC) root (cd) kernel /boot/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper noprompt cdrom-detect/try-usb=true persistent initrd /boot/initrd.lz boot 

Две вещи: вы могли бы сначала стереть ключ USB? У меня создается впечатление, что лаконичное сообщение «read error» приходит из более старых версий grub.

Вы проверили содержимое своего grub.cfg ? GRUB_DISABLE_UUID_LINUX может не делать то, что вам нужно, если есть несколько дисков ( он будет передавать имя узла устройства ). Я бы повторно запустил update-grub , прокомментировав эту строку.