Проблема с Grub на установке с двойной загрузкой UEFI – Загрузка в консоль grub, boot-repair не помогает

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

[Перед проблемой]

Недавно я установил Kubuntu 20.04 на свой рабочий компьютер с двойной загрузкой с Windows. Компьютер имеет SSD и HDD. SSD содержит EFI-раздел в начале, затем раздел системы Windows, затем мой корневой раздел linux. HDD содержит раздел “данные” Windows и мой linux /home.

Установка была сложной, так как компьютер загружается с UEFI. Что бы я ни пробовал, я не мог получить доступ к меню grub; но я выяснил, что когда я активировал UEFI, я загружался в Windows; а когда я деактивировал UEFI и активировал легаси-режим загрузки, я загружался в linux (но без возможности попасть в меню grub).

[Проблема]

Этим утром, без каких-либо изменений в Kubuntu или загрузке накануне, я загрузился на черный экран без указателя мыши. Встревоженный, я попытался использовать boot-repair с моего живого USB-ключа Kubuntu. Это не сработало, и стало еще хуже: теперь, при загрузке с UEFI, я попадаю в консоль grub (“Поддерживается минимальное редактирование строк типа BASH…”); а при загрузке в легаси я сталкиваюсь с ошибкой загрузки (файл /boot/grub/i386-pc/normal.mod не найден).

Использование boot-repair всеми возможными способами не сработало; ни переустановка ядра, ни игра с любыми из расширенных опций в boot-repair. Ничего не меняется.

Я смог воспользоваться инструкцией в верхнем посте по следующей ссылке, чтобы пройти мимо консоли grub; но затем я попадаю в консоль Busy Box, где не могу никуда продвинуться.

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

Мне наконец удалось это исправить. Это был долгий путь.

Я думаю (хотя не уверен), что это произошло из-за нескольких проблем:

  • Grub, установленный как в режиме UEFI, так и в режиме Legacy
  • Поврежденный Grub, который не полностью удалился и генерировал плохие конфигурационные файлы при каждом обновлении
  • Поврежденный EFI-раздел, полученный в результате попыток его исправить
  • Поврежденные заголовки ядра в моей папке /boot

Вот что я сделал, чтобы всё исправить:

Прежде всего: убедитесь, что компьютер загружается в режиме UEFI (настройки BIOS)!

  1. Запустился в сеанс live Kubuntu с помощью USB-накопителя Live Kubuntu
  2. Удалил существующий EFI-раздел с помощью Gparted на USB-накопителе Live Kubuntu
  3. Создал диск восстановления Windows на установке Windows 10, которую я имел на другом компьютере
  4. Перезагрузил компьютер и загрузился с диска восстановления и попал в командную строку
  5. Следовал инструкциям на этой ссылке, чтобы создать новый EFI-раздел и восстановить его с помощью файлов Windows на C:. Доступ к Windows был восстановлен после этого.
  6. Вернулся в сеанс live Kubuntu
  7. Использовал следующие команды в консоли живой среды для монтирования и доступа к разделу, где была моя установка Kubuntu
sudo mount /dev/nvme0n1p4 /mnt # nvme0n1p4 - это раздел с моей установкой linux
sudo mount /dev/nvme0n1p5 /mnt/boot/efi # nvme0n1p5 - это вновь созданный EFI-раздел
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
sudo mount --bind /run /mnt/run
sudo chroot /mnt
  1. Переименовал скрипт, который мешал хорошему удалению grub с помощью
sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
  1. Удалил и переустановил grub раз и навсегда с помощью
sudo apt-get purge grub grub-pc grub-common grub-efi
sudo mv /boot/grub /boot/grub_backup
sudo mkdir /boot/grub
sudo apt-get install grub grub-pc grub-common grub-efi
sudo grub-install /dev/nvme0n1p5 #nvme0n1p5 - это вновь созданный EFI
sudo update-grub 
  1. Определил пакеты, которые имеют файлы, установленные в папке /boot, с помощью команды
dpkg -S /boot
  1. Переустановил все пакеты с помощью
