From a7e1fb1798c08c48bad73af5fb268170b1aef031 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Thu, 29 Sep 2016 19:17:38 +0300 Subject: [PATCH] Improve initrd cleanup logic --- makeboarddeb.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/makeboarddeb.sh b/makeboarddeb.sh index 313cd5c034..17f4e8d805 100644 --- a/makeboarddeb.sh +++ b/makeboarddeb.sh @@ -150,8 +150,18 @@ create_board_package() exit 0 fi fi - # delete old initrd images - find /boot -name "initrd.img*" ! -name "*\$version" -printf "Removing obsolete file %f\n" -delete + STATEDIR=/var/lib/initramfs-tools + version_list="\$(ls -1 "\${STATEDIR}" | linux-version sort --reverse)" + for v in \$version_list; do + if linux-version compare \$v ne \$version; then + # try to delete delete old initrd images via update-initramfs + update-initramfs -d -k \$v + # 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 + fi + done EOF chmod +x $destination/etc/kernel/preinst.d/initramfs-cleanup