Могу ли я удалить папки в /lib/modules/ после вызова "apt-get purge"

Я уже звонил apt-get purge удалить старые ядра. Но во время очистки произошла ошибка, из-за которой папки остались. Он сказал, что папка не была пуста, поэтому она не может удалить. Чтобы освободить дисковое пространство, я могу вручную удалить те папки, которые я очистил?

1.1M    ./4.15.0-20-generic
60M     ./4.15.0-32-generic <-- I've purged this
60M     ./4.15.0-30-generic <-- and this
236M    ./4.15.0-33-generic <-- this is my current one

Могу ли я удалить некоторые из этих пакетов?

un  linux-headers-4.15.0-20-generic                       <none>                          <none>                          (no description available)
ii  linux-headers-4.15.0-30                               4.15.0-30.32                    all                             Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-30-generic                       4.15.0-30.32                    amd64                           Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii  linux-headers-4.15.0-32                               4.15.0-32.35                    all                             Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-32-generic                       4.15.0-32.35                    amd64                           Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii  linux-headers-4.15.0-33                               4.15.0-33.36                    all                             Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-33-generic                       4.15.0-33.36                    amd64                           Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
rc  linux-image-4.15.0-20-generic                         4.15.0-20.21                    amd64                           Signed kernel image generic
ii  linux-image-4.15.0-33-generic                         4.15.0-33.36                    amd64                           Signed kernel image generic
un  linux-image-unsigned-4.15.0-20-generic                <none>                          <none>                          (no description available)
un  linux-image-unsigned-4.15.0-33-generic                <none>                          <none>                          (no description available)
rc  linux-modules-4.15.0-20-generic                       4.15.0-20.21                    amd64                           Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii  linux-modules-4.15.0-30-generic                       4.15.0-30.32                    amd64                           Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii  linux-modules-4.15.0-32-generic                       4.15.0-32.35                    amd64                           Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii  linux-modules-4.15.0-33-generic                       4.15.0-33.36                    amd64                           Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
rc  linux-modules-extra-4.15.0-20-generic                 4.15.0-20.21                    amd64                           Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii  linux-modules-extra-4.15.0-33-generic

7 ответов

Хорошо, поэтому я решил просто рискнуть и вручную удалить папку под /lib/modules и не было проблем с перезагрузкой моего сервера.

Вы можете спокойно удалить версию пакетов, соответствующую той версии ядра, которую вы удалили. В вашем примере, поскольку вам не хватает соответствующих версий ядра для следующего, вы можете попросить менеджер пакетов также удалить:

      linux-headers-4.15.0-30
linux-headers-4.15.0-30-generic
linux-modules-4.15.0-30-generic
linux-headers-4.15.0-32
linux-headers-4.15.0-32-generic
linux-modules-4.15.0-32-generic

У меня было около 30 каталогов /lib/modules и модулей из ядер, которые больше не используются, и я удалил их все, освободив более 5 ГБ пространства. Я не знаю, почему они не удаляются, когда я удаляю ядра с помощью ukuu. Кажется, это еще не вызвало проблемы.

Я тоже попал в такое же затруднительное положение. Как уже упоминалось некоторыми другими, я также смог безопасно удалить папки в /lib/modules. Я считаю, что ошибка, с которой вы столкнулись, была связана с тем, что пакет не удалось установить из-за недостатка места на диске. В моем случае я попытался исправить пакеты с помощью apt-get -f install но столкнулся с No space left on deviceошибка. Мне удалось удалить старые ядра, используя apt-get autoremove -f. Это освободило довольно много места. Надеюсь, это кому-то поможет.

это метод, который я использовал

послеdpkg --list | grep linux-image

который вернулся...

rc linux-image-4.19.0-14-amd64

и

ls -l /lib/modules/

drwxr-xr-x 2 root root 4096 16 апреля 22:57 4.19.0-14-amd64

используя следующую команду

sudo dpkg --purge linux-image-4.19.0-14-amd64

удалил папку под/lib/modulesа также упаковать и установить файлы, расположенные в папке/var/lib/dpkg/info/

Правильный способ их удаления — удалить неиспользуемые пакеты и пакеты.

      # apt list --installed | grep -P "linux-(image|headers)-"
# apt remove linux-image-5.10.0-10-amd64
# apt remove linux-headers-5.10.0-10-amd64

Но если у вас установлены модули DKMS вручную, удалениеlinux-image-иlinux-headers-packages не очищает их, что приводит к появлению подпапок в/lib/modules/оставшийся.

Бегатьdkms statusчтобы вывести список установленных модулей DKMS (или запуститеls -l /var/lib/dkms/*/)

Удалите модули, указывающие на неустановленные ядра, используяdkms remove:

      # dkms status
acpi-call, 1.1.0, 5.10.0-10-amd64, x86_64: installed
acpi-call, 1.1.0, 5.10.0-13-amd64, x86_64: installed
acpi-call, 1.1.0, 5.10.0-14-amd64, x86_64: installed

# dkms remove acpi-call/1.1.0 -k 5.10.0-10-amd64

acpi_call.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.10.0-10-amd64/

# dkms remove acpi-call/1.1.0 -k 5.10.0-13-amd64

acpi_call.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.10.0-13-amd64/

# 

Я знаю, что это не Ubuntu, но в CentOS "текущая версия" ядра, я думаю, находится там, поэтому вы не можете удалить их все.

Также небезопасно вручную удалять "старые", если вы были в процессе установки нового, но транзакция не была успешной. Вы не будете точно знать, какой именно удалить.

yum autoremoveпохоже, не удаляет старые по какой-либо причине. Даже рекомендуется иметь две версии на случай, если вам понадобится старая: https://www.golinuxcloud.com/remove-old-kernels-rhel-centos-8/#Best_practices_to_remove_old_kernels

Вы можете вручную удалить пакеты для старых:

https://www.nixcraft.com/t/can-i-delete-lib-modules-directory-in-linux-safely/1934/2

Итак, главный урок - "удаляйте только старые ядра" (см. Ссылку выше, описывающую, как проверить) и "предпочитайте удалять их путем удаления их пакета", а не вручную уничтожать их каталоги.

Другие вопросы по тегам