ویرگول
ورودثبت نام
Mohammad Shokoohi
Mohammad Shokoohiیک هنرمندِ عاشق تکنولوژی...
Mohammad Shokoohi
Mohammad Shokoohi
خواندن ۳ دقیقه·۶ سال پیش

حذف سریع کرنل‌های قدیمی و بدون استفاده در گنو/لینوکس

در سیستم‌عامل گنو/لینوکس وقتی کرنل به نسخه‌ی جدیدتر آپدیت میشه، کرنل‌های قدیمی کماکان فعال و نصب باقی میمونن، اما سیستم‌عامل با هر بار بوت از آخرین نسخه‌ی کرنلی که نصب هست بوت میشه و عملاً سایر کرنل‌ها بلا استفاده خواهند بود و حجمی رو از فضای هارد دیسک اشغال میکنن.

عموماً فلسفه‌ی عدم حذف کرنل‌های قدیمی به بحث سازگاری برمی‌گرده، و پیشفرض اینه که کرنل یا کرنل‌های قدیمی به دلیل سازگاری و بوت بدون اشکال، به عنوان گزینه‌ی حیاتی برای مواقعی که ممکنه سیستم در بوت با کرنل نسخه‌ی جدید دچار پانیک ویا کرش بشه، حذف و یا غیر فعال نمیشن و از منوی بوت گراب قابل دسترسی هستن که کاربر بتونه با اونها سیستم رو بوت و رفع اشکال بکنه.

در این آموزش ما فرض رو بر این میگیریم که شما کرنل رو آپدیت کردید و سیستم بدون اشکال بوت میشه و تمامی سخت‌افزارها درست کار میکنن.

اخطار: این کار در عین سادگی به شدت حساس و خطرناک هست پس قبل از اینکه اینکار رو انجام بدید خوب راجع بهش تحقیق و مطالعه کنید.

برای اینکه نسخه‌ی درحال استفاده از کرنل رو ببینید ترمینال رو باز کنید و دستور زیر رو تایپ کنید:

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 کنید تا تغییرات اعمال بشه و فضای اشغال شده توسط کرنل‌های بی‌استفاده به سیستم برگرده.

خوشحال میشم نظرات شما رو راجع به این موضوع بدونم و یه گپ و گفتی در بخش نظرات با شما داشته باشم.

موفق باشید.

لینوکسآموزشlinuxubuntuاوبونتو
۲
۰
Mohammad Shokoohi
Mohammad Shokoohi
یک هنرمندِ عاشق تکنولوژی...
شاید از این پست‌ها خوشتان بیاید