mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-10-31 08:54:06 +00:00 
			
		
		
		
	disco." the actual problem is in live-build with merged-usr and copying over chroot/binary includes.
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash -ex
 | |
| # vi: ts=4 noexpandtab
 | |
| #
 | |
| # Generate a squashfs root and manifest
 | |
| 
 | |
| set -x
 | |
| 
 | |
| echo "032-installer-squashfs.binary"
 | |
| 
 | |
| case $IMAGE_TARGETS in
 | |
| 	""|*squashfs*)
 | |
| 		;;
 | |
| 	*)
 | |
| 		echo "Skipping squashfs build"
 | |
| 		exit 0
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| if [ -n "$SUBARCH" ]; then
 | |
| 	echo "Skipping rootfs build for subarch flavor build"
 | |
| 	exit 0
 | |
| fi
 | |
| 
 | |
| . config/functions
 | |
| . config/common
 | |
| 
 | |
| SQUASH_ROOT=binary/boot/squashfs.dir
 | |
| OVERLAY_ROOT=binary/overlay
 | |
| 
 | |
| mkdir -p "$OVERLAY_ROOT"
 | |
| 
 | |
| # Create an installer squashfs layer
 | |
| mount_overlay "$SQUASH_ROOT/" "$OVERLAY_ROOT/" "$SQUASH_ROOT/"
 | |
| 
 | |
| setup_mountpoint binary/boot/squashfs.dir
 | |
| 
 | |
| # Override JobRunningTimeoutSec to 0s on the .device unit that
 | |
| # subiquity_config.mount depends on to avoid a 5s delay on switching
 | |
| # to a new VT when there is no device there (LP: #1750117).
 | |
| # It would be better to have this in ../includes.binary/overlay but
 | |
| # you can't have backslashes in filenames in bzr branches!
 | |
| DEVICE_UNIT_NAME='dev-disk-by\x2duuid-00c629d6\x2d06ab\x2d4dfd\x2db21e\x2dc3186f34105d.device'
 | |
| mkdir -p "$SQUASH_ROOT/etc/systemd/system/$DEVICE_UNIT_NAME.d"
 | |
| cat > "$SQUASH_ROOT/etc/systemd/system/$DEVICE_UNIT_NAME.d/override.conf" <<EOF
 | |
| [Unit]
 | |
| JobRunningTimeoutSec=0s
 | |
| EOF
 | |
| 
 | |
| # Prepare installer layer.
 | |
| 
 | |
| # Install any requirements for the installer, for things we don't want
 | |
| # to see on the installed system
 | |
| chroot $SQUASH_ROOT apt-get update
 | |
| chroot $SQUASH_ROOT apt-get -y install user-setup curtin lupin-casper
 | |
| 
 | |
| # For bug #1743643 "Install to dirty disk with swap fails" remove the
 | |
| # "helpful" casper script that mounts any swap partitions it finds.
 | |
| rm -f $SQUASH_ROOT/usr/share/initramfs-tools/scripts/casper-bottom/*swap
 | |
| 
 | |
| # Installing casper means we need a new initramfs
 | |
| UPDATE_INITRAMFS_OPTIONS=CASPER_GENERATE_UUID=1 recreate_initramfs $SQUASH_ROOT
 | |
| 
 | |
| # Don't let cloud-init run in the live session.
 | |
| touch $SQUASH_ROOT/etc/cloud/cloud-init.disabled
 | |
| 
 | |
| # Do the snap seeding dance.
 | |
| chroot $SQUASH_ROOT mkdir -p /var/lib/snapd/seed/snaps /var/lib/snapd/seed/assertions
 | |
| chroot $SQUASH_ROOT sh -c '
 | |
| set -x;
 | |
| cd /var/lib/snapd/seed;
 | |
| sudo SNAPPY_STORE_NO_CDN=1 snap download core;
 | |
| sudo SNAPPY_STORE_NO_CDN=1 snap download subiquity;
 | |
| 
 | |
| CORE_SNAP=$(ls -1 core*.snap);
 | |
| SUBIQUITY_SNAP=$(ls -1 subiquity*.snap);
 | |
| 
 | |
| mv *.assert /var/lib/snapd/seed/assertions/;
 | |
| mv *.snap /var/lib/snapd/seed/snaps/;
 | |
| 
 | |
| cat <<EOF > /var/lib/snapd/seed/seed.yaml
 | |
| snaps:
 | |
|  - name: core
 | |
|    channel: stable
 | |
|    file: ${CORE_SNAP}
 | |
|  - name: subiquity
 | |
|    channel: stable
 | |
|    classic: true
 | |
|    file: ${SUBIQUITY_SNAP}
 | |
| EOF
 | |
| '
 | |
| 
 | |
| teardown_mountpoint "$SQUASH_ROOT"
 | |
| 
 | |
| # Then unmount the overlay
 | |
| umount "$SQUASH_ROOT"
 | |
| 
 | |
| squashfs_f="${PWD}/livecd.${PROJECT}.installer.squashfs"
 | |
| 
 | |
| (cd "$OVERLAY_ROOT/" &&
 | |
|       mksquashfs . ${squashfs_f} \
 | |
|         -no-progress -xattrs -comp xz )
 |