حتما دیدین که بعد از آپدیت کردن هسته سیستم, کرنل های قبلی توی صفحه گراب می مونن. با این روش خیلی خیلی ساده ای که می گم می تونین کاری کنین که قبلیا به صورت اتوماتیک از صفحه گراب حذف بشن و فقط آخرین کرنل نشون داده بشه. شاید به نظر خیلیا کار بیهوده ای بیاد ولی به شخصه خیلی اعصابم از دستشون خورد می شد.
این روشو روی اوبونتو ۱۰.۰۴ و grub 2 امتحان کردم.
دقت کنید که کرنل های قبلی کلا پاک نمی شن بلکه فقط از صفحه گراب حذف می شن.
۱- بکاپ گرفتن از تنظیمات گراب
cd /etc/grub.d
sudo mkdir bak
sudo cp 10_linux bak/10_linux.bak
2- فایل 10_linux رو باز کنید.
sudo gedit 10_linux
آخر فایل, قبل از done یه خط جدید درست کنید و بنویسید exit;. یعنی فایلتون آخرش باید اینجوری یشه:.
.
.
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
exit;
done
۳- گراب رو آپدیت کنید.
sudo update-grub
4- اگه به هر دلیلی مشکلی پیش اومد, می تونین فایل قبلی رو برگردونید:
cd /etc/grub.d
sudo cp bak/10_linux.bak 10_linux
و بعدش دوباره گراب رو آپدیت کنید.
sudo update-grub
۵- بعضی وقت ها ممکنه با کرنل جدید مشکل داشته باشید و بخواید از کرنل قبلی استفاده کنید. بنابراین بهتره همیشه کرنل قبلی رو نگه داریم. اگه به جای exit شرط زیر رو بنویسید, به جای یکی, دو تا هسته آخر نمایش داده میشه. counter=$((counter+1))
if [ $counter = 2 ] ; then
exit
fi