Как я удаляю рабочее ядро командой только?

Я хочу установить рабочее ядро командной строкой.

Скажите, например, я установил пользовательское ядро, linux-image-4.0-1-xyz и я загрузился с этим ядром (когда я делаю uname -r, Я добираюсь выше версии ядра.

Теперь, я хочу удалить это ядро, не переключаясь на универсальное ядро.

Я попробовал apt purge -y linux-image-4.0-1-xyz и это работает, но я получаю a Package Configuration диалоговое окно, которое спрашивает

Do you want to abort removal now?

Существует 2 опции

<Yes> <No>

Как я могу выбрать <No> через командную строку?

2
задан 10 November 2018 в 00:07

2 ответа

Используйте клавишу TAB для перемещения селектора. Используйте ВХОДЯТ в выбор.

1
ответ дан 2 December 2019 в 03:30

Примечание посетителям: в то время как это возможно, это очень нецелесообразно для удаления рабочего ядра. Если то ядро будет единственным, установленным, и Вы перезагружаете или теряете питание после удаления или удаления его, то Ваша система будет незагрузочной, и необходимо будет, вероятно, переустановить. Режим Recovery не будет работать. Если это происходит, можно загрузиться от живой системы, чтобы спасти данные и возможно скопировать файлы ядра в правильные местоположения. Обычно нет никакой причины удалить рабочее ядро. Таким образом, Вы, вероятно, не должны следовать этому ответу :)


Вы заявили в комментариях, что Вы хотите избежать диалогового окна, которое появляется, когда Вы используете инструменты управления пакета для удаления рабочего ядра. Единственным путем я могу думать для достижения, это должно удалить все файлы, принадлежащие рабочему ядру.

Мы собираемся использовать locate найти файлы ядра. Сначала обновите его базу данных.

sudo updatedb

Если по некоторым причинам Вы не хотите удалять dpkg база данных записывает для ядра, выполненного эта команда вместо вышеупомянутого:

sudo updatedb --prunepaths=/var/lib/dpkg

Найдите рабочее ядро и его модули и т.д.:

locate -be $(uname -r)

Проверьте список. Удалить ВСЕ файлы, которые принадлежат ядру, даже много маленьких файлов в /usr/src, опустите -b флаг от locate. Когда у Вас есть список, Вы хотите, передаете результаты по каналу к xargs удалить файлы:

locate -be $(uname -r) -0 | xargs -0 sudo rm -r

Сделать xargs интерактивный, можно добавить -p флаг и это предложат Вам подтверждать, что Вы действительно хотите работать rm на каждом файле в списке. Если Вы опускаете -b от locate и добавьте -p кому: xargs, Вы будете подтверждать в течение долгого времени.

Не действительно необходимо использовать -0 флаги для получения разграниченного пустым указателем вывода, потому что все эти файлы будут иметь нормальные имена, если Вы или кто-то еще не переделали их. Но это - хорошая практика для использования разграничивания пустого указателя с xargs, потому что это делает ошибки, если какое-либо имя файла имеет пространство.

Для предотвращения GRUB, пытающегося загружаться или дающий Вам опция начальной загрузки несуществующего ядра, обновите конфигурацию:

sudo update-grub

Я просто протестировал это, и прямо сейчас, я ввожу это от системы, в которой я удалил рабочее ядро таким образом (я загрузился от более старого ядра Ubuntu, чтобы сделать это, потому что я обычно использую исправленное ядро это dpkg не знает о, и я не хочу удалять его и компилировать его снова).

Ядро находится в RAM. Это загружается в RAM во время начальной загрузки, таким образом, этому не нужны его файлы прямо сейчас. Однако я теперь собираюсь переустановить ядро с помощью этих команд:

sudo apt update
sudo apt install --reinstall linux-image-$(uname -r) \
                             linux-modules-extra-$(uname -r) \
                             linux-headers-$(uname -r) \
                             linux-modules-$(uname -r)

Так как Вы, кажется, интересуетесь неинтерактивным процессом, я упомяну, что можно использовать apt-get в предпочтении к apt если Вы хотите получить вывод в файл для более позднего использования.

1
ответ дан 2 December 2019 в 03:30

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

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