diff options
Diffstat (limited to 'src/partvi')
-rwxr-xr-x | src/partvi | 32 |
1 files changed, 24 insertions, 8 deletions
@@ -248,6 +248,12 @@ create_ptable_conf() | |||
248 | start=$((start + devsz)) | 248 | start=$((start + devsz)) |
249 | } | 249 | } |
250 | 250 | ||
251 | KEY_ONLY= | ||
252 | if [ "$1" = 'key' ] | ||
253 | then | ||
254 | KEY_ONLY=y | ||
255 | fi | ||
256 | |||
251 | set -e | 257 | set -e |
252 | 258 | ||
253 | builddir=_build | 259 | builddir=_build |
@@ -260,7 +266,14 @@ then sudo= | |||
260 | else sudo=sudo | 266 | else sudo=sudo |
261 | fi | 267 | fi |
262 | 268 | ||
263 | if whole=$(losetup -j whole.img -O NAME --noheadings) | 269 | if [ "$KEY_ONLY" ] |
270 | then | ||
271 | target=key.img | ||
272 | else | ||
273 | target=whole.img | ||
274 | fi | ||
275 | |||
276 | if whole=$(losetup -j "$target" -O NAME --noheadings) | ||
264 | then | 277 | then |
265 | quietly $sudo umount *.mnt | 278 | quietly $sudo umount *.mnt |
266 | quietly $sudo kpartx -dv "$whole" | 279 | quietly $sudo kpartx -dv "$whole" |
@@ -306,15 +319,18 @@ pee_on_table() | |||
306 | $sudo sfdisk -Y dos "$dev" < "$DOS_TABLE_FILE" || return | 319 | $sudo sfdisk -Y dos "$dev" < "$DOS_TABLE_FILE" || return |
307 | } | 320 | } |
308 | 321 | ||
309 | truncate -s0 whole.img | 322 | |
310 | for f in part*.conf | 323 | clone_parts_to_target() |
311 | do | 324 | { |
312 | f=$(readlink -e _build/"${f%.conf}") || break | 325 | f=$(readlink -e _build/"${f%.conf}") || break |
313 | ficlonerange.py "$f" whole.img | 326 | ficlonerange.py "$f" "$target" |
314 | done | 327 | } |
328 | |||
329 | truncate -s0 "$target" | ||
330 | iterate_partitions clone_parts_to_target | ||
315 | 331 | ||
316 | $sudo losetup -L -f whole.img | 332 | $sudo losetup -L -f "$target" |
317 | whole=$(losetup -j whole.img -O NAME --noheadings) | 333 | whole=$(losetup -j "$target" -O NAME --noheadings) |
318 | (pee_on_table "$whole") || exit | 334 | (pee_on_table "$whole") || exit |
319 | 335 | ||
320 | $sudo kpartx -u "$whole" | 336 | $sudo kpartx -u "$whole" |