mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-10-30 16:34:07 +00:00 
			
		
		
		
	Revert "Revert the recent kpartx->losetup changes, as we need to put some other changes on top. Let's try to re-introduce this for MM."
This reverts commit 7b07db91110a3dda2723bc853a43f81c4e2a2f75.
This commit is contained in:
		
							parent
							
								
									a418f52bd4
								
							
						
					
					
						commit
						ada1f09b39
					
				
							
								
								
									
										3
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							| @ -1,8 +1,5 @@ | |||||||
| livecd-rootfs (2.833) UNRELEASED; urgency=medium | livecd-rootfs (2.833) UNRELEASED; urgency=medium | ||||||
| 
 | 
 | ||||||
|   * Revert all the losetup related changes introduced in versions between |  | ||||||
|     2.829 and 2.832. Those are not quite good for lunar due to CPC |  | ||||||
|     incompatibilities. |  | ||||||
|   * Add ubuntucinnamon, ubuntu-unity and edubuntu to the workaround for the |   * Add ubuntucinnamon, ubuntu-unity and edubuntu to the workaround for the | ||||||
|     invalid apt cache issue we encountered during all of our previous |     invalid apt cache issue we encountered during all of our previous | ||||||
|     releases. |     releases. | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							| @ -27,6 +27,7 @@ Depends: ${misc:Depends}, | |||||||
|          lsb-release, |          lsb-release, | ||||||
|          lzma, |          lzma, | ||||||
|          make, |          make, | ||||||
|  |          mount, | ||||||
|          parted, |          parted, | ||||||
|          procps, |          procps, | ||||||
|          python3, |          python3, | ||||||
|  | |||||||
| @ -41,7 +41,7 @@ create_partitions() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| create_and_mount_uefi_partition() { | create_and_mount_uefi_partition() { | ||||||
|     uefi_dev="/dev/mapper${loop_device///dev/}p15" |     uefi_dev="${loop_device}p15" | ||||||
|     mountpoint="$1" |     mountpoint="$1" | ||||||
|     mkfs.vfat -F 32 -n UEFI "${uefi_dev}" |     mkfs.vfat -F 32 -n UEFI "${uefi_dev}" | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -12,16 +12,13 @@ loop_raw= | |||||||
| backing_img= | backing_img= | ||||||
| 
 | 
 | ||||||
| clean_loops() { | clean_loops() { | ||||||
|     local kpartx_ret |     if [ -n "${loop_device}" ]; then | ||||||
|     local kpartx_stdout |  | ||||||
| 
 |  | ||||||
|     if [ -n "${backing_img}" ]; then |  | ||||||
|         # If something just finished writing to the device or a |         # If something just finished writing to the device or a | ||||||
|         # partition (e.g. the zerofree in umount_partition) udev might |         # partition (e.g. the zerofree in umount_partition) udev might | ||||||
|         # still be processing the device. |         # still be processing the device. | ||||||
|         udevadm settle |         udevadm settle | ||||||
|         sync |         sync | ||||||
|         kpartx -v -d "${backing_img}" |         losetup -v -d "${loop_device}" | ||||||
|         unset backing_img |         unset backing_img | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
| @ -65,18 +62,15 @@ mount_image() { | |||||||
|     trap clean_loops EXIT |     trap clean_loops EXIT | ||||||
|     backing_img="$1" |     backing_img="$1" | ||||||
|     local rootpart="$2" |     local rootpart="$2" | ||||||
|     kpartx_mapping="$(kpartx -s -v -a ${backing_img})" |     loop_device=$(losetup --show -f -P -v ${backing_img}) | ||||||
| 
 | 
 | ||||||
|     # Find the loop device |  | ||||||
|     loop_p1="$(echo -e ${kpartx_mapping} | head -n1 | awk '{print$3}')" |  | ||||||
|     loop_device="/dev/${loop_p1%p[0-9]*}" |  | ||||||
|     if [ ! -b ${loop_device} ]; then |     if [ ! -b ${loop_device} ]; then | ||||||
|         echo "unable to find loop device for ${backing_img}" |         echo "unable to find loop device for ${backing_img}" | ||||||
|         exit 1 |         exit 1 | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     # Find the rootfs location |     # Find the rootfs location | ||||||
|     rootfs_dev_mapper="/dev/mapper/${loop_p1%%[0-9]}${rootpart}" |     rootfs_dev_mapper="${loop_device}p${rootpart}" | ||||||
|     if [ ! -b "${rootfs_dev_mapper}" ]; then |     if [ ! -b "${rootfs_dev_mapper}" ]; then | ||||||
|         echo "${rootfs_dev_mapper} is not a block device"; |         echo "${rootfs_dev_mapper} is not a block device"; | ||||||
|         exit 1 |         exit 1 | ||||||
| @ -213,7 +207,7 @@ mount_disk_image() { | |||||||
|     mount_image ${disk_image} 1 |     mount_image ${disk_image} 1 | ||||||
|     mount_partition "${rootfs_dev_mapper}" $mountpoint |     mount_partition "${rootfs_dev_mapper}" $mountpoint | ||||||
| 
 | 
 | ||||||
|     local uefi_dev="/dev/mapper${loop_device///dev/}p15" |     local uefi_dev="${loop_device}p15" | ||||||
|     if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then |     if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then | ||||||
|         mount "${uefi_dev}" $mountpoint/boot/efi |         mount "${uefi_dev}" $mountpoint/boot/efi | ||||||
|     fi |     fi | ||||||
| @ -254,7 +248,7 @@ umount_partition() { | |||||||
| umount_disk_image() { | umount_disk_image() { | ||||||
|     mountpoint="$1" |     mountpoint="$1" | ||||||
| 
 | 
 | ||||||
|     local uefi_dev="/dev/mapper${loop_device///dev/}p15" |     local uefi_dev="${loop_device}p15" | ||||||
|     if [ -e "$mountpoint/boot/efi" -a -b "$uefi_dev" ]; then |     if [ -e "$mountpoint/boot/efi" -a -b "$uefi_dev" ]; then | ||||||
| 	# zero fill free space in UEFI partition | 	# zero fill free space in UEFI partition | ||||||
| 	cat < /dev/zero > "$mountpoint/boot/efi/bloat_file" 2> /dev/null || true | 	cat < /dev/zero > "$mountpoint/boot/efi/bloat_file" 2> /dev/null || true | ||||||
|  | |||||||
| @ -49,7 +49,7 @@ GRUB_TIMEOUT=0 | |||||||
| # Set the default commandline | # Set the default commandline | ||||||
| GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 earlyprintk" | GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 earlyprintk" | ||||||
| EOF | EOF | ||||||
|     prep_partition="/dev/mapper${loop_device///dev/}p2" |     prep_partition="${loop_device}p2" | ||||||
|     chroot mountpoint grub-install "${prep_partition}" \ |     chroot mountpoint grub-install "${prep_partition}" \ | ||||||
|         --no-nvram \ |         --no-nvram \ | ||||||
|         --boot-directory=/boot \ |         --boot-directory=/boot \ | ||||||
|  | |||||||
| @ -197,7 +197,7 @@ create_partitions() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| create_and_mount_uefi_partition() { | create_and_mount_uefi_partition() { | ||||||
|     uefi_dev="/dev/mapper${loop_device///dev/}p15" |     uefi_dev="${loop_device}p15" | ||||||
|     mountpoint="$1" |     mountpoint="$1" | ||||||
|     mkfs.vfat -F 32 -n UEFI "${uefi_dev}" |     mkfs.vfat -F 32 -n UEFI "${uefi_dev}" | ||||||
| 
 | 
 | ||||||
| @ -234,7 +234,7 @@ install_grub() { | |||||||
|                 # Server preinstalled image |                 # Server preinstalled image | ||||||
|                 # Setup cidata sample data & nocloud fallback |                 # Setup cidata sample data & nocloud fallback | ||||||
|                 # Allows login on first boot with or without metadata |                 # Allows login on first boot with or without metadata | ||||||
|                 cidata_dev="/dev/mapper${loop_device///dev/}p14" |                 cidata_dev="${loop_device}p14" | ||||||
|                 setup_cidata "${cidata_dev}" |                 setup_cidata "${cidata_dev}" | ||||||
|                 setup_cinocloud mountpoint |                 setup_cinocloud mountpoint | ||||||
|             fi |             fi | ||||||
| @ -246,7 +246,7 @@ install_grub() { | |||||||
|                 # Server preinstalled image |                 # Server preinstalled image | ||||||
|                 # Setup cidata sample data & nocloud fallback |                 # Setup cidata sample data & nocloud fallback | ||||||
|                 # Allows login on first boot with or without metadata |                 # Allows login on first boot with or without metadata | ||||||
|                 cidata_dev="/dev/mapper${loop_device///dev/}p14" |                 cidata_dev="${loop_device}p14" | ||||||
|                 setup_cidata "${cidata_dev}" |                 setup_cidata "${cidata_dev}" | ||||||
|                 setup_cinocloud mountpoint |                 setup_cinocloud mountpoint | ||||||
|             fi |             fi | ||||||
| @ -258,7 +258,7 @@ install_grub() { | |||||||
|                 # Server preinstalled image |                 # Server preinstalled image | ||||||
|                 # Setup cidata sample data & nocloud fallback |                 # Setup cidata sample data & nocloud fallback | ||||||
|                 # Allows login on first boot with or without metadata |                 # Allows login on first boot with or without metadata | ||||||
|                 cidata_dev="/dev/mapper${loop_device///dev/}p13" |                 cidata_dev="${loop_device}p13" | ||||||
|                 setup_cidata "${cidata_dev}" |                 setup_cidata "${cidata_dev}" | ||||||
|                 setup_cinocloud mountpoint |                 setup_cinocloud mountpoint | ||||||
|             fi |             fi | ||||||
| @ -285,10 +285,10 @@ install_grub() { | |||||||
|                         efi_target=riscv64-efi |                         efi_target=riscv64-efi | ||||||
|                         # The real U-Boot |                         # The real U-Boot | ||||||
|                         chroot mountpoint apt-get install -qqy u-boot-microchip |                         chroot mountpoint apt-get install -qqy u-boot-microchip | ||||||
|                         loader="/dev/mapper${loop_device///dev/}p13" |                         loader="${loop_device}p13" | ||||||
|                         dd if=mountpoint/usr/lib/u-boot/microchip_icicle/u-boot.payload of=$loader |                         dd if=mountpoint/usr/lib/u-boot/microchip_icicle/u-boot.payload of=$loader | ||||||
|                         # Provide end-user modifyable CIDATA |                         # Provide end-user modifyable CIDATA | ||||||
|                         cidata_dev="/dev/mapper${loop_device///dev/}p12" |                         cidata_dev="${loop_device}p12" | ||||||
|                         setup_cidata "${cidata_dev}" |                         setup_cidata "${cidata_dev}" | ||||||
|                         # Provide stock nocloud datasource |                         # Provide stock nocloud datasource | ||||||
|                         # Allow interactive login on baremetal board, |                         # Allow interactive login on baremetal board, | ||||||
| @ -330,10 +330,10 @@ install_grub() { | |||||||
|                         chroot mountpoint apt-get install -qqy u-boot-nezha |                         chroot mountpoint apt-get install -qqy u-boot-nezha | ||||||
|                         # Since version 2022.10 U-Boot SPL and U-Boot are installed onto the same partition. |                         # Since version 2022.10 U-Boot SPL and U-Boot are installed onto the same partition. | ||||||
|                         # Package nezha-boot0 is not needed anymore. |                         # Package nezha-boot0 is not needed anymore. | ||||||
|                         loader1="/dev/mapper${loop_device///dev/}p13" |                         loader1="${loop_device}p13" | ||||||
|                         dd if=mountpoint/usr/lib/u-boot/${SUBARCH}/u-boot-sunxi-with-spl.bin of=$loader1 |                         dd if=mountpoint/usr/lib/u-boot/${SUBARCH}/u-boot-sunxi-with-spl.bin of=$loader1 | ||||||
|                         # Provide end-user modifyable CIDATA |                         # Provide end-user modifyable CIDATA | ||||||
|                         cidata_dev="/dev/mapper${loop_device///dev/}p12" |                         cidata_dev="${loop_device}p12" | ||||||
|                         setup_cidata "${cidata_dev}" |                         setup_cidata "${cidata_dev}" | ||||||
|                         # Provide stock nocloud datasource |                         # Provide stock nocloud datasource | ||||||
|                         # Allow interactive login on baremetal SiFive board, |                         # Allow interactive login on baremetal SiFive board, | ||||||
| @ -359,7 +359,7 @@ install_grub() { | |||||||
|                         efi_target=riscv64-efi |                         efi_target=riscv64-efi | ||||||
| 
 | 
 | ||||||
|                         # factory u-boot requires a p3 partition with /boot/uEnv.txt file |                         # factory u-boot requires a p3 partition with /boot/uEnv.txt file | ||||||
|                         uenv_dev="/dev/mapper${loop_device///dev/}p3" |                         uenv_dev="${loop_device}p3" | ||||||
|                         mkfs.ext4 "${uenv_dev}" |                         mkfs.ext4 "${uenv_dev}" | ||||||
|                         uenv_mnt_dir=`mktemp -d uenvXXX` |                         uenv_mnt_dir=`mktemp -d uenvXXX` | ||||||
|                         mount "${uenv_dev}" "${uenv_mnt_dir}" |                         mount "${uenv_dev}" "${uenv_mnt_dir}" | ||||||
| @ -387,7 +387,7 @@ EOF | |||||||
|                         umount "${uenv_mnt_dir}" |                         umount "${uenv_mnt_dir}" | ||||||
|                         rmdir "${uenv_mnt_dir}" |                         rmdir "${uenv_mnt_dir}" | ||||||
|                         # Provide end-user modifyable CIDATA |                         # Provide end-user modifyable CIDATA | ||||||
|                         cidata_dev="/dev/mapper${loop_device///dev/}p12" |                         cidata_dev="${loop_device}p12" | ||||||
|                         setup_cidata "${cidata_dev}" |                         setup_cidata "${cidata_dev}" | ||||||
|                         # Provide stock nocloud datasource |                         # Provide stock nocloud datasource | ||||||
|                         # Allow interactive login on baremetal SiFive board, |                         # Allow interactive login on baremetal SiFive board, | ||||||
| @ -406,7 +406,7 @@ EOF | |||||||
|                         chroot mountpoint bash -c 'FK_FORCE=yes apt-get install -qqy grub-efi-riscv64 flash-kernel' |                         chroot mountpoint bash -c 'FK_FORCE=yes apt-get install -qqy grub-efi-riscv64 flash-kernel' | ||||||
|                         efi_target=riscv64-efi |                         efi_target=riscv64-efi | ||||||
|                         # Provide end-user modifyable CIDATA |                         # Provide end-user modifyable CIDATA | ||||||
|                         cidata_dev="/dev/mapper${loop_device///dev/}p12" |                         cidata_dev="${loop_device}p12" | ||||||
|                         setup_cidata "${cidata_dev}" |                         setup_cidata "${cidata_dev}" | ||||||
|                         # Provide stock nocloud datasource |                         # Provide stock nocloud datasource | ||||||
|                         # Allow interactive login on baremetal board, |                         # Allow interactive login on baremetal board, | ||||||
| @ -431,13 +431,13 @@ EOF | |||||||
|                         fi |                         fi | ||||||
|                         chroot mountpoint apt-get install -qqy u-boot-sifive |                         chroot mountpoint apt-get install -qqy u-boot-sifive | ||||||
|                         # FSBL, which gets U-Boot SPL |                         # FSBL, which gets U-Boot SPL | ||||||
|                         loader1="/dev/mapper${loop_device///dev/}p13" |                         loader1="${loop_device}p13" | ||||||
|                         # The real U-Boot |                         # The real U-Boot | ||||||
|                         loader2="/dev/mapper${loop_device///dev/}p14" |                         loader2="${loop_device}p14" | ||||||
|                         dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot-spl.bin of=$loader1 |                         dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot-spl.bin of=$loader1 | ||||||
|                         dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot.itb of=$loader2 |                         dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot.itb of=$loader2 | ||||||
|                         # Provide end-user modifyable CIDATA |                         # Provide end-user modifyable CIDATA | ||||||
|                         cidata_dev="/dev/mapper${loop_device///dev/}p12" |                         cidata_dev="${loop_device}p12" | ||||||
|                         setup_cidata "${cidata_dev}" |                         setup_cidata "${cidata_dev}" | ||||||
|                         # Provide stock nocloud datasource |                         # Provide stock nocloud datasource | ||||||
|                         # Allow interactive login on baremetal SiFive board, |                         # Allow interactive login on baremetal SiFive board, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user