如何使用 USB 闪存驱动器从(另一个)硬盘上的分区启动 Linux?
我正在尝试在硬盘驱动器上的加密分区上安装 Linux(在 LUKS 上使用 LVM)。
由于/boot
必须位于单独的未加密分区上,因此我想将其存储在 USB 闪存驱动器上。
我的计划是将 GRUB (2) 安装到闪存驱动器 ( /dev/sdb
) 并从其 MBR 引导 Linux,或者如果驱动器已拔出,则只需从硬盘驱动器 ( /dev/sda
) MBR 引导 Windows。
我将 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
GRUB 详细信息
/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。
答案1
你有没有尝试过
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
答案2
两件事:你能先擦除 USB 密钥吗?我的印象是一条简洁的“读取错误”消息来自旧版本的 grub。
你检查过你的内容了吗grub.cfg
? GRUB_DISABLE_UUID_LINUX
在有多个驱动器的情况下可能无法执行您想要的操作(它将传递一个设备节点名称)。我会重新运行update-grub
该行并将其注释掉。