summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2021-01-18 19:30:21 -0500
committerAndrew Cady <d@cryptonomic.net>2021-01-18 19:30:21 -0500
commit153eedce15b15792cd46c55384581c3d3a5ed09c (patch)
tree55276799a9f87c342e48b1b74248a442c06ee246
parent93c785ab5b3d42a053508a9d6cf57c3f9062e91d (diff)
omfg why dont it werk
-rwxr-xr-xsrc/partvi99
1 files 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()
191 devsz=$(stat -L -c '%s' "$part") || return 191 devsz=$(stat -L -c '%s' "$part") || return
192 [ "$start" -a "$devsz" ] || return 192 [ "$start" -a "$devsz" ] || return
193 193
194 [ "$((devsz % 512))" -eq 0 ]
195
194 case "$type" in 196 case "$type" in
195 partition-table) 197 partition-table) start=$((start + devsz)); return;;
196 start=$((start + devsz)) 198 efi-system-partition) typecode=C12A7328-F81F-11D2-BA4B-00A0C93EC93B ;;
197 return;; 199 bios-grub) typecode=21686148-6449-6E6F-744E-656564454649 ;;
198 efi-system-partition) typecode=ef00 ;; 200 *) typecode=0FC63DAF-8483-4772-8E79-3D69D8477DE4 ;;
199 bios-grub) typecode=ef02 ;;
200 samizdat-*) typecode=8e00 ;;
201 dm-verity-hashes|dm-verity-data) typecode=8e00 ;;
202 esac 201 esac
203 202
204 set -- --new "$i:$start:$((start + devsz - 1))" --change-name "$i:$name" 203 printf '%d: start=%d, size=%d, type=%s, name="%s"\n' \
205 204 "$i" \
206 if [ "$typecode" ] 205 "$((start / 512))" \
207 then 206 "$((devsz / 512))" \
208 set -- "$@" --typecode "$i:$typecode" 207 "$typecode" \
209 fi 208 "$name" \
210 printf '%s\0' "$@" >> "$ptable" 209 >> "$ptable.sfdisk"
211
212 typecode=0FC63DAF-8483-4772-8E79-3D69D8477DE4
213 printf '%d: start=%d, size=%d, type=%s, name="%s"\n' "$i" "$((start / 512))" "$((devsz / 512))" "$typecode" "$name" >> "$ptable.sfdisk"
214 let ++i 210 let ++i
215 start=$((start + devsz)) 211 start=$((start + devsz))
216} 212}
@@ -227,18 +223,12 @@ then sudo=
227else sudo=sudo 223else sudo=sudo
228fi 224fi
229 225
230map_name=samline 226if whole=$(losetup -j whole.img -O NAME --noheadings)
231 227then
232quietly $sudo umount *.mnt 228 quietly $sudo umount *.mnt
233quietly $sudo kpartx -dv /dev/mapper/"$map_name" 229 quietly $sudo kpartx -dv "$whole"
234quietly $sudo dmsetup remove "$map_name" 230 quietly $sudo losetup -D
235quietly $sudo losetup -D 231fi
236
237# map=$builddir/dmsetup.map
238# : > "$map"
239# start=0
240# iterate_partitions create_dmsetup_map
241# $sudo dmsetup -v create "$map_name" "$map"
242 232
243sfdisk_init() 233sfdisk_init()
244{ 234{
@@ -256,7 +246,7 @@ sfdisk_init()
256label: gpt 246label: gpt
257unit: sectors 247unit: sectors
258first-lba: 34 248first-lba: 34
259# last-lba: ${LAST_LBA} 249last-lba: ${LAST_LBA}
260 250
261END 251END
262} 252}
@@ -280,33 +270,6 @@ pee_on_table()
280 $sudo sfdisk -Y MBR --dump "$dev" || return 270 $sudo sfdisk -Y MBR --dump "$dev" || return
281} 271}
282 272
283
284
285# exit
286#
287# dev=/dev/mapper/$map_name
288# (
289# set --
290# i=1
291# while read a b c d e
292# do
293# echo "a=$a c=$c"
294# [ "$a" -gt 0 ] || continue
295# [ "$b" -gt 2048 ] || continue
296# [ "$c" = linear ] || continue
297#
298# set -- "$@" -n "$i:$a:$((a + b - 1))"
299# let ++i
300# done < "$map"
301# $sudo sgdisk -o "$@" -p "$dev"
302# )
303# $sudo kpartx -u "$dev"
304
305# $sudo kpartx -a "$dev"
306
307# $sudo kpartx -d "$dev"
308# $sudo dmsetup remove "$map_name"
309
310truncate -s0 whole.img 273truncate -s0 whole.img
311for f in part*.conf 274for f in part*.conf
312do 275do
@@ -318,15 +281,15 @@ $sudo losetup -L -f whole.img
318whole=$(losetup -j whole.img -O NAME --noheadings) 281whole=$(losetup -j whole.img -O NAME --noheadings)
319(pee_on_table "$whole") || exit 282(pee_on_table "$whole") || exit
320 283
321map_name=${whole#/dev/} 284$sudo kpartx -u "$whole"
322$sudo kpartx -a "$whole"
323 285
324target=x86_64-efi 286target=x86_64-efi
325target=i386-pc 287target=i386-pc
326set -- grub-install --target=$target --removable # --boot-directory=/mnt/boot --efi-directory=/mnt 288set -- grub-install -s -v --target=$target --removable # --boot-directory=/mnt/boot --efi-directory=/mnt
327 289
328for f in part*.conf 290for f in part*.conf
329do 291do
292 [ "$f" != part0.conf ] || continue
330 notice "Processing $f" 293 notice "Processing $f"
331 img=${f%.conf} 294 img=${f%.conf}
332 dev=/dev/mapper/${whole#/dev/}p${img#part} 295 dev=/dev/mapper/${whole#/dev/}p${img#part}
@@ -336,6 +299,7 @@ do
336 require_var name 299 require_var name
337 require_var type 300 require_var type
338 case "$type" in 301 case "$type" in
302 dm-verity-hashes|partition-table) ;;
339 efi-system-partition|bios-grub) 303 efi-system-partition|bios-grub)
340 mkdir -p "$mnt" 304 mkdir -p "$mnt"
341 loudly $sudo mount "$dev" "$mnt" 305 loudly $sudo mount "$dev" "$mnt"
@@ -348,15 +312,14 @@ do
348 set -- "$@" --efi-directory="$mnt" 312 set -- "$@" --efi-directory="$mnt"
349 fi 313 fi
350 ;; 314 ;;
315 *) mkdir -p "$mnt"
316 loudly $sudo mount "$dev" "$mnt"
317 ;;
351 *) notice "Not mounting $name" ;; 318 *) notice "Not mounting $name" ;;
352 esac 319 esac
353done 320done
354 321
355#loudly ls -l /dev/mapper/ 322loudly $sudo "$@" "$whole"
356#loudly $sudo grub-probe -v -d "$whole"
357
358loudly $sudo "$@" -v -s --force "$whole"
359exit
360 323
361for f in part*.conf 324for f in part*.conf
362do 325do
@@ -367,7 +330,5 @@ do
367 $sudo rmdir "$mnt" 330 $sudo rmdir "$mnt"
368 fi 331 fi
369done 332done
370 333loudly $sudo kpartx -d "$whole"
371quietly $sudo kpartx -dv "$dev" 334loudly $sudo losetup -d "$whole"
372quietly $sudo dmsetup remove "$map_name"
373quietly $sudo losetup -D