Эта проблема началась, когда я сегодня устанавливал обновления Ubuntu, нужно было обновить 125 пакетов. я побежал судо подходящее обновление
с последующим список подходящих --обновляемый
и судо подходящее обновление
на своем ноутбуке, а затем переключился на настольный компьютер, чтобы продолжить другую работу. Я заметил, что экран ноутбука потемнел, и когда я посмотрел, в левом верхнем углу мигал курсор, и больше ничего на экране. Я попытался переключиться на другой виртуальный терминал, но не получил никакого ответа. Я кратко нажал кнопку питания, чтобы посмотреть, будет ли какая-либо реакция, и ноутбук выключился. Когда я перезагрузил ноутбук, он вернулся к тому же экрану с мигающим курсором. Однако на этот раз мне удалось открыть виртуальный терминал, нажав Ctrl-Alt-F1
и я вошел в систему. Я просмотрел список пакетов, которые были установлены с парнем из службы технической поддержки, и он определил проблему как плохое обновление видеодрайвера, начиная с nvidia-драйвер-460
к nvidia-драйвер-470
, и сказал, что мы должны установить nvidia-драйвер-495
.
Когда я попытался установить nvidia-драйвер-495
пакет, я получил сообщение об ошибке, говорящее дпкг
был прерван, и мне нужно было бежать sudo dpkg --configure -a
который выглядел так, как будто он установил все остальное, что ожидалось из списка 125 пакетов. Затем я попытался установить nvidia-драйвер-495
снова, но это сказало, что он отсутствует nvidia-драйвер-510
как зависимость. потом я побежал sudo ап установить
установить nvidia-драйвер-510
и все это зависимости. Я проверил терминал GUI на Ctrl-Alt-F7
и у него все еще был только мигающий курсор. потом я побежал sudo apt установить nvidia-драйвер-495
который не вызывал никаких ошибок, но у меня все еще был только мигающий курсор на терминале с графическим интерфейсом.
Я перезагрузил ноутбук и получил
ошибка: не могу найти команду `hwmatch'
ошибка: не удается выделить initrd.
Нажмите любую клавишу чтобы продолжить...
с последующей паникой ядра. Я перезагрузил ноутбук и получил только не могу выделить initrd
сообщение, за которым снова следует паника ядра. Когда я снова перезапустил ноутбук, мне было предложено меню GRUB, и я смог загрузить машину, используя предыдущее ядро, 5.13.0-28
.
После некоторых исследований я побежал sudo update-initramfs -c -k 5.13.0-30-общий
и перезагрузил машину - и была та же картина сбоя, наконец, загрузившись обратно в -28
ядро для продолжения. Я еще немного поковырялся, а потом побежал обновление-личность
, перезагрузил - и снова прошел тот же цикл.
Я попытался удалить -30
файлы ядра из /ботинок
, Бег судо подходящее обновление
в котором говорилось, что все пакеты обновлены, работают sudo apt удалить
чтобы удалить все -30
файлы, работает обновление-личность
снова - и удачное обновление
продолжал настаивать на том, что все пакеты обновлены: как будто он знал, что установил новую версию ядра, но затем не заметил, когда она была удалена. Я перезагрузил ноутбук, что было успешно, так как он запускал ранее работавший -28
ядро - и удачное обновление
до сих пор не имел ни малейшего представления об обновлении ядра. я побежал sudo apt-получить удалить --purge
со списком -30
файлы, которые очищали только файлы конфигурации, поскольку сами пакеты уже были удалены - и удачное обновление
оставался в блаженном неведении о новом ядре.
я побежал список подходящих --установлен | grep linux-образ
в котором перечислены два установленных ядра, -27
и -28
. я побежал apt-cache поиск linux-image|grep 13|общий grep
который дал мне краткий список ядер, которые мог быть установлен. потом я побежал sudo apt-get install linux-headers-5.13.0-30-generic linux-hwe-5.13-headers-5.13.0-30 linux-image-5.13.0-30-generic linux-modules-5.13.0-30- общие linux-modules-extra-5.13.0-30-generic
чтобы переустановить все необходимые пакеты. Часть продукции была
/etc/kernel/header_postinst.d/dkms:
* dkms: запущена служба автоматической установки для ядра 5.13.0-30-generic
Подготовка ядра не требуется для этого ядра. Пропуская...
что заставило меня задуматься, был ли пройден необходимый шаг. Все остальное выглядело нормально, поэтому я перезагрузил машину и вернулся к
ошибка: не могу найти команду `hwmatch'
ошибка: не удается выделить initrd.
и ядро паникует. В конце концов я смог разобраться с пропавшим без вести hwmatch
проблема через еще пару перезагрузок по совету от https://www.linux.org/threads/error-cant-find-command-hwmatch-during-boot.32618/ - копирование /usr/lib/grub/i386-pc/hwmatch.mod
в /загрузка/efi/efi/жратва
каталог, который я должен был создать.
Одна из вещей, которую я заметил, это -30
initrd
изображение на 50+% больше, чем другие:
-rw-r--r-- 1 root root 99M 2 марта 16:41 initrd.img-5.13.0-27-generic
-rw-r--r-- 1 root root 99M 2 марта 16:57 initrd.img-5.13.0-28-generic
-rw-r--r-- 1 root root 156M 2 марта 21:41 initrd.img-5.13.0-30-generic
Это может быть частью проблемы, или это может быть следствием проблемы, я не уверен.
После запуска sudo apt-получить удалить --purge
чтобы удалить все -30
пакеты снова, я побежал sudo find / -xdev -name "*5.13.0-30*"
который только вернулся
/var/cache/apt/archives/linux-headers-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-modules-extra-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-image-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-hwe-5.13-headers-5.13.0-30_5.13.0-30.33~20.04.1_all.deb
/var/cache/apt/archives/linux-modules-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
Я не думал, что проблема в этих файлах, но после безуспешных попыток найти другую причину сообщения «Подготовка ядра не нужна для этого ядра» я использовал найти
чтобы удалить их. Когда я побежал sudo apt-получить установку
Однако снова я получил то же сообщение «Подготовка ядра не нужна» - и перезагрузка вернула меня к ошибка: не могу выделить initrd
проблема.
Я сейчас удалил -30
ядро снова, поэтому мне не нужно бороться с ноутбуком, когда я хочу его перезагрузить, но я бы например, установить новое ядро, в котором, я уверен, есть некоторые исправления безопасности.
Что мне нужно сделать, чтобы Ubuntu забыл, что -30
ядро когда-либо было установлено, так что я могу успешно установить его в загрузочное состояние?