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. > 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. > +} > +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. > +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. > + > +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. > -- > 2.21.0 -- ~Randy