Как можно удалить старую версию ядра из раздела /boot?
Я не очень разбираюсь в Linux, и у меня есть следующая проблема, связанная с тем, что мой /boot раздел кажется заполненным, и, кажется, это вызывает проблему при попытке установить программу.
Я пытаюсь подробно объяснить свои сомнения, потому что я не настолько увлечен разработкой системы (я разработчик программного обеспечения).
1) Выполнение статистики lsblk перечисляет информацию обо всех доступных или указанных блочных устройствах.
Эмпирически я думаю, что он должен показать список всех разделов / подключенных дисков или что-то вроде этого. Что именно означает термин " устройства"?
Поэтому, если я выполню эту проверку в моей системе Ubuntu, я получу:
root@MyServer-VPS:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 476M 0 part /boot
├─sda2 8:2 0 1K 0 part
├─sda3 8:3 0 10G 0 part
│ └─vg-lv_root 252:0 0 18.6G 0 lvm /
└─sda5 8:5 0 9.5G 0 part
├─vg-lv_root 252:0 0 18.6G 0 lvm /
└─vg-lv_swap 252:1 0 952M 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
Так в чем же разница между диском, частью (это должен быть раздел родительского диска), lvm и rom?
Определенный раздел - загрузочный, этот:
sda1 8:1 0 476M 0 part /boot
это раздел диска sda.
Из того, что я знаю, он должен содержать загруженные версии ядра Linux. Это?
Хорошо, точка монтирования - /boot, так что я думаю, что это каталог /boot в моей системе (не так ли?), Это содержимое:
root@MyServer-VPS:/boot# ls
abi-4.4.0-21-generic config-4.4.0-21-generic grub System.map-4.4.0-21-generic vmlinuz-4.4.0-21-generic
abi-4.4.0-31-generic config-4.4.0-31-generic initrd.img-4.4.0-21-generic System.map-4.4.0-31-generic vmlinuz-4.4.0-31-generic
abi-4.4.0-34-generic config-4.4.0-34-generic initrd.img-4.4.0-31-generic System.map-4.4.0-34-generic vmlinuz-4.4.0-34-generic
abi-4.4.0-38-generic config-4.4.0-38-generic initrd.img-4.4.0-34-generic System.map-4.4.0-38-generic vmlinuz-4.4.0-38-generic
abi-4.4.0-42-generic config-4.4.0-42-generic initrd.img-4.4.0-38-generic System.map-4.4.0-42-generic vmlinuz-4.4.0-42-generic
abi-4.4.0-45-generic config-4.4.0-45-generic initrd.img-4.4.0-42-generic System.map-4.4.0-45-generic vmlinuz-4.4.0-45-generic
abi-4.4.0-47-generic config-4.4.0-47-generic initrd.img-4.4.0-45-generic System.map-4.4.0-47-generic vmlinuz-4.4.0-47-generic
abi-4.4.0-51-generic config-4.4.0-51-generic initrd.img-4.4.0-47-generic System.map-4.4.0-51-generic vmlinuz-4.4.0-51-generic
abi-4.4.0-53-generic config-4.4.0-53-generic initrd.img-4.4.0-51-generic System.map-4.4.0-53-generic vmlinuz-4.4.0-53-generic
abi-4.4.0-57-generic config-4.4.0-57-generic initrd.img-4.4.0-53-generic System.map-4.4.0-57-generic vmlinuz-4.4.0-57-generic
abi-4.4.0-59-generic config-4.4.0-59-generic lost+found System.map-4.4.0-59-generic vmlinuz-4.4.0-59-generic
Так что же представляет собой это содержимое? В этой системе загружаются разные версии ядра Linux?
В чем разница между файлами abi-, config-, initrd.img-, System.map- и vmlinuz-4?
Как я могу определить используемую версию ядра?
2) Выполняя оценку df -h, я получаю следующий вывод:
root@MyServer-VPS:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 477M 0 477M 0% /dev
tmpfs 100M 16M 84M 16% /run
/dev/mapper/vg-lv_root 19G 12G 6.3G 64% /
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 461M 458M 0 100% /boot
tmpfs 100M 0 100M 0% /run/user/0
В частности у меня есть что:
/dev/sda1 461M 458M 0 100% /boot
Значит, мой раздел /boot полностью заполнен?
Моя проблема: могу ли я решительно удалить все старые версии ядра (не использованные), чтобы освободить место в /boot?
Как мне это сделать?
1 ответ
Вы можете использовать команду:
uname -a
чтобы увидеть, какое ядро вы используете в данный момент. Тогда вы можете использовать команду:
dpkg -l | grep linux-image
чтобы увидеть, какие старые ядра вы можете безопасно удалить.
Поскольку удаление старых ядер может по-прежнему включать наличие свободного места в / boot (да, ситуация catch22), вы можете обойти это, используя знак ">", чтобы сначала обнулить старые ядра, которые, как вы уверены, не будут использовать их.
Например:
sudo bash
> /boot/vmlinuz-4.4.0-59-generic
> /boot/vmlinuz-4.4.0-57-generic
exit
После освобождения места в / boot становится проще удалять старые ядра с помощью команд apt-get или dpkg.
Я успешно использовал этот метод в прошлом, потому что удаление ядра из / boot / с помощью команды rm, вероятно, приведет к проблемам с apt-get / dpkg, если вы захотите использовать "apt-get autoremove --purge" команда.