Новые обновления ядра больше не загружаются.

Вопрос или проблема

Я использую Kubuntu на своем XPS13 в течение нескольких лет без проблем, но после обновления ядра до 5.15.0-60 он больше не загружался. Сегодня я обновился до ядра 5.15.0-67, и он все еще не загружается… Я могу загрузиться только с предыдущей версии 5.15.0-58.

Мой компьютер – это Dell XPS13 9380, Kubuntu 22.04. При загрузке с новых ядер, после выбора grub, я получаю черный экран.

journalctl -b -1 показывает только загрузки на 5.15.0-58: ни одна попытка загрузки на 5.15.0-60 или 5.15.0-67 не отображается с этой командой.

Я должен сказать, что эти проблемы начались вскоре после того, как у меня возникла проблема с памятью: мой раздел / был заполнен, и после перезагрузки для установки обновлений я получил сообщение «erreur mémoire épuisée», что на французском означает «ошибка памяти исчерпана» или что-то в этом роде. Поэтому мне пришлось запустить live USB, освободить немного места и выполнить «восстановление загрузки», которое прошло успешно, но оно установило Ubuntu 20.04, обнаруженную на другом разделе, как по умолчанию (странно). В любом случае, я все еще могу запустить 22.04, но только с ядром 5.15.0-58.

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

Спасибо за любые советы, чтобы выяснить, что мешает загрузке новых ядер!
Марк

В конце концов, мне удалось справиться с этой проблемой, которая была (насколько я понимаю) больше проблемой grub, чем проблемой ядра.

Я попытался переустановить grub (update-grub и grub-install), и затем не смог больше загрузиться в kubuntu 22.04, с этим надоедливым сообщением вроде «память исчерпана», на любом ядре…

Я снова запустил восстановление загрузки на live kubuntu и нашел опцию для запуска kubuntu 22 по умолчанию. После восстановления загрузки kubuntu 22 с последним ядром (5.15.0-67) работает без проблем.

Удачи!
Марк

У меня была та же проблема после обновления до ядра 5.15.0-67, я игнорировал это некоторое время, потому что все еще мог загружаться с 5.15.0-60, но когда я получил обновление ядра, которое установило 5.15.0-69, по какой-то причине 5.15.0-60 тоже не смогло загрузиться, так что мой ноутбук был заблокирован, и мне пришлось исправлять это с помощью флешки Ubuntu Live. К сожалению, восстановление загрузки не сработало для меня, когда я запустил его с флешки Ubuntu Live, у него не было никаких «предлагаемых исправлений».

Скриншот проблемы

Из чтения этого комментария в трекере ошибок я полагаю, что это объяснение для ошибки «недостаточно памяти»:

Grub пытается считать initrd в область памяти, которая слишком мала.

Эта проблема вызвана сочетанием нескольких факторов:

  • Grub не выделяет достаточно места для initrd в памяти и не в том месте,
  • Initrd увеличились из-за дополнительных модулей и прошивок. Это особенно актуально для проприетарного драйвера nvidia.
  • Типичные разрешения экрана и их сопутствующие буферы в памяти увеличились.

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

Решение было найдено путём собирания нескольких других ответов на Stack Overflow, которые указаны на каждом шаге.

Настройка системы

У меня есть ноутбук Dell XPS 13 9380, работающий на Ubuntu 22.04.2 (обновленный с 20.04, который был изначально установлен в 2020 году).

Шаги предполагают, что ваша настройка похожа на мою, а именно:

  • Ваш жесткий диск подключен через порт NVM Express, и поэтому разделы называются nvme0n1p1, nvme0n1p2, nvme0n1p3
  • Вы используете шифрование диска LUKS

Шаги для исправления

Смонтировать зашифрованный раздел LUKS

sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

Смотрите Подключение зашифрованного раздела LUKS с Live CD.

Смонтировать объекты в /mnt и chroot

Это необходимо как подготовительный шаг, чтобы изменения могли быть применены к системе на диске, а не к системе Live загрузки.

sudo mount /dev/ubuntu-vg/root /mnt/
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount /dev/nvme0n1p2 /mnt/boot
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo chroot /mnt

Смотрите

Измените initramfs.conf и обновите initramfs/grub

Отредактируйте /etc/initramfs-tools/initramfs.conf и установите эти 2 параметра (или только 1 из 2, см. ниже для получения более подробной информации):

MODULES=dep
COMPRESS=xz

Затем выполните следующее:

sudo update-initramfs -c -k all
sudo update-grub

Какое изменение в initramfs.conf на самом деле исправляет проблему?

На трекере ошибок Ubuntu, #1970402, репортер упоминает:

После обновления до 22.04 система не может загрузиться из-за ошибки «не хватает памяти» при загрузке начального ramdisk. Я смог исправить это, отредактировав /etc/initramfs-tools/initramfs.conf и изменив конфигурацию на:

MODULES=dep
COMPRESS=xz
RUNSIZE=15%

Не уверен, что именно помогло, но я могу протестировать это, если нужно.

