summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2021-01-17 15:26:39 -0500
committerAndrew Cady <d@cryptonomic.net>2021-01-17 15:26:39 -0500
commitea8e80b3b4d49a18441ce08157badad7fdc120de (patch)
tree1382fdbdcab432d2badeaa29c5f023627a3c004b
parent0827502eac11d12299438b4e3cf583ceec16d6c5 (diff)
old changes, unreviewed
-rwxr-xr-xsrc/partvi48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/partvi b/src/partvi
index b9efe18..6c65104 100755
--- a/src/partvi
+++ b/src/partvi
@@ -124,7 +124,7 @@ iterate_partitions()
124 notice "Processing $f" 124 notice "Processing $f"
125 img=${f%.conf} 125 img=${f%.conf}
126 126
127 read_config_file "$img" || warn "Received error return from command: read_config_file $img" 127 read_config_file || warn "Received error return from command: read_config_file $img"
128 require_var name 128 require_var name
129 129
130 require_var type 130 require_var type
@@ -141,6 +141,11 @@ iterate_partitions()
141 done 141 done
142} 142}
143 143
144set_var()
145{
146 eval "conf_${img}_${1}=\$${1}"
147}
148
144create_dmsetup_map() 149create_dmsetup_map()
145{ 150{
146 part=$builddir/${f%.conf} 151 part=$builddir/${f%.conf}
@@ -159,6 +164,9 @@ create_dmsetup_map()
159 alignment_error=$((devsz % 2048)) 164 alignment_error=$((devsz % 2048))
160 165
161 printf '%d %d linear %s 0\n' $start $devsz "$dev" >> "$map" 166 printf '%d %d linear %s 0\n' $start $devsz "$dev" >> "$map"
167
168 set_var start
169 set_var devsz
162 start=$((start + devsz)) 170 start=$((start + devsz))
163 171
164 if [ $alignment_error -gt 0 ] 172 if [ $alignment_error -gt 0 ]
@@ -169,6 +177,29 @@ create_dmsetup_map()
169 fi 177 fi
170} 178}
171 179
180create_ptable_conf()
181{
182 inquire_var start && inquire_var devsz || return 0
183 [ "$start" -a "$devsz" ] || return 0
184
185 case "$type" in
186 partition-table) return;;
187 efi-system-partition) typecode=ef00 ;;
188 bios-grub) typecode=ef02 ;;
189 samizdat-*) typecode=8e00 ;;
190 dm-verity-hashes|dm-verity-data) typecode=8e00 ;;
191 esac
192
193 set -- --new "$i:$start:$((start + devsz - 1))" --change-name "$i:$name"
194 if [ "$typecode" ]
195 then
196 set -- "$@" --typecode "$i:$typecode"
197 fi
198
199 printf '%s\0' "$@" >> $ptable
200 let ++i
201}
202
172set -e 203set -e
173 204
174builddir=_build 205builddir=_build
@@ -188,14 +219,23 @@ quietly $sudo kpartx -dv /dev/mapper/"$map_name"
188quietly $sudo dmsetup remove "$map_name" 219quietly $sudo dmsetup remove "$map_name"
189quietly $sudo losetup -D 220quietly $sudo losetup -D
190 221
191start=0
192map=$builddir/dmsetup.map 222map=$builddir/dmsetup.map
193: > "$map" 223: > "$map"
194 224start=0
195iterate_partitions create_dmsetup_map 225iterate_partitions create_dmsetup_map
196
197$sudo dmsetup -v create "$map_name" "$map" 226$sudo dmsetup -v create "$map_name" "$map"
198 227
228ptable=$builddir/ptable.bin
229: > "$ptable"
230i=1
231iterate_partitions create_ptable_conf
232dev=/dev/mapper/$map_name
233printf '%s\0' '-h1' '-p' "$dev" >> "$ptable"
234xargs -0 -x $sudo sgdisk -o < "$ptable" >&2
235$sudo sfdisk --dump "$dev"
236$sudo sfdisk -Y MBR --dump "$dev"
237exit
238
199dev=/dev/mapper/$map_name 239dev=/dev/mapper/$map_name
200( 240(
201 set -- 241 set --