Вопрос или проблема
У меня на компьютере установлены Windows 8.1 и Linux. Но когда я пытался войти в Windows, ничего не отображалось после долгого ожидания. Также в Linux я получил ошибки, связанные с grub. Поэтому я удалил его, а затем переустановил. И добавил эти строки в 40_custom.
menuentry "Windows 8" {
set root="(hd1,gpt2)"
chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}
Затем, запустив “grub-mkconfig -o /boot/grub/grub.cfg”, я получил следующий вывод:
Генерация конфигурационного файла grub ...
Предупреждение: Установить GRUB_TIMEOUT на ненулевое значение, когда GRUB_HIDDEN_TIMEOUT установлено, больше не поддерживается.
Найдена linux-образ: /boot/vmlinuz-4.4.0-21-generic
Найден initrd-образ: /boot/initrd.img-4.4.0-21-generic
Добавление записи в меню загрузки для конфигурации прошивки EFI
готово
Но когда я перезагружаю, есть опция для Windows, но когда я пытаюсь войти в нее, я получаю ошибку
ошибка hd1,gpt2 не найден
Просто установите ваш корень на gpt1 или set root="(hd1,gpt1)"
. Приложение EFI bootmgfw.efi на самом деле существует в разделе системы EFI, а не в разделе Windows.
Ответ или решение
Ошибка "hd1,gpt2 not found" указывает на то, что GRUB (Grand Unified Bootloader) не может найти указанный раздел, на котором, по вашему мнению, находится загрузочный файл Windows. Давайте рассмотрим данную проблему, анализируя вашу ситуацию.
Контекст проблемы
Вы используете систему с двойной загрузкой, состоящую из Windows 8.1 и Linux. При попытке загрузить Windows, вместо этого вы сталкиваетесь с проблемами, связанными с GRUB. Вы упомянули, что сначала возникли ошибки в Linux, что, вероятно, привело вас к переустановке GRUB. В процессе настройки вы добавили собственный пункт в файл конфигурации GRUB (40_custom
), который указывает на загрузку Windows.
Анализ конфигурации
Ваш текущий код для меню загрузки Windows выглядит следующим образом:
menuentry "Windows 8" {
set root="(hd1,gpt2)"
chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}
Ошибки, с которыми вы столкнулись, возникают из-за неправильного указания раздела. hd1,gpt2
указывает на то, что GRUB ищет загрузчик Windows на вторичном диске в разделе 2. Если Windows установлена в системном разделе EFI, то, скорее всего, нужно указывать другой раздел, который содержит EFI System Partition (ESP).
Рекомендации по исправлению
-
Проверьте наличие и структуру разделов: Убедитесь, что вы правильно определили, какой именно раздел является системным. Для этого можно использовать команду
sudo fdisk -l
или аналогичные утилиты, чтобы увидеть, какие разделы существуют на ваших дисках. -
Измените настройки GRUB: Если ваш загрузочный файл
bootmgfw.efi
действительно находится в разделе EFI, то вам нужно указать GRUB на правильный раздел. В большинстве случаев, EFI система располагается в gpt1. Попробуйте изменить такие строки в40_custom
:menuentry "Windows 8" { set root="(hd1,gpt1)" chainloader /EFI/microsoft/BOOT/bootmgfw.efi }
-
Обновите конфигурацию GRUB: После внесения изменений в
40_custom
, не забудьте обновить конфигурацию GRUB, выполнив следующую команду:sudo grub-mkconfig -o /boot/grub/grub.cfg
-
Перезагрузите систему: После выполнения всех изменений, перезагрузите компьютер и проверьте, работает ли загрузка Windows.
Дополнительные замечания
-
Проблема с параметрами GRUB: Запись
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported
говорит о том, что у вас конфигурация, в которой одновременно прописаны скрытые таймауты и обычные. Проверьте файл/etc/default/grub
на предмет этих настроек и исправьте их, если необходимо. -
Резервное копирование: Всегда рекомендуется делать резервные копии важных данных и конфигурационных файлов перед внесением изменений в загрузчик и систему.
Следуя этим рекомендациям, вы сможете устранить ошибку "hd1,gpt2 not found" и успешно загрузить операционную систему Windows 8.1.