Ну, я протестировал, и вот результаты в моем случае:

  • Установка MODULES=dep (вместо значения по умолчанию MODULES=most) исправляет проблему
  • Установка COMPRESS=xz (вместо значения по умолчанию COMPRESS=zstd) исправляет проблему
  • Установка как MODULES=dep, так и COMPRESS=xz исправляет проблему
  • Установка RUNSIZE=20% (вместо значения по умолчанию RUNSIZE=10%) не исправляет проблему

После 20 лет Linux все еще в бета-режиме с 600 проектами бета-версий в работе и армией очевидных гиков… восхваляющих этот бета-бардак… я потерял 3 ГБ места на SSD, не в первый раз, и не мог понять, куда, потому что он показывал отсутствующее место с помощью df, но не с помощью Менеджера файлов… ГЛАВНАЯ ОШИБКА, КОТОРАЯ СУЩЕСТВУЕТ УЖЕ ГОДАМИ… я пошел удалить некоторые вещи, такие как nodejs и другие, которые я хочу использовать.. Это подтвердило графический интерфейс. Не знаю, почему он позволил мне удалить то, что нужно… Не знаю, почему нужно что-либо из того, что я удалил… Обновился до новой версии с plymouth из CLI… Что является хлопотом… затем это не загрузится. Полное обновление.. ошибки вроде linux-logo.plymouth не найдено… переустановил то, что у меня есть, места хватило. Дошел до того, что теперь на фоне фиолетового цвета мигает курсор.. я программирую на 6 языках и боролся с Linux в течение 4 лет.. сообщество могло бы выбрать kolibri OS или одну из этих других операционных систем с графическим интерфейсом… linux по-прежнему ощущается как Windows 3.1 и DOS… n я был там… гики не имеют смысла… перестаньте восхвалять это бета-программное обеспечение… ощущается почти как белая привилегия или что-то в этом роде… это бета… после 20 лет

Ответ или решение

Проблема с загрузкой новых обновлений ядра в Kubuntu: Подробный анализ и решение

Введение

Если вы сталкиваетесь с проблемой загрузки новой версии ядра в Kubuntu, это может быть изнуряющим процессом, особенно если вы работающим на конфигурациях вроде Dell XPS 13 9380. В вашем случае, обновления до версий ядра 5.15.0-60 и 5.15.0-67 не завершались успешно, и единственным рабочим вариантом оставалось ядро 5.15.0-58. Данная статья предоставит подробный анализ этой проблемы и предложит решения, опираясь на опыт других пользователей, а также на доступные ресурсы по устранению неполадок.

Описание проблемы

На основании вашего описания, проблема, скорее всего, связана не только с новыми версиями ядра, но и с проблемами настройки загрузчика GRUB. Первая проблема возникла после того, как вы столкнулись с недостатком памяти на разделе /, что потребовало последующего запуска Live USB для исправления ошибок. Неправильная настройка загрузчика GRUB могла привести к неэффективной загрузке новых версий ядра.

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

Новости и обновления

Шаги для диагностики и решения

  1. Проверка конфигурации GRUB.

    • Запустите систему с Live USB и доступ к вашему установленному системному разделу через терминал.
    • Проверьте конфигурацию GRUB:
      sudo update-grub
  2. Переустановка GRUB.

    • Используйте следующую команду для переустановки загрузчика:
      sudo grub-install /dev/nvme0n1
    • Это гарантирует, что загрузчик будет правильно настроен.
  3. Используйте Boot-Repair.

    • Запустите Boot-Repair из Live USB и выберите опцию для автоматического исправления.
    • Если опция "предложенные исправления" отсутствует, попробуйте запустить Boot-Repair в режиме расширенной диагностики.
  4. Проблемы с памятью GRUB.

    • Из-за ошибок при загрузке новых ядер, возможно, проблема заключается в недостаточном выделении памяти для загрузки initrd. Это может быть связано с увеличением размера initrd из-за добавленных модулей, например, драйвера Nvidia.
    • Рекомендуется внести изменения в файл /etc/initramfs-tools/initramfs.conf:
      MODULES=dep
      COMPRESS=xz
    • Затем обновите initramfs и GRUB:
      sudo update-initramfs -u
      sudo update-grub
  5. Перемещение к chroot для исправления.

    • Если вы по-прежнему не можете загрузиться, выполните серии команд, чтобы монтировать корневой раздел и изменить ядро через chroot:
      sudo mount /dev/nvme0n1pX /mnt
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /proc /mnt/proc
      sudo mount --bind /sys /mnt/sys
      sudo chroot /mnt

Заключение

Проблемы загрузки новых версий ядра в Kubuntu могут быть сложными, особенно с учетом проблем конфигурации GRUB и ограничений в выделении памяти. Применяя описанные выше шаги, вы можете восстановить загрузку системы и устранить сбои.

Рекомендации по предотвращению в будущем

  • Регулярно проверяйте состояние дискового пространства, чтобы избежать проблем с памятью.
  • Проводите периодическое обслуживание GRUB, особенно после установки обновлений ядра.
  • Поддерживайте систему в актуальном состоянии, чтобы минимизировать вероятность возникновения конфликтов при обновлениях.

Следуя этим советам, вы значительно уменьшите вероятность возникновения аналогичных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...