How can I use a USB flash drive to boot Linux from a partition on (another) hard drive?

I'm trying to install Linux on an encrypted partition on the hard drive (using LVM on LUKS).

Since /boot must be on a separate, unencrypted partition, I would like to store it on a USB flash drive.

My plan was to install GRUB (2) to the flash drive (/dev/sdb) and boot Linux from it's MBR, or if the drive was unplugged simply boot Windows from the hard drive's (/dev/sda) MBR.

I installed GRUB (2) to /dev/sdb, but when I tried to boot from the flash drive I got the following message:

Grub Loading

After a couple of seconds I got an additional message:

Read Error

For testing purposes, I tried to delete the contents of /boot, and I got the same message after booting again from the flash drive.


/dev/sda (Hard Drive):

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 Flash Drive):

/dev/sdb1 - Linux /boot Partition



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"

Installation command

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

I'm using Arch Linux.

  • Did you include the USB hook in your mkinitcpio.conf before generating your intrd?
    – jasonwryan
    Nov 2 '12 at 21:57
  • Yes I did. As well as all other necessary hooks (usb, encrypt, lvm2, ...).
    – Mark Will
    Nov 2 '12 at 22:12

Have you tried

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

Note the /dev/sdb1 which appears to be your USB device.

/dev/sdb1 - Linux /boot Partition

Maybe try this :

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
  • Getting the following messages: warning: File system 'ext2' doesn't support embedding [...] Embedding is not possible [...]. --force does not help either - error: blocklists are invalid.
    – Mark Will
    Nov 2 '12 at 22:15

Two things: could you wipe the usb key first? I'm getting the impression a laconic "read error" message comes from older versions of grub.

Have you checked the contents of your grub.cfg? GRUB_DISABLE_UUID_LINUX may not do what you want where there are multiple drives (it will pass a device node name). I would rerun update-grub with that line commented out.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.