sudo apt-get install --reinstall <имена пакетов, разделенные пробелами>
  1. Запустил update-grub

  2. Готово! Всё должно работать. Если нет, удалите и переустановите grub в последний раз с помощью boot-repair.

Спасибо @oldfred за его терпение и мудрые советы!

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

Решение проблемы с GRUB в установке с двойной загрузкой UEFI

Введение

Ваша ситуация с установкой Kubuntu 20.04 и Windows на одном компьютере с SSD и HDD требует детального подхода к исправлению ошибок загрузчика GRUB. Данная статья обработает вашу проблему, предоставляя поэтапные инструкции по восстановлению доступа к операционным системам и устранению возникших ошибок.

Анализ ситуации

Сложная проблема, которую вы описали, может быть обусловлена несколькими факторами:

  1. Установка GRUB как в режиме UEFI, так и в режиме Legacy.
  2. Повреждение GRUB, которое препятствовало правильному обновлению конфигурации.
  3. Коррупция EFI-раздела после нескольких попыток восстановления.
  4. Повреждение заголовков ядра в директории /boot.

Подготовка к восстановлению

Прежде чем приступить к восстановлению, убедитесь, что ваш компьютер загружается в режиме UEFI. Перейдите в BIOS и выполните следующие шаги:

  1. Подготовка Live USB с Kubuntu:
    • Загрузите последний образ Kubuntu и создайте загрузочный USB-накопитель.

Шаги для восстановления GRUB

  1. Загрузка в Live Sessии:

    • Подключите Live USB и загрузитесь с него, выбрав режим "Try Kubuntu".
  2. Удаление поврежденного EFI-раздела:

    • Запустите GParted и удалите существующий EFI-раздел.
  3. Создание восстановительного диска Windows:

    • На другом компьютере создайте загружаемый диск для восстановления Windows 10.
  4. Запуск восстановления Windows:

    • Перезагрузите компьютер и загрузитесь с восстановительного диска Windows. Выберите "Командная строка" в меню восстановления.
  5. Восстановление EFI-раздела:

    • В командной строке выполните команды для создания нового EFI-раздела, как указано в данной статье.
  6. Возвращение в Live-сессию Kubuntu:

    • После восстановления Windows, снова загрузитесь с Live USB Kubuntu.
  7. Монтирование файловой системы Kubuntu:

    • Выполните следующие команды:
      sudo mount /dev/nvme0n1p4 /mnt # замените на вашу Linux-раздел
      sudo mount /dev/nvme0n1p5 /mnt/boot/efi # это новый EFI-раздел
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /sys /mnt/sys
      sudo mount --bind /proc /mnt/proc
      sudo mount --bind /run /mnt/run
      sudo chroot /mnt
  8. Переименование скрипта, препятствующего удалению GRUB:

    • Выполните команду:
      sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
  9. Удаление и повторная установка GRUB:

    • Выполните следующие команды для полной переустановки:
      sudo apt-get purge grub grub-pc grub-common grub-efi
      sudo mv /boot/grub /boot/grub_backup
      sudo mkdir /boot/grub
      sudo apt-get install grub grub-pc grub-common grub-efi
      sudo grub-install /dev/nvme0n1p5 # замените на ваш новый EFI
      sudo update-grub 
  10. Переустановка пакетов, влияющих на /boot:

    • Определите нужные пакеты:
      dpkg -S /boot
    • Переустановите их:
      sudo apt-get install --reinstall <имена пакетов через пробел>
  11. Финальные шаги:

    • Запустите update-grub снова для обновления конфигурации GRUB.
    • Проверьте, работает ли система: перезагрузите компьютер.

Заключение

Восстановление системы после проблем с GRUB может быть сложным процессом, требующим терпения и внимательности. Убедитесь, что действия выполняются последовательно и внимательно следуйте инструкции. Если после этого вам по-прежнему не удастся восстановить системный загрузчик, рассмотрите возможность использования Boot-Repair как последнего средства. Этот опыт говорит о важности регулярного резервирования данных и поддержании системы в здоровом состоянии.

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

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