Могу ли я удалить папки в /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
Итак, главный урок - "удаляйте только старые ядра" (см. Ссылку выше, описывающую, как проверить) и "предпочитайте удалять их путем удаления их пакета", а не вручную уничтожать их каталоги.