Могу ли я удалить старый vmlinuz в / boot вручную? [дубликат]

На этот вопрос уже есть ответ:

Мой / boot заполнен. apt-get autoremove autoclean не работает. Я решил удалить старый образ linux * вручную. Есть много файлов, например: config VERSION, vmlinuz VERSION, initrd.img * VERSION ...

можно ли их удалить вручную?

VERSION - это старая версия (некоторые из них датированы 2012 годом) !).

1
задан 6 May 2017 в 15:47

1 ответ

Возможно удалить примерно любой файл вручную, включая ядра и начальные псевдодиски (initrds); однако, когда файл был установлен пакетом (как они были), удаление их вручную оставляет систему пакета в непоследовательном состоянии. Таким образом удаление файлов вручную не рекомендуется. У меня есть три предложения для того, как продолжить двигаться.


Подход 1:

Мой предпочтительный вариант - это:

  1. Ввести uname -r обнаружить, какое ядро Вы в настоящее время выполняете. Например, один из моих системных возвратов 4.8.0-51-generic.
  2. Ввести ls /boot/vml* видеть все Ваши установленные ядра.
  3. Выберите ядро из перечисленных, который не является тем, который Вы в настоящее время используете, и это не самое старое (который является, вероятно, "основой" ряда ядра). Ядро, которое прибывает только "перед" тем, который Вы выполняете, является хорошим кандидатом. Это могло бы быть vmlinuz-4.8.0-46-generic, например.
  4. Ввести dpkg -S /boot/vmlinuz-4.8.0-46-generic, изменение версии ядра по мере необходимости. (Обратите внимание, что это - верхний регистр -S в команде.) Это должно показать имя пакета, связанное с тем ядром. В этом примере это linux-image-4.8.0-46-generic. Обратите внимание, что Вы не должны передавать ядро с именем, которое заканчивается в .efi.signed кому: dpkg -S; эти ядра установлены по-другому, который не будет работать с этой командой.
  5. Ввести 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 (удаление трех пакетов, а не одного).
  6. С любой удачей предыдущая команда будет работать и разрешать достаточно пространства для sudo apt-get autoremove работать.

Подход 2:

Если это не работает, то я рекомендую вручную удалить .efi.signed версия ядра, которое Вы не используете, если она присутствует. Эти файлы не установлены непосредственно; они создаются путем слияния стандартного изображения ядра с маленьким файлом подписи, установленным от другого пакета. Таким образом удаление их не нарушит систему пакета таким же образом, что вручную удаление файла ядра несо знаком будет. Обратите внимание, однако, что, если Защищенная загрузка активна на Вашем компьютере, или даже если это не всего лишь GRUB, настроен для начальной загрузки через .efi.signed версия ядра, удаляя этот файл лишит возможности загружать то ядро. Таким образом важно, чтобы Вы не удалили .efi.signed версия ядра Вы в настоящее время используете.


Подход 3:

Другой подход должен временно переместить Ваш /boot каталог прочь его отдельного раздела и на регулярный корень (/) файловая система. Обратите внимание, что, хотя я сделал подобные вещи по другим причинам, я не попробовал эту точную процедуру по Вашей точной причине; но это должно работать. Обратите внимание также, что это довольно опасно; ошибка в неправильной точке могла представить Вашу незагрузочную систему! Если Вы готовы рискнуть, процедура:

  1. Ввести sudo mkdir /boot2 создать /boot2 каталог, который будет временно содержать Ваши ядра.
  2. Ввести sudo umount /boot/efi. Эта команда перестанет работать на основанных на BIOS компьютерах, но необходима если Ваши загрузки компьютера через EFI.
  3. Ввести sudo cp -a /boot/* /boot2/ скопировать все с /boot кому: /boot2.
  4. Ввести sudo umount /boot размонтироваться /boot каталог.
  5. Ввести sudo rm -rf /boot. Это удаляет старое /boot точка монтирования и любые файлы, которые, возможно, закончились случайно помещенный "под" ним.
  6. Ввести sudo mv /boot2 /boot. Это переименовывает Вашу копию к исходному местоположению, что касается Linux.
  7. Возобновите Ваш sudo apt-get autoremove операция. Это должно успешно выполниться.
  8. Ввести sudo mv /boot /boot2 перемещать обновленную копию Ваших ядер из пути.
  9. Ввести sudo mkdir /boot создать новую точку монтирования для Вашего /boot раздел.
  10. Ввести sudo mount /boot восстановить оригинал /boot раздел. Обратите внимание, что это все еще будет слишком полно.
  11. Ввести sudo rm -rf /boot/* удалить содержание оригинала /boot раздел.
  12. Ввести sudo cp -a /boot2/* /boot/ скопировать Ваш измененный /boot каталог к /boot раздел.
  13. Перезагрузка, чтобы быть уверенным все работает.
  14. Ввести sudo rm -rf /boot2 удалить временные файлы.

Ошибка (или мной или Вами) могла создать серьезные проблемы, включая полную неспособность загрузить систему. Таким образом этот подход является чем-то вроде последнего средства один.


Продвижение

Обязательно, чтобы Вы сделали периодическое sudo apt-get autoremove сохранять /boot раздел от переполнения. Лично, я делаю этот почти каждый раз, когда я обновляю свои пакеты, и особенно если я замечаю, что новое ядро было установлено. Обратите внимание, что существует несколько официальных ошибок, связанных с этой проблемой:

Первая из тех ошибок может быть исправлена для существующих систем, но по различным причинам даже выпущенный чиновник фиксирует, не является на 100% эффективным. Вторая ошибка о выборе, сделанном во время установки системы, таким образом, существующие системы продолжают страдать от также маленького /boot продвижение раздела. Единственный способ устранить ту проблему состоит в том, чтобы изменить размер Ваших разделов для увеличения размера /boot. Лично, я считаю 500 мебибайт за минимум разумным размером для /boot в эти дни.

8
ответ дан 3 December 2019 в 06:22

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

Похожие вопросы: