Вопрос или проблема
Я уже довольно долго использую Windows 10 и Ubuntu 16.04 рядом друг с другом. Я мог загружаться в любую из ОС с помощью загрузчика Grub. К сожалению, установка Windows 10 вышла из строя, и мне пришлось переустановить ее.
После переустановки Windows 10 я больше не мог загрузиться в нее с помощью загрузчика Grub. Поэтому я воспользовался своим загрузочным USB с Windows, чтобы выполнить следующие команды для восстановления доступа к Windows:
bootrec.exe /fixmbr
bootrec.exe /fixboot
bootrec.exe /rebuildbcd
После этого я использовал easyBCD
, чтобы создать новое меню загрузчика для Windows 10 и Ubuntu. Это немного исправило ситуацию. Теперь мне нужно использовать меню загрузки Windows 10, чтобы выбрать либо Windows 10, либо Ubuntu; если я выбираю Windows 10, меня сразу заводит в ОС. Однако если я выбираю Ubuntu, то попадаю к загрузчику Grub с нерабочей ссылкой(?) на мою старую(?) Windows 10. Выбор Ubuntu загружает меня в ОС Ubuntu.
Что бы я хотел достичь, так это вернуть все под загрузчик Grub, но я очень запутался в происходящем, поэтому надеюсь, кто-то сможет мне помочь.
Редактировать: Похоже, что Grub Customizer
удаляет /etc/grub.d/40_custom
, когда я пытаюсь сохранить изменения в Grub Customizer. Когда я добавляю эти строки в оригинальный файл и сохраняю их там, параметр загрузки не отображается в Grub Customizer.
Попробуйте такое решение
Выполните следующие команды:
/etc/grub.d/
gedit 40_custom
Добавьте следующие строки в файл 40_custom:
menuentry "Windows 10" {
set root="(hd0,1)"
chainloader +1
}
Если это не сработает, попробуйте следующее:
menuentry "Windows 10" {
set root="(hd0,msdos1)"
chainloader +1
}
После редактирования сохраните файл и выполните следующую команду:
grub2-mkconfig -o /boot/grub2/grub.cfg
Это добавит запись Windows в основной конфигурационный файл.
Затем введите:
reboot
Попробуйте os-prober
. Поскольку у вас установлен другой загрузчик, вам также придется переустановить GRUB. Выполните следующие команды, чтобы установить os-prober
и обновить конфигурацию GRUB:
sudo apt-get update
sudo apt-get install os-prober
sudo grub-install /dev/sda
sudo update-grub
Теперь перезагрузите, и ваше меню GRUB должно быть исправлено!
Похоже, что grub успешно находит загрузчик Windows EFI, но затем останавливается на добавлении одной загрузочной записи, которая, однако, ссылается на недействительную (старую) установку Windows.
Можете ли вы выяснить, в каком режиме, т.е. UEFI или Legacy, теперь работает менеджер загрузки Windows? Поскольку grub мог обнаружить и использовать (старое) EFI изображение, а не искать дальше другую альтернативу Legacy.
P.S. Учитывая, что вы хотите загружать любую ОС из любого менеджера загрузки, более справедливым способом будет использование стороннего менеджера загрузки. rEFInd – хороший выбор. Он стабилен и достаточно мощен, чтобы справляться с потенциальными изменениями из-за обновлений системы с любой стороны.
Ответ или решение
Восстановление загрузочного пункта Windows 10 в загрузчике Grub
Учитывая вашу ситуацию, когда после переустановки Windows 10 возникли проблемы с загрузкой через Grub, я изложу детальные шаги, чтобы помочь вам восстановить правильную конфигурацию загрузчика Grub и добавить Windows 10 в меню загрузки.
Шаг 1: Определение режима загрузки
Первое, что вам нужно сделать — определить, в каком режиме работает ваше устройство: UEFI или Legacy. Это важно, так как Grub и Windows управляют загрузкой по-разному в каждом из режимов. Для этого выполните следующие действия:
- Загрузитесь в Ubuntu.
- Откройте терминал и выполните команду:
ls /sys/firmware/efi
Если каталог существует и не пустой, значит, вы используете UEFI. Если каталог не существует, вероятно, у вас Legacy.
Шаг 2: Установка os-prober и обновление Grub
Для начала установите os-prober
, чтобы Grub мог обнаружить загрузчик Windows:
- Обновите список пакетов:
sudo apt-get update
- Установите
os-prober
:sudo apt-get install os-prober
- Теперь перезапустите установку Grub:
sudo grub-install /dev/sda
Обратите внимание, что
sda
— это основной диск (измените на ваш диск, если необходимо). - И, наконец, обновите конфигурацию Grub:
sudo update-grub
Шаг 3: Добавление Windows 10 вручную в Grub
Если после выполнения предыдущих шагов Windows 10 не отображается в меню загрузчика, вы можете добавить его вручную:
- Откройте файл
40_custom
для редактирования:sudo gedit /etc/grub.d/40_custom
-
В конце файла добавьте следующие строки для Windows 10:
В режиме UEFI:
menuentry "Windows 10" { set root='hd0,gpt1' # Измените номер по необходимости chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
В режиме Legacy:
menuentry "Windows 10" { set root=(hd0,msdos1) # Для Legacy систем chainloader +1 }
- Сохраните файл и закройте текстовый редактор.
Шаг 4: Обновление конфигурации Grub
После добавления записей в 40_custom
, обновите конфигурацию Grub:
sudo update-grub
Шаг 5: Перезагрузка
Теперь перезагрузите вашу систему:
sudo reboot
При запуске вашей системы в меню Grub должен появиться пункт для Windows 10, где вы сможете выбрать, какую ОС хотите загрузить.
Дополнительные советы
Если проблема сохраняется, возможно, стоит рассмотреть возможность установки стороннего загрузчика, такого как rEFInd, который может предложить более удобный интерфейс для управления загрузкой различных операционных систем.
Следуя этим шагам, вы сможете восстановить возможность загрузки Windows 10 через Grub и обеспечить нормальную работу обеих операционных систем на вашем компьютере. Если у вас возникнут вопросы по ходу выполнения, не стесняйтесь обращаться за помощью.