You are not logged in.

#1 2016-08-07 23:45:29

keenster
Member
Registered: 2011-09-25
Posts: 15

[solved] Putting /boot on an sd card & efibootmgr boot

I am running into a little snag with my boot setup. Part of my security strategy is to boot from my SD card, which is usually located at /dev/sdb. Sometimes it's located at /dev/sdc though (due to some kind of inconsistency in the order that devices are mounted during the boot process, I assume).

I understand that the solution for this is generally to reference it by ID. So that's what I have tried.

I've run the following drive format commands to initialize & mount my boot partition on the SD card:

parted /dev/disk/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0 --script mklabel gpt
parted /dev/disk/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0 --script mkpart ESP fat32 1MiB 513MiB
parted /dev/disk/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0 --script set 1 boot on
mkfs.fat -F32 /dev/dev/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0-part1
mount /dev/disk/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0-part1 /mnt/boot

That succeeds with no problem.

However, to finalize my install, I run:

efibootmgr -d /dev/disk/by-id/usb-APPLE_SD_Card_Reader_000000000820-0:0 -p part-1 -c -L "Arch Linux" -l /vmlinuz-linux -u "i915.preliminary_hw_support=1 root=/dev/${DISK}6 rw initrd=/intel-ucode.img initrd=/initramfs-linux.img"

That succeeds, and running

efibootmgr

confirms the entry was added. However upon boot, the system can not find any boot partition. There it no visible error, just a blank screen.

I have a feeling that grub could handle this a lot better than just bare efibootmgr, but I really want to keep my boot process as simple as possible as I don't dual boot.

Last edited by keenster (2016-08-10 13:44:24)

Offline

#2 2016-08-08 14:31:03

ukhippo
Member
From: Non-paged pool
Registered: 2014-02-21
Posts: 366

Re: [solved] Putting /boot on an sd card & efibootmgr boot

I'm surprised your efibootmgr command succeeded - “-p” takes a number not a string (though it does default to 1 anyway).

Note UEFI neither understands nor cares about “/dev/...”. Efibootmgr just maps the -d/-p to the PARTUUID which you'll see if you use efibootmgr -v to view the entries. However by using “by-id” you ensured the right device was used. You can verify that by using blkid to check the right PARTUUID has been added.

Similarly use “root=PARTUUID=puuid” (where puuid is the PARTUUID of your root partition as shown by blkid) rather than /dev/sdXN

Offline

#3 2016-08-10 13:43:13

keenster
Member
Registered: 2011-09-25
Posts: 15

Re: [solved] Putting /boot on an sd card & efibootmgr boot

This makes total sense. Thank you!

Offline

Board footer

Powered by FluxBB