11#! /bin/bash
22set -ex
33image_name=$1
4- efi_start_sector=$( gdisk -l ./${image_name} | grep efi| awk ' {print $2}' )
5- efi_end_sector=$( gdisk -l ./${image_name} | grep efi| awk ' {print $3}' )
64rootfs_start_sector=$( gdisk -l ./${image_name} | grep rootfs| awk ' {print $2}' )
75rootfs_end_sector=$( gdisk -l ./${image_name} | grep rootfs| awk ' {print $3}' )
8- rm esp* .img rootfs* .img || true
9- dd if=./${image_name} skip=${efi_start_sector} count=$(( ${efi_end_sector} - ${efi_start_sector} )) of=esp.img
6+ rm rootfs* .img || true
107dd if=./${image_name} skip=${rootfs_start_sector} count=$(( ${rootfs_end_sector} - ${rootfs_start_sector} )) of=rootfs.img
118rm ${image_name}
129
1310old_rootfs_image=rootfs.img
1411old_rootfs_image_mount_dir=rootfs
1512old_rootfs_image_uuid=$( blkid -s UUID -o value ${old_rootfs_image} )
16- old_esp_image=esp.img
17- old_esp_image_mount_dir=esp
18- old_esp_image_uuid=$( blkid -s UUID -o value ${old_esp_image} )
1913new_rootfs_image=${image_name%* .img} -rootfs.img
2014new_rootfs_image_mount_dir=rootfs-new
21- new_esp_image=${image_name%* .img} -esp.img
22- new_esp_image_mount_dir=esp-new
23- mkdir -p ${old_rootfs_image_mount_dir} ${old_esp_image_mount_dir} ${new_rootfs_image_mount_dir} ${new_esp_image_mount_dir}
15+ mkdir -p ${old_rootfs_image_mount_dir} ${new_rootfs_image_mount_dir}
2416truncate --size=8192M ${new_rootfs_image}
25- truncate --size=200M ${new_esp_image}
26- mkfs.fat -S 4096 ${new_esp_image}
2717mkfs.ext4 -F ${new_rootfs_image}
28- new_esp_image_uuid=$( blkid -s UUID -o value ${new_esp_image} )
2918new_rootfs_image_uuid=$( blkid -s UUID -o value ${new_rootfs_image} )
30- sudo mount ${old_esp_image} ${old_esp_image_mount_dir}
31- sudo mount ${new_esp_image} ${new_esp_image_mount_dir}
32- sudo cp -rfp ${old_esp_image_mount_dir} /* ${new_esp_image_mount_dir} /
33- sudo umount ${new_esp_image_mount_dir}
34- sudo umount ${old_esp_image_mount_dir}
3519sudo mount ${old_rootfs_image} ${old_rootfs_image_mount_dir}
3620sudo mount ${new_rootfs_image} ${new_rootfs_image_mount_dir}
3721sudo cp -rfp ${old_rootfs_image_mount_dir} /* ${new_rootfs_image_mount_dir} /
3822sudo sed -i " s|${old_rootfs_image_uuid} |${new_rootfs_image_uuid} |g" ${new_rootfs_image_mount_dir} /etc/fstab
39- sudo sed -i " s|${old_esp_image_uuid} |${new_esp_image_uuid} |g" ${new_rootfs_image_mount_dir} /etc/fstab
4023gzip -c ./${new_rootfs_image_mount_dir} /boot/vmlinuz-* -sm8250-arm64 > Image.gz
4124for panel_type in boe csot
4225do
@@ -58,7 +41,6 @@ sudo umount ${old_rootfs_image_mount_dir}
5841e2fsck -p -f ${new_rootfs_image}
5942resize2fs -M ${new_rootfs_image}
6043xz -z -T0 ${new_rootfs_image}
61- xz -z -T0 ${new_esp_image}
6244xz -z -T0 armbian-kernel-boe.img
6345xz -z -T0 armbian-kernel-csot.img
64- rm ${old_rootfs_image} ${old_esp_image} || true
46+ rm ${old_rootfs_image} || true
0 commit comments