Skip to content

Instantly share code, notes, and snippets.

@meeuw
Created May 23, 2019 19:10
Show Gist options
  • Save meeuw/637064427cb8c0692bc3d74ec3b58f5d to your computer and use it in GitHub Desktop.
Save meeuw/637064427cb8c0692bc3d74ec3b58f5d to your computer and use it in GitHub Desktop.
Script to create an image for a minimal grub2 efi usb stick for booting Fedora (using blscfg) on a macbook.
#!/bin/bash
function fish() {
echo "#" "$@"
guestfish --remote -- "$@" || exit 1
}
eval $(guestfish --listen)
img=grub2-usb.raw
fish disk-create $img raw 3M
fish add $img
fish run
fish part-init /dev/sda gpt
fish part-add /dev/sda p 2048 6110
fish part-set-gpt-type /dev/sda 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B
fish part-set-bootable /dev/sda 1 true
fish mkfs vfat /dev/sda1 label:EFI
fish mount /dev/sda1 /
fish mkdir /EFI/
fish mkdir /EFI/BOOT
fish mkdir /EFI/BOOT/x86_64-efi/
cp gcdx64.efi bootx64.efi
cat > grub.cfg << @EOF
function load_video {
insmod efi_gop
insmod efi_uga
}
load_video
insmod search
search --file --set root /boot/grub2/grubenv
insmod probe
probe -u \$root -s uuid_label
set default_kernelopts="root=UUID=\$uuid_label ro rhgb quiet "
insmod blscfg
blscfg
@EOF
fish copy-in grub.cfg /EFI/BOOT/
fish copy-in bootx64.efi /EFI/BOOT/
fish copy-in /usr/lib/grub/x86_64-efi/probe.mod /EFI/BOOT/x86_64-efi/
fish umount-all
fish shutdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment