با گذر زمان همواره آپدیتهای جدیدی برای کرنل لینوکس 16.04 یا 18.04 LTS server ارائه میشود. نصب این آپدیتها امری ضروری برای بروز نگهداشتن سرور و حفظ امنیت آن است. اما به مرور پکیجهایی که برای آپدیت کرنل دانلود میکنید، افزایش پیدا کرده و سبب اشغال بیمورد فضای دیسک سرور میگردد. حذف کرنلهای قدیمی و بدون استفاده میتواند به شما در مدیریت بهینه فضای دیسک کمک کند. با ما همراه باشید.
حذف کرنلهای بدون استفاده و قدیمی در اوبونتو 18.04
روالی که برای حذف تمامی کرنلهای قدیمی و بدون استفاده باید طی شود به شرح زیر است:
1) در گام نخست باید سرور را با جدیدترین نسخه کرنل بوت کنید.
2) با استفاده از دستور dpkg تمامی کرنلهای قدیمی را لیست کنید.
3) با اجرای دستور df -H میزان استفاده از فضای دیسک سیستم را یادداشت کنید.
4) تمامی کرنلهای بدون استفاده و قدیمی را حذف کنید.
5) تایید کنید.
چگونه لیست تمامی کرنلهای نصب شده را بدست آوریم؟
با استفاده از دو دستور 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
چطور کرنلهای قدیمی را در اوبونتو ورژن 18.04 و بالاتر حذف کنیم؟
با استفاده از دستور apt به دو طریق میتوان اینکار را انجام داد:
sudo apt --purge autoremove // OR sudo apt-get --purge autoremove
در خروجی دستور فوق مشاهده میکنید که تمامی نسخههای قدیمی و بدون استفاده کرنل لیست شدهاند و میتوانید آنها را پاک کنید.
حذف کرنلهای بدون استفاده در اوبونتو 16.04 LTS و قدیمیتر
ابتدا کرنل در حال اجرا را پیدا کنید:
v="$(uname -r | awk -F '-virtual' '{ print $1}')" echo "$v"
خروجی نمونه:
4.15.0-65-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
بدین ترتیب شما از شر کرنلهای قدیمی و بدون استفاده راحت شدید و فضای اشغال شده توسط آنها به فضای در دسترس سیستم شما اضافه شد. امیدواریم که این مطلب به شما کمک کرده باشد.