Revert "Revert "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 1931bbcb19.
ui-by-default
Steve Langasek 2 years ago
parent 9db14f7dee
commit 6fac77b481

2
debian/changelog vendored

@ -3,6 +3,8 @@ livecd-rootfs (2.843) UNRELEASED; urgency=medium
* Unconditionally enable i386 in the chroot for Ubuntu Desktop; the new * Unconditionally enable i386 in the chroot for Ubuntu Desktop; the new
installer doesn't handle enabling this at install time, and late installer doesn't handle enabling this at install time, and late
enablement also misses us some recommends. enablement also misses us some recommends.
* Restore losetup code, the necessary launchpad-buildd changes were being
deployed just as this revert landed.
-- Steve Langasek <steve.langasek@ubuntu.com> Mon, 17 Apr 2023 16:51:13 -0700 -- Steve Langasek <steve.langasek@ubuntu.com> Mon, 17 Apr 2023 16:51:13 -0700

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…
Cancel
Save