From efeeeecbbaee19fbd899e0a3c3ba8add01a4e66f Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 10 Oct 2020 01:21:10 -0400 Subject: parted-usb working --- src/parted-usb.sh | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/parted-usb.sh b/src/parted-usb.sh index b19389d..cfd2ad1 100755 --- a/src/parted-usb.sh +++ b/src/parted-usb.sh @@ -14,6 +14,8 @@ MiB() } . samizdat-paths.sh || die 'samizdat-paths.sh not found' + +samizdat_linux_dir=/boot : ${GPG_INPUT_DIR:=/cdrom/gnupghome} if [[ $UID != 0 ]] @@ -29,6 +31,7 @@ do fi done +start_keys=64 # megs end_keys=256 # megs target=fallacy.img.tmp @@ -46,11 +49,12 @@ partition_target() mklabel gpt \ mkpart samizdat-grub 1MiB 8MiB \ set 1 bios_grub on \ - mkpart samizdat-keys btrfs 64MiB ${end_keys}MiB + mkpart samizdat-plaintext btrfs ${start_keys}MiB ${end_keys}MiB } make_target_bootable() { + version=${1:+-$1} losetup -f "$target" dev=$(losetup -j "$target" -O NAME --noheadings) @@ -62,15 +66,15 @@ make_target_bootable() mkfs.btrfs --mixed "$kdev"p2 mkdir -p "$mnt" mount "$kdev"p2 "$mnt" - rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ - rsync -a --info=STATS "$samizdat_linux_dir"/ "$mnt"/linux/ + 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 # grub-install -v -d "$samizdat_grub_efi_dir"/grub/i386-pc --boot-directory "$mnt"/boot "$dev" - grub-install -v --boot-directory "$boot_dir" "$dev" + eatmydata -- grub-install -v --boot-directory "$boot_dir" "$dev" + sync } release_target() @@ -80,17 +84,33 @@ release_target() losetup -d "$dev" } +add_keys() +{ + local mnt dev target="$1" + 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" +} + set -e if [ ! -e "$target" ] then initialize_target partition_target - make_target_bootable + make_target_bootable ${1:4.9.0-0.bpo.2-amd64} release_target fi -qemu-system-x86_64 -enable-kvm -drive file="$target",format=raw +cp --reflink=always "$target" "$target".keyed +add_keys "$target".keyed + +qemu-system-x86_64 -enable-kvm -smp 2 -m 512 -k en-us -vga qxl -drive file="$target".keyed,format=raw # rm -f "$target" -- cgit v1.2.3