summaryrefslogtreecommitdiff
path: root/src/parted-usb.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/parted-usb.sh')
-rwxr-xr-xsrc/parted-usb.sh35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/parted-usb.sh b/src/parted-usb.sh
index bb63070..e688473 100755
--- a/src/parted-usb.sh
+++ b/src/parted-usb.sh
@@ -16,17 +16,29 @@ MiB()
16initialize_target() 16initialize_target()
17{ 17{
18 rm -f "$target" 18 rm -f "$target"
19 fallocate -l $(($(KiB 17) + $(MiB $end_keys))) "$target" 19 if [ "$ROOTFS" ]
20 then
21 fallocate -l $(($(KiB 17) + $(MiB $end_keys) + $(MiB $rootfs_size))) "$target"
22 else
23 fallocate -l $(($(KiB 17) + $(MiB $end_keys))) "$target"
24 fi
20} 25}
21 26
27# TODO: Use GUID type tags for each Samizdat partition type.
22partition_target() 28partition_target()
23{ 29{
24 parted "$target" -sm -a optimal \ 30 parted "$target" -sm -a optimal \
25 unit B \ 31 unit MiB \
26 mklabel gpt \ 32 mklabel gpt \
27 mkpart samizdat-grub 1MiB 8MiB \ 33 mkpart samizdat-grub 1 8 \
28 set 1 bios_grub on \ 34 set 1 bios_grub on \
29 mkpart samizdat-plaintext btrfs ${start_keys}MiB ${end_keys}MiB 35 mkpart samizdat-keys btrfs ${start_keys} ${end_keys}
36
37 if [ "$ROOTFS" ]
38 then
39 parted "$target" -sm -a optimal \
40 mkpart samizdat-rootfs btrfs ${end_keys}MiB 100%
41 fi
30} 42}
31 43
32make_target_bootable() 44make_target_bootable()
@@ -74,12 +86,13 @@ with_target()
74 86
75add_keys() 87add_keys()
76{ 88{
77 rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ 89 rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/
78} 90}
79 91
92initrd_suffix=.samizdat
80add_initrd() 93add_initrd()
81{ 94{
82 rsync -aL --info=STATS "$samizdat_linux_dir"/vmlinuz${version} "$samizdat_linux_dir"/initrd.img${version} "$mnt"/linux/ 95 rsync -aL --info=STATS "${1}vmlinuz${2}" "${1}initrd.img${2}${initrd_suffix}" "$mnt"/linux/
83} 96}
84 97
85add_grub_cfg() 98add_grub_cfg()
@@ -91,7 +104,7 @@ add_grub_cfg()
91add_all() 104add_all()
92{ 105{
93 add_keys 106 add_keys
94 add_initrd 107 add_initrd "$samizdat_linux_dir"/ "${version_suffix}"
95 add_grub_cfg 108 add_grub_cfg
96} 109}
97 110
@@ -128,7 +141,7 @@ fi
128 141
129if [ "$1" ] 142if [ "$1" ]
130then 143then
131 version=-$1 144 version_suffix=-$1
132fi 145fi
133cp --reflink=always "$target" "$target".keyed 146cp --reflink=always "$target" "$target".keyed
134with_target "$target".keyed add_all 147with_target "$target".keyed add_all