
در سیستمعامل گنو/لینوکس وقتی کرنل به نسخهی جدیدتر آپدیت میشه، کرنلهای قدیمی کماکان فعال و نصب باقی میمونن، اما سیستمعامل با هر بار بوت از آخرین نسخهی کرنلی که نصب هست بوت میشه و عملاً سایر کرنلها بلا استفاده خواهند بود و حجمی رو از فضای هارد دیسک اشغال میکنن.
عموماً فلسفهی عدم حذف کرنلهای قدیمی به بحث سازگاری برمیگرده، و پیشفرض اینه که کرنل یا کرنلهای قدیمی به دلیل سازگاری و بوت بدون اشکال، به عنوان گزینهی حیاتی برای مواقعی که ممکنه سیستم در بوت با کرنل نسخهی جدید دچار پانیک ویا کرش بشه، حذف و یا غیر فعال نمیشن و از منوی بوت گراب قابل دسترسی هستن که کاربر بتونه با اونها سیستم رو بوت و رفع اشکال بکنه.
در این آموزش ما فرض رو بر این میگیریم که شما کرنل رو آپدیت کردید و سیستم بدون اشکال بوت میشه و تمامی سختافزارها درست کار میکنن.
اخطار: این کار در عین سادگی به شدت حساس و خطرناک هست پس قبل از اینکه اینکار رو انجام بدید خوب راجع بهش تحقیق و مطالعه کنید.
برای اینکه نسخهی درحال استفاده از کرنل رو ببینید ترمینال رو باز کنید و دستور زیر رو تایپ کنید:
uname -a

توجه: دقت کنید که این نسخه از کرنل نباید تحت هیچ شرایطی حذف و یا دستکاری بشه چون در صورتی که همه و یا بخشی از اون حذف بشه بوت سیستمعامل با مشکل روبرو خواهد شد.
حالا برای اینکه بتونید لیست تمام کرنلهای موجود رو ببینید از دستور زیر استفاده کنید:
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'
بعد از زدن دستور باید یک چنین نوشتههایی ببینید که مربوط به ماژول، هدر و خود کرنل میشن.
linux-headers-5.6.11-050611
linux-headers-5.6.11-050611-lowlatency
linux-headers-5.6.13-050613
linux-headers-5.6.13-050613-lowlatency
linux-image-unsigned-5.6.11-050611-lowlatency
linux-image-unsigned-5.6.13-050613-lowlatency
linux-modules-5.6.11-050611-lowlatency
linux-modules-5.6.13-050613-lowlatency
خب حالا باید با توجه به شماره نسخههایی که جلوی هر بخش نوشته شده جدیدترین و قدیمیترین کرنلها رو مشخص کنید، همینطور با توجه به اینکه در ابتدای امر نسخهی کرنل مورد استفاده رو هم پیدا کردیم دیگه میدونیم که کدوم کرنل قراره حذف بشه و کدوم نباید حذف بشه.
برای حذف هر کرنل باید از دستور زیر استفاده کنید:
sudo apt purge
بعد از نوشتن این دستور،با کلید Space یک فاصله بدید و بخشهای مختلف کرنل مدنظرتون رو بنویسید مثلا یه چیزی مثل این:
sudo apt purge linux-headers-5.6.11-050611 linux-headers-5.6.11-050611-lowlatency linux-image-unsigned-5.6.11-050611-lowlatency linux-modules-5.6.11-050611-lowlatency
من فرض کردم که کرنل 5.6.11 به درد من نمیخوره و میخوام حذفش کنم و اومدم تمامی بخشهایی که مربوط به اون میشدن رو در یک خط و با یک Space بینشون نوشتم و در نهایت کلید Enter رو میزنم تا عملیات حذف انجام بشه.
خب بعد از این کار کافیه که یک بار گراب رو با دستور زیر آپدیت کنیم تا کار تمام بشه:
sudo update-grub
الان باید سیستم رو Restart کنید تا تغییرات اعمال بشه و فضای اشغال شده توسط کرنلهای بیاستفاده به سیستم برگرده.
خوشحال میشم نظرات شما رو راجع به این موضوع بدونم و یه گپ و گفتی در بخش نظرات با شما داشته باشم.
موفق باشید.