summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2020-10-10 13:56:41 -0400
committerAndrew Cady <d@jerkface.net>2020-10-10 13:56:41 -0400
commit319e8a24f991aa2d1a81ddf9319c8214b73c9027 (patch)
tree469b30a9b8dbfe71a59ecf63e663601b94fa98e6
parent4ff0ee9aa5a500ce51dc6a93f400641698cdf3e0 (diff)
improvements
-rwxr-xr-xsrc/parted-usb.sh57
1 files changed, 39 insertions, 18 deletions
diff --git a/src/parted-usb.sh b/src/parted-usb.sh
index e688473..4047331 100755
--- a/src/parted-usb.sh
+++ b/src/parted-usb.sh
@@ -62,7 +62,7 @@ make_target_bootable()
62 sync 62 sync
63} 63}
64 64
65release_target() 65release_target_kernel_resources()
66{ 66{
67 umount "$mnt" 67 umount "$mnt"
68 kpartx -d "$dev" 68 kpartx -d "$dev"
@@ -92,7 +92,9 @@ add_keys()
92initrd_suffix=.samizdat 92initrd_suffix=.samizdat
93add_initrd() 93add_initrd()
94{ 94{
95 rsync -aL --info=STATS "${1}vmlinuz${2}" "${1}initrd.img${2}${initrd_suffix}" "$mnt"/linux/ 95 mkdir -p "$mnt"/linux
96 rsync -aL --info=STATS "${1}vmlinuz${2}" "$mnt"/linux/vmlinuz
97 rsync -aL --info=STATS "${1}initrd.img${2}${initrd_suffix}" "$mnt"/linux/initrd.img
96} 98}
97 99
98add_grub_cfg() 100add_grub_cfg()
@@ -101,7 +103,7 @@ add_grub_cfg()
101 cp -aL "$GRUB_CONFIG" "$mnt"/boot/grub 103 cp -aL "$GRUB_CONFIG" "$mnt"/boot/grub
102} 104}
103 105
104add_all() 106individualize()
105{ 107{
106 add_keys 108 add_keys
107 add_initrd "$samizdat_linux_dir"/ "${version_suffix}" 109 add_initrd "$samizdat_linux_dir"/ "${version_suffix}"
@@ -117,8 +119,25 @@ sanity_checks()
117 done 119 done
118} 120}
119 121
122create_template()
123{
124 local target="${1}.tmp"
120 125
126 if [ ! -e "${target%.tmp}" ]
127 then
128 initialize_target
129 partition_target
130 make_target_bootable
131 release_target_kernel_resources
132 mv -T "$target" "${target%.tmp}"
133 fi
134}
121 135
136individualize_target_from()
137{
138 cp -T --reflink=always "$1" "$target"
139 with_target "$target" individualize
140}
122 141
123. samizdat-paths.sh || die 'samizdat-paths.sh not found' 142. samizdat-paths.sh || die 'samizdat-paths.sh not found'
124samizdat_linux_dir=/boot 143samizdat_linux_dir=/boot
@@ -126,27 +145,29 @@ samizdat_linux_dir=/boot
126: ${GRUB_CONFIG:=conf/grub.cfg} 145: ${GRUB_CONFIG:=conf/grub.cfg}
127start_keys=64 # megs 146start_keys=64 # megs
128end_keys=256 # megs 147end_keys=256 # megs
129target=fallacy.img.tmp 148
149if [ "$1" ]
150then
151 version_suffix=-$1
152fi
153
130 154
131sanity_checks 155sanity_checks
132set -e 156set -e
157template=boot-disk.template.img
158target=boot-disk.img.tmp
159final=${target%.tmp}
160create_template "$template"
161individualize_target_from "$template"
162mv -T "$target" "$final"
133 163
134if [ ! -e "$target" ]
135then
136 initialize_target
137 partition_target
138 make_target_bootable
139 release_target
140fi
141 164
142if [ "$1" ] 165installer_target=target-disk.img
166rm -f "$installer_target"
167if [ ! -e "$installer_target" ]
143then 168then
144 version_suffix=-$1 169 fallocate -l 10G "$installer_target"
145fi 170fi
146cp --reflink=always "$target" "$target".keyed
147with_target "$target".keyed add_all
148
149qemu-system-x86_64 -enable-kvm -smp 2 -m 512 -k en-us -vga qxl -drive file="$target".keyed,format=raw
150 171
151# rm -f "$target" 172qemu-system-x86_64 -enable-kvm -smp 2 -m 512 -k en-us -vga qxl -drive file="$final",format=raw -drive file="$installer_target",format=raw
152 173