Вопрос или проблема
[Перед проблемой]
Недавно я установил 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)!
- Запустился в сеанс live Kubuntu с помощью USB-накопителя Live Kubuntu
- Удалил существующий EFI-раздел с помощью Gparted на USB-накопителе Live Kubuntu
- Создал диск восстановления Windows на установке Windows 10, которую я имел на другом компьютере
- Перезагрузил компьютер и загрузился с диска восстановления и попал в командную строку
- Следовал инструкциям на этой ссылке, чтобы создать новый EFI-раздел и восстановить его с помощью файлов Windows на C:. Доступ к Windows был восстановлен после этого.
- Вернулся в сеанс live Kubuntu
- Использовал следующие команды в консоли живой среды для монтирования и доступа к разделу, где была моя установка 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
- Переименовал скрипт, который мешал хорошему удалению grub с помощью
sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
- Удалил и переустановил 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
- Определил пакеты, которые имеют файлы, установленные в папке /boot, с помощью команды
dpkg -S /boot
- Переустановил все пакеты с помощью
sudo apt-get install --reinstall <имена пакетов, разделенные пробелами>
-
Запустил update-grub
-
Готово! Всё должно работать. Если нет, удалите и переустановите grub в последний раз с помощью boot-repair.
Спасибо @oldfred за его терпение и мудрые советы!
Ответ или решение
Решение проблемы с GRUB в установке с двойной загрузкой UEFI
Введение
Ваша ситуация с установкой Kubuntu 20.04 и Windows на одном компьютере с SSD и HDD требует детального подхода к исправлению ошибок загрузчика GRUB. Данная статья обработает вашу проблему, предоставляя поэтапные инструкции по восстановлению доступа к операционным системам и устранению возникших ошибок.
Анализ ситуации
Сложная проблема, которую вы описали, может быть обусловлена несколькими факторами:
- Установка GRUB как в режиме UEFI, так и в режиме Legacy.
- Повреждение GRUB, которое препятствовало правильному обновлению конфигурации.
- Коррупция EFI-раздела после нескольких попыток восстановления.
- Повреждение заголовков ядра в директории
/boot
.
Подготовка к восстановлению
Прежде чем приступить к восстановлению, убедитесь, что ваш компьютер загружается в режиме UEFI. Перейдите в BIOS и выполните следующие шаги:
- Подготовка Live USB с Kubuntu:
- Загрузите последний образ Kubuntu и создайте загрузочный USB-накопитель.
Шаги для восстановления GRUB
-
Загрузка в Live Sessии:
- Подключите Live USB и загрузитесь с него, выбрав режим "Try Kubuntu".
-
Удаление поврежденного EFI-раздела:
- Запустите
GParted
и удалите существующий EFI-раздел.
- Запустите
-
Создание восстановительного диска Windows:
- На другом компьютере создайте загружаемый диск для восстановления Windows 10.
-
Запуск восстановления Windows:
- Перезагрузите компьютер и загрузитесь с восстановительного диска Windows. Выберите "Командная строка" в меню восстановления.
-
Восстановление EFI-раздела:
- В командной строке выполните команды для создания нового EFI-раздела, как указано в данной статье.
-
Возвращение в Live-сессию Kubuntu:
- После восстановления Windows, снова загрузитесь с Live USB Kubuntu.
-
Монтирование файловой системы 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
- Выполните следующие команды:
-
Переименование скрипта, препятствующего удалению GRUB:
- Выполните команду:
sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
- Выполните команду:
-
Удаление и повторная установка 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
- Выполните следующие команды для полной переустановки:
-
Переустановка пакетов, влияющих на /boot:
- Определите нужные пакеты:
dpkg -S /boot
- Переустановите их:
sudo apt-get install --reinstall <имена пакетов через пробел>
- Определите нужные пакеты:
-
Финальные шаги:
- Запустите
update-grub
снова для обновления конфигурации GRUB. - Проверьте, работает ли система: перезагрузите компьютер.
- Запустите
Заключение
Восстановление системы после проблем с GRUB может быть сложным процессом, требующим терпения и внимательности. Убедитесь, что действия выполняются последовательно и внимательно следуйте инструкции. Если после этого вам по-прежнему не удастся восстановить системный загрузчик, рассмотрите возможность использования Boot-Repair как последнего средства. Этот опыт говорит о важности регулярного резервирования данных и поддержании системы в здоровом состоянии.