summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2021-01-18 20:55:16 -0500
committerAndrew Cady <d@cryptonomic.net>2021-01-18 20:55:16 -0500
commit5887a55c5d329fba01c167a5dbd4aa3b4e12d253 (patch)
treeb5e5b84aeaa1fcc96a4a325674d96e242ba21cb9
parentfd4301803d257ed5476a618e93aba81e9a0c0081 (diff)
loads linux kernel, panics unpacking initrd
-rwxr-xr-xsrc/partvi56
1 files changed, 47 insertions, 9 deletions
diff --git a/src/partvi b/src/partvi
index aa0d36b..dca9722 100755
--- a/src/partvi
+++ b/src/partvi
@@ -2,6 +2,41 @@
2shopt -s nullglob 2shopt -s nullglob
3PATH=/sbin:$PATH 3PATH=/sbin:$PATH
4 4
5: ${GRUB_CONFIG:=../conf/grub.cfg}
6samizdat_linux_dir=/
7
8if [ ! "$GPG_INPUT_DIR" ]
9then
10 for d in $GPG_INPUT_DIR /root/.gnupg /cdrom/gnupghome
11 do
12 $sudo [ -d "$d" ] || continue
13 GPG_INPUT_DIR=$d
14 break
15 done
16fi
17
18
19add_initrd()
20{
21 initrd_suffix=.samizdat
22 $sudo mkdir -p "$mnt"/linux
23 $sudo rsync -aL --info=STATS "${1}vmlinuz${2}" "$mnt"/linux/vmlinuz
24 $sudo rsync -aL --info=STATS "${1}initrd.img${2}${2:+$initrd_suffix}" "$mnt"/linux/initrd.img
25}
26
27add_grub_cfg()
28{
29 $sudo mkdir -p "$mnt"/grub
30 $sudo cp -aL "$GRUB_CONFIG" "$mnt"/grub
31}
32
33install_boot_dir()
34{
35 local mnt="$1"
36 add_grub_cfg
37 add_initrd "$samizdat_linux_dir"/ "${version_suffix}"
38}
39
5msg() { printf '%s: %s: %s\n' "$0" "$1" "$2" >&2; } 40msg() { printf '%s: %s: %s\n' "$0" "$1" "$2" >&2; }
6die() { msg Error "${*:-Exiting on fatal error.}"; exit 1; } 41die() { msg Error "${*:-Exiting on fatal error.}"; exit 1; }
7warn() { msg Warning "${*:-Something is wrong.}"; } 42warn() { msg Warning "${*:-Something is wrong.}"; }
@@ -97,8 +132,8 @@ build_partition_image()
97 esac 132 esac
98 133
99 case "$type" in 134 case "$type" in
135 bios-grub) ;;
100 efi-system-partition) mkfs.fat -F 32 -I "$tmp" || die "mkfs.vfat failed" ;; 136 efi-system-partition) mkfs.fat -F 32 -I "$tmp" || die "mkfs.vfat failed" ;;
101 bios-grub) ;; # mkfs.fat -F 32 -I "$tmp" || die "mkfs.vfat failed" ;;
102 boot|samizdat-keys) mkfs.btrfs -q "$tmp" || die "mkfs.btrfs failed" ;; 137 boot|samizdat-keys) mkfs.btrfs -q "$tmp" || die "mkfs.btrfs failed" ;;
103 dm-verity-data) 138 dm-verity-data)
104 partuuid=${root_hash:0:32} 139 partuuid=${root_hash:0:32}
@@ -296,20 +331,23 @@ do
296 require_var type 331 require_var type
297 case "$type" in 332 case "$type" in
298 dm-verity-hashes|partition-table|bios-grub) ;; 333 dm-verity-hashes|partition-table|bios-grub) ;;
299 efi-system-partition|boot) 334 efi-system-partition|boot|samizdat-keys)
300 mkdir -p "$mnt" 335 mkdir -p "$mnt"
301 loudly $sudo mount "$dev" "$mnt" 336 loudly $sudo mount "$dev" "$mnt"
302 337
303 if [ "$type" = 'boot' ] 338 case "$type" in
304 then 339 boot)
305 BOOT_DIR=$mnt 340 BOOT_DIR=$mnt
306 else 341 install_boot_dir "$mnt"
342 ;;
343 samizdat-keys)
344 $sudo rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/
345 ;;
346 efi-system-partition)
307 EFI_DIR=$mnt 347 EFI_DIR=$mnt
308 fi 348 ;;
349 esac
309 ;; 350 ;;
310 *) mkdir -p "$mnt"
311 loudly $sudo mount "$dev" "$mnt"
312 ;;
313 *) notice "Not mounting $name" ;; 351 *) notice "Not mounting $name" ;;
314 esac 352 esac
315done 353done