From 076fadd55997e555fd940fc8d63759d681a93eb5 Mon Sep 17 00:00:00 2001 From: amazingfate Date: Thu, 6 Jun 2024 20:14:01 +0800 Subject: [PATCH] extensions: image-output-abl: use losetup instead of silly dd --- extensions/image-output-abl.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/image-output-abl.sh b/extensions/image-output-abl.sh index 8221588796..099593d3ae 100644 --- a/extensions/image-output-abl.sh +++ b/extensions/image-output-abl.sh @@ -13,20 +13,20 @@ function post_build_image__900_convert_to_abl_img() { declare -g ROOTFS_IMAGE_FILE="${DESTIMG}/${version}.rootfs.img" rootfs_start_sector=$(gdisk -l ${DESTIMG}/${version}.img | grep rootfs | awk '{print $2}') rootfs_end_sector=$(gdisk -l ${DESTIMG}/${version}.img | grep rootfs | awk '{print $3}') - dd if=${DESTIMG}/${version}.img skip=${rootfs_start_sector} count=$((${rootfs_end_sector} - ${rootfs_start_sector})) of=${DESTIMG}/rootfs.img - rm ${DESTIMG}/${version}.img - old_rootfs_image_uuid=$(blkid -s UUID -o value ${DESTIMG}/rootfs.img) old_rootfs_image_mount_dir=${DESTIMG}/rootfs-old new_rootfs_image_mount_dir=${DESTIMG}/rootfs-new mkdir -p ${old_rootfs_image_mount_dir} ${new_rootfs_image_mount_dir} truncate --size=9216M ${ROOTFS_IMAGE_FILE} mkfs.ext4 -F ${ROOTFS_IMAGE_FILE} new_rootfs_image_uuid=$(blkid -s UUID -o value ${ROOTFS_IMAGE_FILE}) - mount ${DESTIMG}/rootfs.img ${old_rootfs_image_mount_dir} + old_image_loop_device=$(losetup -f -P --show ${DESTIMG}/${version}.img) + old_rootfs_image_uuid=$(blkid -s UUID -o value ${old_image_loop_device}p1) + mount ${old_image_loop_device}p1 ${old_rootfs_image_mount_dir} mount ${ROOTFS_IMAGE_FILE} ${new_rootfs_image_mount_dir} cp -rfp ${old_rootfs_image_mount_dir}/* ${new_rootfs_image_mount_dir}/ umount ${old_rootfs_image_mount_dir} - rm -rf ${old_rootfs_image_mount_dir} ${DESTIMG}/rootfs.img + losetup -d ${old_image_loop_device} + rm ${DESTIMG}/${version}.img display_alert "Replace root partition uuid from ${old_rootfs_image_uuid} to ${new_rootfs_image_uuid} in /etc/fstab" "${EXTENSION}" "info" sed -i "s|${old_rootfs_image_uuid}|${new_rootfs_image_uuid}|g" ${new_rootfs_image_mount_dir}/etc/fstab declare -g bootimg_cmdline="${BOOTIMG_CMDLINE_EXTRA} root=UUID=${new_rootfs_image_uuid} slot_suffix=${abl_boot_partition_label#boot}"