From d5b949c2592a9d1b24e572e351fcd2f1169071ed Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 10 Oct 2020 01:41:47 -0400 Subject: parted-usb: add grub.cfg late --- src/parted-usb.sh | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/parted-usb.sh b/src/parted-usb.sh index cfd2ad1..41c2814 100755 --- a/src/parted-usb.sh +++ b/src/parted-usb.sh @@ -16,7 +16,9 @@ MiB() . samizdat-paths.sh || die 'samizdat-paths.sh not found' samizdat_linux_dir=/boot + : ${GPG_INPUT_DIR:=/cdrom/gnupghome} +: ${GRUB_CONFIG:=grub.cfg} if [[ $UID != 0 ]] then @@ -66,14 +68,11 @@ make_target_bootable() mkfs.btrfs --mixed "$kdev"p2 mkdir -p "$mnt" mount "$kdev"p2 "$mnt" - rsync -aL --info=STATS "$samizdat_linux_dir"/vmlinuz${version} "$samizdat_linux_dir"/initrd.img${version} "$mnt"/linux/ - boot_dir=$mnt/boot - mkdir -p "$boot_dir"/grub - cp -a grub.cfg "$boot_dir"/grub + mkdir -p "$mnt"/boot/grub + cp -aL "$GRUB_CONFIG" "$mnt"/boot/grub - # grub-install -v -d "$samizdat_grub_efi_dir"/grub/i386-pc --boot-directory "$mnt"/boot "$dev" - eatmydata -- grub-install -v --boot-directory "$boot_dir" "$dev" + eatmydata -- grub-install -v --boot-directory "$mnt"/boot "$dev" sync } @@ -84,19 +83,44 @@ release_target() losetup -d "$dev" } -add_keys() +with_target() { local mnt dev target="$1" + shift + mnt=$target.mnt mkdir -p "$mnt" losetup -f "$target" -o $(MiB $start_keys) dev=$(losetup -j "$target" -O NAME --noheadings) mount "$dev" "$mnt" - rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ + "$@" umount "$mnt" losetup -d "$dev" } +add_keys() +{ + rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ +} + +add_initrd() +{ + rsync -aL --info=STATS "$samizdat_linux_dir"/vmlinuz${version} "$samizdat_linux_dir"/initrd.img${version} "$mnt"/linux/ +} + +add_grub_cfg() +{ + mkdir -p "$mnt"/boot/grub + cp -aL "$GRUB_CONFIG" "$mnt"/boot/grub +} + +add_all() +{ + add_keys + add_initrd + add_grub_cfg +} + set -e if [ ! -e "$target" ] @@ -108,7 +132,8 @@ then fi cp --reflink=always "$target" "$target".keyed -add_keys "$target".keyed + +with_target "$target".keyed add_all qemu-system-x86_64 -enable-kvm -smp 2 -m 512 -k en-us -vga qxl -drive file="$target".keyed,format=raw -- cgit v1.2.3