- Вопрос или проблема
- Настройка системы
- Шаги для исправления
- Смонтировать зашифрованный раздел LUKS
- Смонтировать объекты в /mnt и chroot
- Измените initramfs.conf и обновите initramfs/grub
- Какое изменение в initramfs.conf на самом деле исправляет проблему?
- Ответ или решение
- Проблема с загрузкой новых обновлений ядра в Kubuntu: Подробный анализ и решение
- Введение
- Описание проблемы
- Новости и обновления
- Шаги для диагностики и решения
- Заключение
- Рекомендации по предотвращению в будущем
Вопрос или проблема
Я использую 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
Смотрите
- Kernel Panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
- Переустановка GRUB (grub-install: warning: EFI variables are not supported on this system.)
Измените 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 не может корректно передать управление загрузке к новым ядрам.
Новости и обновления
Шаги для диагностики и решения
-
Проверка конфигурации GRUB.
- Запустите систему с Live USB и доступ к вашему установленному системному разделу через терминал.
- Проверьте конфигурацию GRUB:
sudo update-grub
-
Переустановка GRUB.
- Используйте следующую команду для переустановки загрузчика:
sudo grub-install /dev/nvme0n1
- Это гарантирует, что загрузчик будет правильно настроен.
- Используйте следующую команду для переустановки загрузчика:
-
Используйте Boot-Repair.
- Запустите Boot-Repair из Live USB и выберите опцию для автоматического исправления.
- Если опция "предложенные исправления" отсутствует, попробуйте запустить Boot-Repair в режиме расширенной диагностики.
-
Проблемы с памятью GRUB.
- Из-за ошибок при загрузке новых ядер, возможно, проблема заключается в недостаточном выделении памяти для загрузки
initrd
. Это может быть связано с увеличением размера initrd из-за добавленных модулей, например, драйвера Nvidia. - Рекомендуется внести изменения в файл
/etc/initramfs-tools/initramfs.conf
:MODULES=dep COMPRESS=xz
- Затем обновите initramfs и GRUB:
sudo update-initramfs -u sudo update-grub
- Из-за ошибок при загрузке новых ядер, возможно, проблема заключается в недостаточном выделении памяти для загрузки
-
Перемещение к 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
- Если вы по-прежнему не можете загрузиться, выполните серии команд, чтобы монтировать корневой раздел и изменить ядро через chroot:
Заключение
Проблемы загрузки новых версий ядра в Kubuntu могут быть сложными, особенно с учетом проблем конфигурации GRUB и ограничений в выделении памяти. Применяя описанные выше шаги, вы можете восстановить загрузку системы и устранить сбои.
Рекомендации по предотвращению в будущем
- Регулярно проверяйте состояние дискового пространства, чтобы избежать проблем с памятью.
- Проводите периодическое обслуживание GRUB, особенно после установки обновлений ядра.
- Поддерживайте систему в актуальном состоянии, чтобы минимизировать вероятность возникновения конфликтов при обновлениях.
Следуя этим советам, вы значительно уменьшите вероятность возникновения аналогичных проблем в будущем.