diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/parted-usb.sh | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/parted-usb.sh b/src/parted-usb.sh index c7040c8..730dc26 100755 --- a/src/parted-usb.sh +++ b/src/parted-usb.sh | |||
@@ -13,6 +13,17 @@ MiB() | |||
13 | KiB $(KiB "$1") | 13 | KiB $(KiB "$1") |
14 | } | 14 | } |
15 | 15 | ||
16 | get_rootfs_size() | ||
17 | { | ||
18 | [ "$ROOTFS" ] || return | ||
19 | if [ -b "$ROOTFS" ] | ||
20 | then | ||
21 | rootfs_size=$(blockdev --getsize64 "$ROOTFS") | ||
22 | else | ||
23 | rootfs_size=$(stat -c%s "$ROOTFS") | ||
24 | fi | ||
25 | } | ||
26 | |||
16 | initialize_target() | 27 | initialize_target() |
17 | { | 28 | { |
18 | if [ -b "$target" ] | 29 | if [ -b "$target" ] |
@@ -22,7 +33,8 @@ initialize_target() | |||
22 | rm -f "$target" | 33 | rm -f "$target" |
23 | if [ "$ROOTFS" ] | 34 | if [ "$ROOTFS" ] |
24 | then | 35 | then |
25 | fallocate -l $(($(KiB 17) + $(MiB $end_keys) + $(MiB $rootfs_size))) "$target" | 36 | get_rootfs_size |
37 | fallocate -l $(($(KiB 17) + $(MiB $end_keys) + rootfs_size)) "$target" | ||
26 | else | 38 | else |
27 | fallocate -l $(($(KiB 17) + $(MiB $end_keys))) "$target" | 39 | fallocate -l $(($(KiB 17) + $(MiB $end_keys))) "$target" |
28 | fi | 40 | fi |
@@ -37,10 +49,10 @@ partition_target() | |||
37 | mkpart samizdat-grub 1 8 \ | 49 | mkpart samizdat-grub 1 8 \ |
38 | set 1 bios_grub on \ | 50 | set 1 bios_grub on \ |
39 | mkpart samizdat-keys btrfs ${start_keys} ${end_keys} | 51 | mkpart samizdat-keys btrfs ${start_keys} ${end_keys} |
40 | case "$target" in | 52 | if [ -b "$target" ] |
41 | /dev/loop*) ;; | 53 | then |
42 | *) partx -u "$target" ;; | 54 | partx -u "$target" |
43 | esac | 55 | fi |
44 | 56 | ||
45 | if [ "$ROOTFS" ] | 57 | if [ "$ROOTFS" ] |
46 | then | 58 | then |
@@ -118,6 +130,7 @@ add_grub_cfg() | |||
118 | 130 | ||
119 | individualize() | 131 | individualize() |
120 | { | 132 | { |
133 | mkdir -p "$mnt" | ||
121 | mountpoint "$mnt" || mount "$part"2 "$mnt" | 134 | mountpoint "$mnt" || mount "$part"2 "$mnt" |
122 | add_keys | 135 | add_keys |
123 | add_initrd "$samizdat_linux_dir"/ "${version_suffix}" | 136 | add_initrd "$samizdat_linux_dir"/ "${version_suffix}" |
@@ -162,7 +175,7 @@ boot_vm() | |||
162 | 175 | ||
163 | if [ ! -e "$installer_target" ] | 176 | if [ ! -e "$installer_target" ] |
164 | then | 177 | then |
165 | fallocate -l 15G "$installer_target" | 178 | fallocate -l 10G "$installer_target" |
166 | fi | 179 | fi |
167 | 180 | ||
168 | find_mac 52-54-00-12-34-56 | 181 | find_mac 52-54-00-12-34-56 |