mostly pointless tweaking of inject-subiquity-snap
This commit is contained in:
parent
ad9c527b51
commit
2eba19e5de
|
@ -11,7 +11,7 @@ while getopts ":ifc:" opt; do
|
|||
interactive=yes
|
||||
;;
|
||||
c)
|
||||
cmds=$OPTARG
|
||||
cmds="${OPTARG}"
|
||||
;;
|
||||
f)
|
||||
edit_filesystem=yes
|
||||
|
@ -26,74 +26,67 @@ shift $((OPTIND-1))
|
|||
|
||||
# inject-subiquity-snap.sh $old_iso $subiquity_snap $new_iso
|
||||
|
||||
OLD_ISO=$(readlink -f $1)
|
||||
SUBIQUITY_SNAP_PATH=$(readlink -f $2)
|
||||
SUBIQUITY_SNAP=$(basename $SUBIQUITY_SNAP_PATH)
|
||||
NEW_ISO=$(readlink -f $3)
|
||||
OLD_ISO="$(readlink -f $1)"
|
||||
SUBIQUITY_SNAP_PATH="$(readlink -f $2)"
|
||||
SUBIQUITY_SNAP="$(basename $SUBIQUITY_SNAP_PATH)"
|
||||
NEW_ISO="$(readlink -f $3)"
|
||||
|
||||
tmpdir=$(mktemp -d)
|
||||
cd $tmpdir
|
||||
tmpdir="$(mktemp -d)"
|
||||
cd "${tmpdir}"
|
||||
|
||||
_MOUNTS=()
|
||||
|
||||
mount () {
|
||||
command mount "$@"
|
||||
_MOUNTS=(${!#} ${_MOUNTS[@]+"${_MOUNTS[@]}"})
|
||||
do_mount () {
|
||||
local mountpoint="${!#}"
|
||||
mkdir "${mountpoint}"
|
||||
mount "$@"
|
||||
_MOUNTS=("${mountpoint}" "${_MOUNTS[@]+"${_MOUNTS[@]}"}")
|
||||
}
|
||||
|
||||
cleanup () {
|
||||
for m in ${_MOUNTS[@]+"${_MOUNTS[@]}"}; do
|
||||
umount $m
|
||||
for m in "${_MOUNTS[@]+"${_MOUNTS[@]}"}"; do
|
||||
umount "${m}"
|
||||
done
|
||||
rm -rf $tmpdir
|
||||
rm -rf "${tmpdir}"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
add_overlay() {
|
||||
lower=$1
|
||||
mountpoint=$2
|
||||
work=$(mktemp -dp $tmpdir)
|
||||
upper=$(mktemp -dp $tmpdir)
|
||||
chmod go+rx $work $upper
|
||||
mount -t overlay overlay -o lowerdir=$lower,upperdir=$upper,workdir=$work $mountpoint
|
||||
local lower="$1"
|
||||
local mountpoint="$2"
|
||||
local work="$(mktemp -dp "${tmpdir}")"
|
||||
local upper="$(mktemp -dp "${tmpdir}")"
|
||||
chmod go+rx "${work}" "${upper}"
|
||||
do_mount -t overlay overlay -o lowerdir="${lower}",upperdir="${upper}",workdir="${work}" "${mountpoint}"
|
||||
}
|
||||
|
||||
mkdir old_iso
|
||||
|
||||
mount -t iso9660 -o loop $OLD_ISO old_iso
|
||||
|
||||
mkdir old_installer
|
||||
|
||||
mount -t squashfs old_iso/casper/installer.squashfs old_installer
|
||||
|
||||
mkdir new_installer
|
||||
do_mount -t iso9660 -o loop "${OLD_ISO}" old_iso
|
||||
do_mount -t squashfs old_iso/casper/installer.squashfs old_installer
|
||||
add_overlay old_installer new_installer
|
||||
|
||||
|
||||
CORE_SNAP=$(cd old_installer/var/lib/snapd/seed/snaps/; ls -1 core*.snap)
|
||||
CORE_SNAP="$(cd old_installer/var/lib/snapd/seed/snaps/; ls -1 core*.snap)"
|
||||
|
||||
cat <<EOF > new_installer/var/lib/snapd/seed/seed.yaml
|
||||
snaps:
|
||||
- name: core
|
||||
channel: stable
|
||||
file: ${CORE_SNAP}
|
||||
file: "${CORE_SNAP}"
|
||||
- name: subiquity
|
||||
unasserted: true
|
||||
classic: true
|
||||
file: ${SUBIQUITY_SNAP}
|
||||
file: "${SUBIQUITY_SNAP}"
|
||||
EOF
|
||||
|
||||
rm -f new_installer/var/lib/snapd/seed/assertions/subiquity*.assert
|
||||
rm -f new_installer/var/lib/snapd/seed/snaps/subiquity*.snap
|
||||
cp $SUBIQUITY_SNAP_PATH new_installer/var/lib/snapd/seed/snaps/
|
||||
cp "${SUBIQUITY_SNAP_PATH}" new_installer/var/lib/snapd/seed/snaps/
|
||||
|
||||
mkdir new_iso
|
||||
add_overlay old_iso new_iso
|
||||
|
||||
if [ "$edit_filesystem" = "yes" ]; then
|
||||
mkdir old_filesystem new_filesystem
|
||||
mount -t squashfs old_iso/casper/filesystem.squashfs old_filesystem
|
||||
do_mount -t squashfs old_iso/casper/filesystem.squashfs old_filesystem
|
||||
add_overlay old_filesystem new_filesystem
|
||||
fi
|
||||
|
||||
|
@ -115,7 +108,7 @@ mksquashfs new_installer new_iso/casper/installer.squashfs
|
|||
|
||||
xorriso -as mkisofs -r -checksum_algorithm_iso md5,sha1 \
|
||||
-V Ubuntu\ custom\ amd64 \
|
||||
-o $NEW_ISO \
|
||||
-o "${NEW_ISO}" \
|
||||
-cache-inodes -J -l \
|
||||
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
|
||||
-boot-load-size 4 -boot-info-table \
|
||||
|
|
Loading…
Reference in New Issue