diff --git a/live-build/auto/config b/live-build/auto/config index 9935d24f..89e25277 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -35,6 +35,7 @@ mkdir -p config cp -af /usr/share/livecd-rootfs/live-build/functions config/functions cp -af /usr/share/livecd-rootfs/live-build/lb_*_layered config/ cp -af /usr/share/livecd-rootfs/live-build/snap-seed-parse.py config/snap-seed-parse +cp -af /usr/share/livecd-rootfs/live-build/squashfs-exclude-files config/ mkdir -p config/package-lists diff --git a/live-build/functions b/live-build/functions index e9d06d22..e4b90425 100644 --- a/live-build/functions +++ b/live-build/functions @@ -289,6 +289,17 @@ create_vmdk() { rm -rf ${scratch_d} } +create_squashfs() { + local config_dir rootfs_dir squashfs_file + rootfs_dir="$1" + squashfs_file="$2" + config_dir="$PWD/config" + (cd $rootfs_dir && + mksquashfs . $squashfs_file -no-progress -xattrs -comp xz \ + -ef "$config_dir/squashfs-exclude-files") + +} + create_derivative() { # arg1 is the disk type # arg2 is the new name diff --git a/live-build/squashfs-exclude-files b/live-build/squashfs-exclude-files new file mode 100644 index 00000000..bcdcb274 --- /dev/null +++ b/live-build/squashfs-exclude-files @@ -0,0 +1 @@ +etc/fstab diff --git a/live-build/ubuntu-cpc/hooks.d/base/root-squashfs.binary b/live-build/ubuntu-cpc/hooks.d/base/root-squashfs.binary index 873cee59..bc56bc42 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/root-squashfs.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/root-squashfs.binary @@ -8,14 +8,15 @@ if [ -n "$SUBARCH" ]; then exit 0 fi +. config/functions + # This is the directory created by create-root-dir.binary rootfs_dir=rootfs.dir squashfs_f="$PWD/livecd.ubuntu-cpc.squashfs" cp $rootfs_dir.manifest $squashfs_f.manifest -cp $rootfs_dir.filelist $squashfs_f.filelist +# fstab is omitted from the squashfs +grep -v '^/etc/fstab$' $rootfs_dir.filelist >$squashfs_f.filelist -(cd $rootfs_dir && - mksquashfs . $squashfs_f \ - -no-progress -xattrs -comp xz ) +create_squashfs $rootfs_dir $squashfs_f diff --git a/live-build/ubuntu-server/hooks/030-root-squashfs.binary b/live-build/ubuntu-server/hooks/030-root-squashfs.binary index 41c15001..148490e9 100755 --- a/live-build/ubuntu-server/hooks/030-root-squashfs.binary +++ b/live-build/ubuntu-server/hooks/030-root-squashfs.binary @@ -30,6 +30,4 @@ squashfs_f_manifest="${squashfs_f}.manifest" create_manifest "binary/boot/squashfs.dir" "${squashfs_f_manifest}" -(cd "binary/boot/squashfs.dir/" && - mksquashfs . ${squashfs_f} \ - -no-progress -xattrs -comp xz ) +create_squashfs "binary/boot/squashfs.dir/" ${squashfs_f} diff --git a/live-build/ubuntu-server/hooks/032-installer-squashfs.binary b/live-build/ubuntu-server/hooks/032-installer-squashfs.binary index c12c8bf1..a86deb35 100755 --- a/live-build/ubuntu-server/hooks/032-installer-squashfs.binary +++ b/live-build/ubuntu-server/hooks/032-installer-squashfs.binary @@ -91,6 +91,4 @@ find $OVERLAY_ROOT/var/lib/snapd/ -name 'lxd_*.snap' -delete squashfs_f="${PWD}/livecd.${PROJECT}.installer.squashfs" -(cd "$OVERLAY_ROOT/" && - mksquashfs . ${squashfs_f} \ - -no-progress -xattrs -comp xz ) +create_squashfs "$OVERLAY_ROOT/" ${squashfs_f}