Недавние обновления ядра Ubuntu 16.04 (4.4.0-89 и -91) провалились на моем ноутбуке. К счастью, предыдущая рабочая версия все еще установлена (4.4.0-57). На данный момент у меня есть Grub, настроенный на показ меню, и я вручную выбираю -57 при загрузке, но это кажется хрупким, что может привести к поломке в будущем sudo apt upgrade
.
Я думаю, что я хочу:
- Удалить -89 и -91, так как они не приносят мне пользы.
- Чтобы установить -57 по умолчанию для Grub, таким образом, что это будет сохраняться при обновлении.
- Чтобы убедиться, что -57 остается установленным, даже если я установлю позднее обновление ядра
- Чтобы можно было легко попробовать последующие обновления ядра, но в случае сбоя вернитесь к -57. Моя главная задача - автоматически удалить -57.
- Если я обнаружу работающее более позднее обновление, можно легко вернуться, чтобы отменить все это и вернуться к следующим обновлениям ядра.
Попытка удалить -91 с sudo apt remove linux-image-4.4.0-91-generic
требует от меня удаления linux-generic и linux-headers-generic. Это кажется плохим, поэтому я не пробовал.
Я могу найти множество вопросов об общей проблеме, но ни один из них, похоже, не отвечает всем моим целям, и большинство из них достаточно взрослые, поэтому я не думаю, что они применяются больше.
Какой лучший способ сделать это?
Приложение : Это было помечено как дубликат Как предотвратить обновление определенного пакета? , Этот ответ может касаться части моего вопроса, но не касается общей картины.
В общем, проблема в том, что ядро обрабатывается необычным образом. Он устанавливается через linux-generic, который является ничем иным, как зависимостью от linux-image-generic и linux-image-headers. Эти, в свою очередь, являются только зависимостями от linux-linux-image-VERSION-generic и headers-VERSION-generic, пакетов, заслуживающих внимания для вставки номера версии в имя пакета (предположительно, для упрощения установки нескольких параллельно).
В этом ответе конкретно не рассматриваются:
- Не рассматривается как убрать -89 и -91.
- Не рассматривается, как сделать -57 по умолчанию для Grub, даже если я устанавливаю более поздние обновления.
- Не рассматривается, как гарантировать, что -57 остается установленным, даже если я устанавливаю более поздние обновления. Даже если ответ будет содержать один или несколько пакетов, учитывая несколько пакетов, какие из них я бы держал? Если это вопрос поддержки linux-generic, как мне сначала понизить его?
Ответы:
Удалить последнее ядро с помощью
Это приведет к удалению мета - пакетов
linux-generic
,linux-image-generic
иlinux-headers-generic
. Ядра никогда не будут обновлены.Чтобы вернуть его, вы можете запустить
Это установит последнее ядро, а ядра получат обновления.
linux-generic
это метапакет Он пуст, но зависит от двух других метапакетов:linux-image-generic
иlinux-headers-generic
.Последние два указывают на последний образ ядра и заголовки.
Если вы удалите метапакеты, из Linux ничего не будет удалено, но образ ядра и заголовки не будут получать обновления. Вы всегда можете установить их позже. Они будут тянуть последние "настоящие" пакеты ядра.
Поэтому решение состоит в том, чтобы вручную удалить ненужные пакеты ядра, а также метапакеты.
источник
Хотя решение Pilot6 может быть лучшим решением, вы можете предпринять менее радикальные меры.
Я бы лично удалил ненужные ядра из центра программного обеспечения, а затем отложил эти пакеты - см. Как предотвратить обновление определенного пакета?
Это тривиальное изменение, и вы можете легко изменить или отменить изменение.
источник
sudo apt-mark hold linux-image-generic linux-headers-generic
сделаю