حذف کرنل‌های قدیمی بدون استفاده در اوبونتو ۱۸٫۰۴

با گذر زمان همواره آپدیت‌های جدیدی برای کرنل لینوکس ۱۶٫۰۴ یا ۱۸٫۰۴ LTS server ارائه می‌شود. نصب این آپدیت‌ها امری ضروری برای بروز نگه‌داشتن سرور و حفظ امنیت آن است. اما به مرور پکیج‌هایی که برای آپدیت کرنل دانلود می‌کنید، افزایش پیدا کرده و سبب اشغال بی‌مورد فضای دیسک سرور می‌گردد. حذف کرنل‌های قدیمی و بدون استفاده می‌تواند به شما در مدیریت بهینه فضای دیسک کمک کند. با ما همراه باشید.


حذف کرنل‌های بدون استفاده و قدیمی در اوبونتو ۱۸٫۰۴

روالی که برای حذف تمامی کرنل‌های قدیمی و بدون استفاده باید طی شود به شرح زیر است:

۱) در گام نخست باید سرور را با جدیدترین نسخه کرنل بوت کنید.

۲) با استفاده از دستور dpkg تمامی کرنل‌های قدیمی را لیست کنید.

۳) با اجرای دستور df -H میزان استفاده از فضای دیسک سیستم را یادداشت کنید.

۴) تمامی کرنل‌های بدون استفاده و قدیمی را حذف کنید.

۵) تایید کنید.


چگونه لیست تمامی کرنل‌های نصب شده را بدست آوریم؟

با استفاده از دو دستور dpkg و egrep بصورت زیر، می‌توانید لیستی از تمامی کرنل‌های نصب شده تهیه کنید:

sudo dpkg --list | egrep -i --color 'linux-image|linux-headers'

لیست کرنل‌های قدیمی بدون استفاده

در تصویر بالا لیستی از کرنل‌های بدون استفاده و قدیمی را مشاهده می‌کنید که باید از روی سیستم پاک شوند. برای بدست آوردن تعداد ایمیج-کرنل‌هایی که روی سیستم شما نصب است، دستور زیر را اجرا نمایید:

sudo dpkg --list | egrep -i --color 'linux-image|linux-headers' | wc -l

 

نمونه خروجی:

// Output: 57

با اجرای دستور زیر، میزان فضای دیسکِ آزادِ فایل سیستم را بدست آورید:

df -H

فضای آزاد موجود در فایل سیستم


چطور کرنل‌های قدیمی را در اوبونتو ورژن ۱۸٫۰۴ و بالاتر حذف کنیم؟

با استفاده از دستور apt به دو طریق می‌توان اینکار را انجام داد:

 
sudo apt --purge autoremove
// OR
sudo apt-get --purge autoremove

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

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


حذف کرنل‌های بدون استفاده در اوبونتو ۱۶٫۰۴ LTS و قدیمی‌تر

ابتدا کرنل‌ در حال اجرا را پیدا کنید:

 
v="$(uname -r | awk -F '-virtual' '{ print $1}')"
echo "$v"

خروجی نمونه:

 
۴٫۱۵٫۰-۶۵-generic

 

در گام بعدی، لیستی درست کنید و در آن مشخصا اعلام کنید که کرنل در حال اجرا نباید پاک شود:

i="linux-headers-virtual|linux-image-virtual|linux-headers-generic-hwe-|linux- 
image-generic-hwe-|linux-headers-${v}|linux-image-$(uname -r)|linux-image- 
generic|linux-headers-generic"
echo "$i"

نمونه خروجی (کرنلی که قرار است روی سیستم نگه دارید باید در این خروجی مشخص باشد):

 
linux-headers-virtual|linux-image-virtual|linux-headers-generic-hwe-|linux-image-generic-hwe-|linux- 
headers-4.15.0-65-generic|linux-image-4.15.0-65-generic|linux-image-generic|linux-headers-generic

 

با اجرای دستور زیر، لیست کرنل‌هایی که باید حذف شوند را مشخص کنید:

 
dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i"

نمونه خروجی:

 
linux-headers-4.15.0-45
linux-headers-4.15.0-45-generic
linux-headers-4.15.0-64
linux-headers-4.15.0-64-generic
linux-headers-4.15.0-65
linux-headers-4.4.0-165
linux-headers-4.4.0-165-generic
linux-image-4.10.0-27-generic
linux-image-4.10.0-33-generic
linux-image-4.10.0-35-generic
linux-image-4.10.0-37-generic
linux-image-4.10.0-38-generic
linux-image-4.10.0-40-generic
linux-image-4.10.0-42-generic
linux-image-4.13.0-26-generic
linux-image-4.13.0-31-generic
linux-image-4.13.0-36-generic
linux-image-4.13.0-37-generic
linux-image-4.13.0-38-generic
linux-image-4.13.0-39-generic
linux-image-4.13.0-41-generic
linux-image-4.13.0-43-generic
linux-image-4.13.0-45-generic
linux-image-4.15.0-30-generic
linux-image-4.15.0-32-generic
linux-image-4.15.0-33-generic
linux-image-4.15.0-34-generic
linux-image-4.15.0-36-generic
linux-image-4.15.0-38-generic
linux-image-4.15.0-39-generic
linux-image-4.15.0-42-generic
linux-image-4.15.0-43-generic
linux-image-4.15.0-45-generic
linux-image-4.15.0-64-generic
linux-image-4.4.0-165-generic

 


چگونه کرنل‌های بدون استفاده و قدیمی را در اوبونتو (Linux 16.04 LTS server) حذف کنیم؟

سرانجام، با اجرای دستور زیر همه کرنل‌های بدون استفاده که بصورت ناخواسته فضای سرور را اشغال کرده‌اند، حذف کنید:

 
$ sudo -i
# apt-get --purge remove $(dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i")

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

نتیجه:

دوباره دستور df را اجرا کنید:

 
df -H

خروجی نمونه:

 
Filesystem      Size  Used Avail Use% Mounted on
udev            1.1G     0  1.1G   0% /dev
tmpfs           210M  6.0M  204M   3% /run
/dev/vda1        42G  6.7G   35G  17% /
tmpfs           1.1G     0  1.1G   0% /dev/shm
tmpfs           5.3M     0  5.3M   0% /run/lock
tmpfs           1.1G     0  1.1G   0% /sys/fs/cgroup
tmpfs           103k     0  103k   0% /var/lib/lxd/shmounts
tmpfs           103k     0  103k   0% /var/lib/lxd/devlxd
tmpfs           210M     0  210M   0% /run/user/0

بدین ترتیب شما از شر کرنل‌های قدیمی و بدون استفاده راحت شدید و فضای اشغال شده توسط آن‌ها به فضای در دسترس سیستم شما اضافه شد. امیدواریم که این مطلب به شما کمک کرده باشد.

 

 

با ما در تماس باشید

کارشناسان ما در هر لحظه منتظر پاسخوگویی به سوالات شما هستند.

کلیه حقوق مادی و معنوی سیستم متعلق به آریانت می‌باشد.