On 10/15/19 11:13 PM, Bhaskar Chowdhury wrote:
This patch will remove old kernel from the system in a selective way.
Signed-off-by: Bhaskar Chowdhury <unixbhaskar@xxxxxxxxx>
---
Thanks, a bunch to Randy for the hand holding . :)
Hi Bhaskar,
First problem is that patch complains:
checking file scripts/prune-kernel
Using Plan A...
patch: **** malformed patch at line 87: 2.21.0
IOW, this patch does not apply cleanly.
More comments below.Fixed.
scripts/prune-kernel | 71 ++++++++++++++++++++++++++++++++++++--------
1 file changed, 59 insertions(+), 12 deletions(-)
diff --git a/scripts/prune-kernel b/scripts/prune-kernel
index e8aa940bc0a9..78dd4c854b2b 100755
--- a/scripts/prune-kernel
+++ b/scripts/prune-kernel
@@ -5,17 +5,64 @@
# again, /boot and /lib/modules/ eventually fill up.
# Dumb script to purge that stuff:
+#for f in "$@"
+#do
+# if rpm -qf "/lib/modules/$f" >/dev/null; then
+# echo "keeping $f (installed from rpm)"
+# elif [ $(uname -r) = "$f" ]; then
+# echo "keeping $f (running kernel) "
+# else
+# echo "removing $f"
+# rm -f "/boot/initramfs-$f.img" "/boot/System.map-$f"
+# rm -f "/boot/vmlinuz-$f" "/boot/config-$f"
+# rm -rf "/lib/modules/$f"
+# new-kernel-pkg --remove $f
+# fi
+#done
+boot_dir=/boot
+modules_dir=/lib/modules
+
+function remove_old_kernel(){
+ cd $boot_dir
+ rm -If vmlinuz-$kenrel_version System.map-$kernel_version config-$kernel_verison
Typos:
$kernel_version $kernel_version
I.e., you can't have tested this.
Okay, terminate it there, because allowing defeat the purpose of the script.+}
+function remove_old_kernel_modules_dir(){
+ cd $modules_dir
+ rm -rf $modules_version
+}
+printf "\n\n Enlist the installed kernels \n\n"
+
+find $boot_dir -name "vmlinuz-*" -type f -exec ls -1 {} \;
+
+printf "\n\n\n Please give the kernel version to remove: %s"
+read kernel_version
+
If I enter nothing here, no need to call remove_old_kernel.
It will not reach here, because we have terminated it above.+remove_old_kernel
+
+printf "\n\n Enlist the installed modules directory \n\n"
+
+find $modules_dir -maxdepth 0 -type d -exec ls -1 {} \;
+
+printf "\n\n Please give the full modules directory name to remove: %s"
+read modules_version
If I enter nothing here, don't call remove_old_kernel_modules_dir.
Fixed.+
+remove_old_kernel_modules_dir
+
+printf "\n\n Removed kernel version: $kernel_version and associcated modules: $modules_version ...Done \n"
typo: associated
+while :
do
Why is the "do" line missing a '+'? The only do/done in the current script
are already listed above as being commented out.
+printf "\n\n Do you want to remove another?[YN] : %s"
+read response
+
+if [[ $response == "Y" ]];then
+ printf "Please give another version to remove : %s"
+ read kernel_version
+ remove_old_kernel
+ printf "\n\n Please give the full modules directory name to remove: %s"
+ read modules_version
+ remove_old_kernel_modules_dir
+elif [[ $response == "N" ]];then
+ printf "\n\n Alright,no more. \n\n"
Just exit, no printf needed.
+ exit 1
+fi
done
Same comment for "done" as for "do" above.I must have done something wrong that is why...now fixed it.
Thank you Randy, and extremely sorry to gobbles up your and everyones
--
2.21.0
--
~Randy
Attachment:
signature.asc
Description: PGP signature