На этот вопрос уже есть ответ:
Мой / boot заполнен. apt-get autoremove autoclean не работает. Я решил удалить старый образ linux * вручную. Есть много файлов, например: config VERSION, vmlinuz VERSION, initrd.img * VERSION ...
можно ли их удалить вручную?
VERSION - это старая версия (некоторые из них датированы 2012 годом) !).
Возможно удалить примерно любой файл вручную, включая ядра и начальные псевдодиски (initrds); однако, когда файл был установлен пакетом (как они были), удаление их вручную оставляет систему пакета в непоследовательном состоянии. Таким образом удаление файлов вручную не рекомендуется. У меня есть три предложения для того, как продолжить двигаться.
Мой предпочтительный вариант - это:
uname -r
обнаружить, какое ядро Вы в настоящее время выполняете. Например, один из моих системных возвратов 4.8.0-51-generic
.ls /boot/vml*
видеть все Ваши установленные ядра.vmlinuz-4.8.0-46-generic
, например.dpkg -S /boot/vmlinuz-4.8.0-46-generic
, изменение версии ядра по мере необходимости. (Обратите внимание, что это - верхний регистр -S
в команде.) Это должно показать имя пакета, связанное с тем ядром. В этом примере это linux-image-4.8.0-46-generic
. Обратите внимание, что Вы не должны передавать ядро с именем, которое заканчивается в .efi.signed
кому: dpkg -S
; эти ядра установлены по-другому, который не будет работать с этой командой.sudo dpkg -P linux-image-4.8.0-46-generic
(изменение номера версии ядра, конечно). Это говорит системе удалять пакет. Это может, вероятно, приводить к жалобе на поврежденные зависимости. В этом случае необходимо добавить пакет (пакеты), которого это требует как являющийся зависящим от того, которое Вы сказали для удаления. В моем случае я должен был сделать команду sudo dpkg -P linux-image-4.8.0-46-generic linux-signed-image-4.8.0-46-generic linux-image-extra-4.8.0-46-generic
(удаление трех пакетов, а не одного).sudo apt-get autoremove
работать.Если это не работает, то я рекомендую вручную удалить .efi.signed
версия ядра, которое Вы не используете, если она присутствует. Эти файлы не установлены непосредственно; они создаются путем слияния стандартного изображения ядра с маленьким файлом подписи, установленным от другого пакета. Таким образом удаление их не нарушит систему пакета таким же образом, что вручную удаление файла ядра несо знаком будет. Обратите внимание, однако, что, если Защищенная загрузка активна на Вашем компьютере, или даже если это не всего лишь GRUB, настроен для начальной загрузки через .efi.signed
версия ядра, удаляя этот файл лишит возможности загружать то ядро. Таким образом важно, чтобы Вы не удалили .efi.signed
версия ядра Вы в настоящее время используете.
Другой подход должен временно переместить Ваш /boot
каталог прочь его отдельного раздела и на регулярный корень (/
) файловая система. Обратите внимание, что, хотя я сделал подобные вещи по другим причинам, я не попробовал эту точную процедуру по Вашей точной причине; но это должно работать. Обратите внимание также, что это довольно опасно; ошибка в неправильной точке могла представить Вашу незагрузочную систему! Если Вы готовы рискнуть, процедура:
sudo mkdir /boot2
создать /boot2
каталог, который будет временно содержать Ваши ядра.sudo umount /boot/efi
. Эта команда перестанет работать на основанных на BIOS компьютерах, но необходима если Ваши загрузки компьютера через EFI.sudo cp -a /boot/* /boot2/
скопировать все с /boot
кому: /boot2
.sudo umount /boot
размонтироваться /boot
каталог.sudo rm -rf /boot
. Это удаляет старое /boot
точка монтирования и любые файлы, которые, возможно, закончились случайно помещенный "под" ним.sudo mv /boot2 /boot
. Это переименовывает Вашу копию к исходному местоположению, что касается Linux.sudo apt-get autoremove
операция. Это должно успешно выполниться.sudo mv /boot /boot2
перемещать обновленную копию Ваших ядер из пути.sudo mkdir /boot
создать новую точку монтирования для Вашего /boot
раздел.sudo mount /boot
восстановить оригинал /boot
раздел. Обратите внимание, что это все еще будет слишком полно.sudo rm -rf /boot/*
удалить содержание оригинала /boot
раздел.sudo cp -a /boot2/* /boot/
скопировать Ваш измененный /boot
каталог к /boot
раздел.sudo rm -rf /boot2
удалить временные файлы.Ошибка (или мной или Вами) могла создать серьезные проблемы, включая полную неспособность загрузить систему. Таким образом этот подход является чем-то вроде последнего средства один.
Обязательно, чтобы Вы сделали периодическое sudo apt-get autoremove
сохранять /boot
раздел от переполнения. Лично, я делаю этот почти каждый раз, когда я обновляю свои пакеты, и особенно если я замечаю, что новое ядро было установлено. Обратите внимание, что существует несколько официальных ошибок, связанных с этой проблемой:
Первая из тех ошибок может быть исправлена для существующих систем, но по различным причинам даже выпущенный чиновник фиксирует, не является на 100% эффективным. Вторая ошибка о выборе, сделанном во время установки системы, таким образом, существующие системы продолжают страдать от также маленького /boot
продвижение раздела. Единственный способ устранить ту проблему состоит в том, чтобы изменить размер Ваших разделов для увеличения размера /boot
. Лично, я считаю 500 мебибайт за минимум разумным размером для /boot
в эти дни.