#!/bin/bash outdev=debian-live-8.4.0-amd64-standard.btrfs.layered.iso indev=debian-live-8.4.0-amd64-standard.btrfs.iso volid=SamizdatLive btrfs_layer_iso_path=live/layer%s.btrfs btrfs_layer_filesystem="$1" die() { printf '%s\n' "$*"; exit 1; } [ -f "$btrfs_layer_filesystem" ] || die "Usage: $0 [layer2.btrfs ...]" i=0 while [ $i -lt $# ]; do arg=$1 [ $i -eq 0 ] && n='' || n=$((i + 1)) arg=$(printf "${btrfs_layer_iso_path}=%s" "$n" "$arg") shift set -- "$@" "$arg" i=$((i + 1)) done for arg; do echo "a=$arg"; done; exit; set -ex cp --reflink "$indev" "$outdev"~ time xorriso \ -drive_class clear_list all \ -outdev "$outdev"~ -indev "$outdev"~ \ -report_about mishap \ -volid "$volid" \ -return_with sorry 0 \ -pathspecs on -overwrite on \ -add_plainly any \ "$@" mv -f "$outdev"~ "$outdev"