summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2020-10-10 01:21:10 -0400
committerAndrew Cady <d@jerkface.net>2020-10-10 01:21:10 -0400
commitefeeeecbbaee19fbd899e0a3c3ba8add01a4e66f (patch)
tree3c85506d03ca9e16e2845a82c1fcfcb29d3e568b
parent334c9ea453567fcde5c0d046f03e38e040408e80 (diff)
parted-usb workingwip-2020-10-10
-rwxr-xr-xsrc/parted-usb.sh32
1 files 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()
14} 14}
15 15
16. samizdat-paths.sh || die 'samizdat-paths.sh not found' 16. samizdat-paths.sh || die 'samizdat-paths.sh not found'
17
18samizdat_linux_dir=/boot
17: ${GPG_INPUT_DIR:=/cdrom/gnupghome} 19: ${GPG_INPUT_DIR:=/cdrom/gnupghome}
18 20
19if [[ $UID != 0 ]] 21if [[ $UID != 0 ]]
@@ -29,6 +31,7 @@ do
29 fi 31 fi
30done 32done
31 33
34start_keys=64 # megs
32end_keys=256 # megs 35end_keys=256 # megs
33 36
34target=fallacy.img.tmp 37target=fallacy.img.tmp
@@ -46,11 +49,12 @@ partition_target()
46 mklabel gpt \ 49 mklabel gpt \
47 mkpart samizdat-grub 1MiB 8MiB \ 50 mkpart samizdat-grub 1MiB 8MiB \
48 set 1 bios_grub on \ 51 set 1 bios_grub on \
49 mkpart samizdat-keys btrfs 64MiB ${end_keys}MiB 52 mkpart samizdat-plaintext btrfs ${start_keys}MiB ${end_keys}MiB
50} 53}
51 54
52make_target_bootable() 55make_target_bootable()
53{ 56{
57 version=${1:+-$1}
54 losetup -f "$target" 58 losetup -f "$target"
55 dev=$(losetup -j "$target" -O NAME --noheadings) 59 dev=$(losetup -j "$target" -O NAME --noheadings)
56 60
@@ -62,15 +66,15 @@ make_target_bootable()
62 mkfs.btrfs --mixed "$kdev"p2 66 mkfs.btrfs --mixed "$kdev"p2
63 mkdir -p "$mnt" 67 mkdir -p "$mnt"
64 mount "$kdev"p2 "$mnt" 68 mount "$kdev"p2 "$mnt"
65 rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ 69 rsync -aL --info=STATS "$samizdat_linux_dir"/vmlinuz${version} "$samizdat_linux_dir"/initrd.img${version} "$mnt"/linux/
66 rsync -a --info=STATS "$samizdat_linux_dir"/ "$mnt"/linux/
67 70
68 boot_dir=$mnt/boot 71 boot_dir=$mnt/boot
69 mkdir -p "$boot_dir"/grub 72 mkdir -p "$boot_dir"/grub
70 cp -a grub.cfg "$boot_dir"/grub 73 cp -a grub.cfg "$boot_dir"/grub
71 74
72 # grub-install -v -d "$samizdat_grub_efi_dir"/grub/i386-pc --boot-directory "$mnt"/boot "$dev" 75 # grub-install -v -d "$samizdat_grub_efi_dir"/grub/i386-pc --boot-directory "$mnt"/boot "$dev"
73 grub-install -v --boot-directory "$boot_dir" "$dev" 76 eatmydata -- grub-install -v --boot-directory "$boot_dir" "$dev"
77 sync
74} 78}
75 79
76release_target() 80release_target()
@@ -80,17 +84,33 @@ release_target()
80 losetup -d "$dev" 84 losetup -d "$dev"
81} 85}
82 86
87add_keys()
88{
89 local mnt dev target="$1"
90 mnt=$target.mnt
91 mkdir -p "$mnt"
92 losetup -f "$target" -o $(MiB $start_keys)
93 dev=$(losetup -j "$target" -O NAME --noheadings)
94 mount "$dev" "$mnt"
95 rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/
96 umount "$mnt"
97 losetup -d "$dev"
98}
99
83set -e 100set -e
84 101
85if [ ! -e "$target" ] 102if [ ! -e "$target" ]
86then 103then
87 initialize_target 104 initialize_target
88 partition_target 105 partition_target
89 make_target_bootable 106 make_target_bootable ${1:4.9.0-0.bpo.2-amd64}
90 release_target 107 release_target
91fi 108fi
92 109
93qemu-system-x86_64 -enable-kvm -drive file="$target",format=raw 110cp --reflink=always "$target" "$target".keyed
111add_keys "$target".keyed
112
113qemu-system-x86_64 -enable-kvm -smp 2 -m 512 -k en-us -vga qxl -drive file="$target".keyed,format=raw
94 114
95# rm -f "$target" 115# rm -f "$target"
96 116