From 153eedce15b15792cd46c55384581c3d3a5ed09c Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Mon, 18 Jan 2021 19:30:21 -0500 Subject: omfg why dont it werk --- src/partvi | 99 +++++++++++++++++++------------------------------------------- 1 file changed, 30 insertions(+), 69 deletions(-) diff --git a/src/partvi b/src/partvi index f1f3d36..97665a5 100755 --- a/src/partvi +++ b/src/partvi @@ -191,26 +191,22 @@ create_ptable_conf() devsz=$(stat -L -c '%s' "$part") || return [ "$start" -a "$devsz" ] || return + [ "$((devsz % 512))" -eq 0 ] + case "$type" in - partition-table) - start=$((start + devsz)) - return;; - efi-system-partition) typecode=ef00 ;; - bios-grub) typecode=ef02 ;; - samizdat-*) typecode=8e00 ;; - dm-verity-hashes|dm-verity-data) typecode=8e00 ;; + partition-table) start=$((start + devsz)); return;; + efi-system-partition) typecode=C12A7328-F81F-11D2-BA4B-00A0C93EC93B ;; + bios-grub) typecode=21686148-6449-6E6F-744E-656564454649 ;; + *) typecode=0FC63DAF-8483-4772-8E79-3D69D8477DE4 ;; esac - set -- --new "$i:$start:$((start + devsz - 1))" --change-name "$i:$name" - - if [ "$typecode" ] - then - set -- "$@" --typecode "$i:$typecode" - fi - printf '%s\0' "$@" >> "$ptable" - - typecode=0FC63DAF-8483-4772-8E79-3D69D8477DE4 - printf '%d: start=%d, size=%d, type=%s, name="%s"\n' "$i" "$((start / 512))" "$((devsz / 512))" "$typecode" "$name" >> "$ptable.sfdisk" + printf '%d: start=%d, size=%d, type=%s, name="%s"\n' \ + "$i" \ + "$((start / 512))" \ + "$((devsz / 512))" \ + "$typecode" \ + "$name" \ + >> "$ptable.sfdisk" let ++i start=$((start + devsz)) } @@ -227,18 +223,12 @@ then sudo= else sudo=sudo fi -map_name=samline - -quietly $sudo umount *.mnt -quietly $sudo kpartx -dv /dev/mapper/"$map_name" -quietly $sudo dmsetup remove "$map_name" -quietly $sudo losetup -D - -# map=$builddir/dmsetup.map -# : > "$map" -# start=0 -# iterate_partitions create_dmsetup_map -# $sudo dmsetup -v create "$map_name" "$map" +if whole=$(losetup -j whole.img -O NAME --noheadings) +then + quietly $sudo umount *.mnt + quietly $sudo kpartx -dv "$whole" + quietly $sudo losetup -D +fi sfdisk_init() { @@ -256,7 +246,7 @@ sfdisk_init() label: gpt unit: sectors first-lba: 34 -# last-lba: ${LAST_LBA} +last-lba: ${LAST_LBA} END } @@ -280,33 +270,6 @@ pee_on_table() $sudo sfdisk -Y MBR --dump "$dev" || return } - - -# exit -# -# dev=/dev/mapper/$map_name -# ( -# set -- -# i=1 -# while read a b c d e -# do -# echo "a=$a c=$c" -# [ "$a" -gt 0 ] || continue -# [ "$b" -gt 2048 ] || continue -# [ "$c" = linear ] || continue -# -# set -- "$@" -n "$i:$a:$((a + b - 1))" -# let ++i -# done < "$map" -# $sudo sgdisk -o "$@" -p "$dev" -# ) -# $sudo kpartx -u "$dev" - -# $sudo kpartx -a "$dev" - -# $sudo kpartx -d "$dev" -# $sudo dmsetup remove "$map_name" - truncate -s0 whole.img for f in part*.conf do @@ -318,15 +281,15 @@ $sudo losetup -L -f whole.img whole=$(losetup -j whole.img -O NAME --noheadings) (pee_on_table "$whole") || exit -map_name=${whole#/dev/} -$sudo kpartx -a "$whole" +$sudo kpartx -u "$whole" target=x86_64-efi target=i386-pc -set -- grub-install --target=$target --removable # --boot-directory=/mnt/boot --efi-directory=/mnt +set -- grub-install -s -v --target=$target --removable # --boot-directory=/mnt/boot --efi-directory=/mnt for f in part*.conf do + [ "$f" != part0.conf ] || continue notice "Processing $f" img=${f%.conf} dev=/dev/mapper/${whole#/dev/}p${img#part} @@ -336,6 +299,7 @@ do require_var name require_var type case "$type" in + dm-verity-hashes|partition-table) ;; efi-system-partition|bios-grub) mkdir -p "$mnt" loudly $sudo mount "$dev" "$mnt" @@ -348,15 +312,14 @@ do set -- "$@" --efi-directory="$mnt" fi ;; + *) mkdir -p "$mnt" + loudly $sudo mount "$dev" "$mnt" + ;; *) notice "Not mounting $name" ;; esac done -#loudly ls -l /dev/mapper/ -#loudly $sudo grub-probe -v -d "$whole" - -loudly $sudo "$@" -v -s --force "$whole" -exit +loudly $sudo "$@" "$whole" for f in part*.conf do @@ -367,7 +330,5 @@ do $sudo rmdir "$mnt" fi done - -quietly $sudo kpartx -dv "$dev" -quietly $sudo dmsetup remove "$map_name" -quietly $sudo losetup -D +loudly $sudo kpartx -d "$whole" +loudly $sudo losetup -d "$whole" -- cgit v1.2.3