Fix uInitrd update logic

Deleting initrd.img will break kernel updates for same kernel version
Add cleanup of old uInitrd images to existing cleanup logic
This commit is contained in:
zador-blood-stained 2016-11-20 12:57:43 +03:00
parent cf313964dc
commit eb38e161fd

View File

@ -140,11 +140,10 @@ create_board_package()
mkdir -p $destination/etc/initramfs/post-update.d/
cat <<-EOF > $destination/etc/initramfs/post-update.d/99-uboot
#!/bin/sh
echo "update-initramfs: Converting to u-boot format"
tempname=u\`echo \$2 | cut -d'/' -f3\`
mkimage -A $INITRD_ARCH -O linux -T ramdisk -C gzip -n uInitrd -d \$2 /boot/\$tempname > /dev/null
ln -sf \$tempname /boot/uInitrd > /dev/null 2>&1 || mv /boot/\$tempname /boot/uInitrd
rm -f \$2
echo "update-initramfs: Converting to u-boot format" >&2
tempname="/boot/uInitrd-\$1"
mkimage -A $INITRD_ARCH -O linux -T ramdisk -C gzip -n uInitrd -d \$2 \$tempname > /dev/null
ln -sf \$(basename \$tempname) /boot/uInitrd > /dev/null 2>&1 || mv \$tempname /boot/uInitrd
exit 0
EOF
chmod +x $destination/etc/initramfs/post-update.d/99-uboot
@ -176,7 +175,7 @@ create_board_package()
# delete unused state files
find \$STATEDIR -type f ! -name "\$version" -printf "Removing obsolete file %f\n" -delete
# delete unused initrd images
find /boot -name "initrd.img*" ! -name "*\$version" -printf "Removing obsolete file %f\n" -delete
find /boot -name "initrd.img*" -o -name "uInitrd-*" ! -name "*\$version" -printf "Removing obsolete file %f\n" -delete
fi
done
EOF