From f96e874ed12e7e080111d27aa14c4f97aa6bec87 Mon Sep 17 00:00:00 2001 From: Balint Reczey Date: Mon, 25 May 2020 19:55:47 +0200 Subject: [PATCH] Remove fstab from squashfs images The default fstab is not valid, since squashfs does not support labels. LP: #1877078 --- live-build/auto/config | 1 + live-build/functions | 11 +++++++++++ live-build/squashfs-exclude-files | 1 + .../ubuntu-cpc/hooks.d/base/root-squashfs.binary | 9 +++++---- .../ubuntu-server/hooks/030-root-squashfs.binary | 4 +--- .../ubuntu-server/hooks/032-installer-squashfs.binary | 4 +--- 6 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 live-build/squashfs-exclude-files diff --git a/live-build/auto/config b/live-build/auto/config index 7a7fe245..baf5d4d1 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 e9fbb507..ac08d5de 100644 --- a/live-build/functions +++ b/live-build/functions @@ -277,6 +277,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 b48149b1..99dab98c 100755 --- a/live-build/ubuntu-server/hooks/032-installer-squashfs.binary +++ b/live-build/ubuntu-server/hooks/032-installer-squashfs.binary @@ -86,6 +86,4 @@ teardown_mountpoint "$INSTALLER_ROOT" squashfs_f="${PWD}/livecd.${PROJECT}.installer.squashfs" -(cd "$OVERLAY_ROOT/" && - mksquashfs . ${squashfs_f} \ - -no-progress -xattrs -comp xz ) +create_squashfs "$OVERLAY_ROOT/" ${squashfs_f}