Если вы когда-нибудь пытались заставить GRUB дружить с Windows и Linux, то знаете — это настоящий квест с загадками и ловушками. В этом посте вы узнаете, как настроить загрузчик GRUB так, чтобы он безупречно запускал и Windows, и Linux, даже если у вас BIOS с MBR или EFI с разными режимами загрузки. Готовы? Поехали!


Почему GRUB не видит Windows и как это исправить

Представьте: вы установили Linux рядом с Windows, а GRUB упорно не показывает выбор Windows. Знакомо? Это классическая проблема, особенно если Windows установлена в режиме Legacy (BIOS), а Linux — в EFI. GRUB просто не понимает, где искать вторую систему.

Основные причины:

  • Разные режимы загрузки: Windows в Legacy, Fedora в EFI — они словно говорят на разных языках.
  • os-prober не установлен или не работает: этот инструмент отвечает за поиск других ОС.
  • BIOS не видит диск с Windows: иногда настройки BIOS мешают обнаружению.
  • Загрузчик Windows перезаписан Linux: тогда GRUB не может найти нужные файлы.

Проверяем наличие загрузчика Windows

Перед тем как лечить, нужно убедиться, что Windows-загрузчик вообще жив. Для этого:

  • В GRUB можно использовать команду ls для просмотра разделов и файлов.
  • Проверить наличие раздела с меткой Windows или NTFS.
  • Использовать os-prober — если он установлен, он покажет найденные ОС.

Если GRUB при попытке загрузить Windows через chainloader +1 выдает ошибку invalid EFI file path, а у вас BIOS и MBR — это значит, что GRUB пытается загрузить EFI-загрузчик там, где его нет. На старом железе EFI просто нет, и нужно использовать Legacy-загрузку.


Восстановление загрузчика Windows на ноутбуке с BIOS и MBR

Если Windows пропала из меню загрузки, возможно, загрузчик был перезаписан Linux. Вот что делать:

  • Загрузитесь с установочного диска Windows или с загрузочной флешки.
  • Выберите "Восстановление системы" → "Командная строка".
  • Выполните команды:
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd

Эти команды восстанавливают MBR и загрузочную запись Windows.

  • После этого Windows должна загрузиться напрямую, но Linux исчезнет из меню.

Как добавить Windows в меню GRUB

Чтобы GRUB показывал обе системы, нужно, чтобы он их видел. Вот пошагово:

  • Убедитесь, что установлен os-prober:
sudo dnf install os-prober
  • Включите поддержку сторонних ОС в конфиге GRUB. Для Fedora это файл /etc/default/grub, добавьте или проверьте:
GRUB_DISABLE_OS_PROBER=false
  • Обновите конфигурацию GRUB:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • Перезагрузитесь и проверьте меню.

Если Windows не появляется, значит os-prober не находит её. В этом случае можно добавить запись вручную.


Ручное добавление записи Windows в GRUB

Если автоматический поиск не работает, можно прописать Windows вручную. Для BIOS + MBR добавьте в файл /etc/grub.d/40_custom:

menuentry "Windows" {
    set root=(hd0,1)
    chainloader +1
}

Где (hd0,1) — это первый раздел первого диска, где установлен Windows. Чтобы узнать точный раздел, используйте команду ls в GRUB или fdisk -l в Linux.

После редактирования не забудьте обновить конфигурацию:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Настройка GRUB при разных режимах загрузки EFI и Legacy

Если Fedora установлена в EFI, а Windows — в Legacy, GRUB не сможет корректно загрузить обе системы из одного меню. Почему? Потому что EFI и Legacy — это разные миры.

Что делать?

  • Можно выбрать загрузку ОС через BIOS/UEFI меню выбора диска (обычно F12 при старте).
  • Либо переустановить Windows или Fedora в один режим загрузки.
  • Либо использовать отдельные загрузчики для каждой ОС.

Инструменты и утилиты для восстановления и настройки загрузчиков

Инструмент Назначение Пример использования
os-prober Поиск других ОС на дисках Автоматическое добавление Windows в GRUB
grub2-mkconfig Генерация конфигурации GRUB grub2-mkconfig -o /boot/grub2/grub.cfg
bootrec Восстановление загрузчика Windows В командной строке Windows
fdisk, parted Просмотр и управление разделами Определение, где установлена Windows
ls (в GRUB) Просмотр разделов и файлов Проверка наличия загрузочных файлов

Меры предосторожности при работе с загрузчиками

  • Всегда делайте резервные копии важных данных.
  • Перед изменением загрузчика изучите текущие настройки.
  • Не экспериментируйте с загрузчиком на рабочем компьютере без опыта.
  • Помните, что неправильные действия могут привести к потере доступа к ОС.

Альтернативные методы восстановления загрузчика Windows

Если стандартные методы не помогают, можно попробовать:

  • Использовать сторонние загрузчики, например, EasyBCD (только в Windows).
  • Переустановить GRUB с правильными параметрами.
  • Восстановить загрузчик Windows, а затем заново установить GRUB.

Полезные советы

  • Если GRUB не видит Windows, проверьте, видит ли Linux диск с Windows (lsblk, fdisk -l).
  • При ошибке invalid EFI file path убедитесь, что вы не пытаетесь загрузить EFI-загрузчик на BIOS-системе.
  • Для двойной загрузки лучше, чтобы обе ОС были в одном режиме (EFI или Legacy).
  • Используйте форумы, например, linux.org.ru и Stack Overflow — там много живых комментариев и решений.

Таблица сравнения режимов загрузки и их влияния на GRUB

Параметр BIOS + MBR UEFI + GPT
Загрузчик Windows Legacy bootloader (MBR) EFI bootloader
Совместимость с GRUB chainloader +1 работает Используется EFI-загрузчик
Ошибки при загрузке invalid EFI file path (если пытаетесь EFI) Ошибки с Legacy-загрузкой
Настройка GRUB Ручное добавление или os-prober Автоматическое обнаружение
Рекомендации Использовать Legacy для обеих ОС Использовать EFI для обеих ОС

Настроить GRUB на загрузку Windows и Linux — задача не из легких, но с правильным подходом и инструментами она становится вполне выполнимой. Помните, что главное — понять, в каком режиме установлены ваши ОС, и действовать соответственно. А если что-то пойдет не так — форумы и сообщества всегда готовы помочь!


Полезные ссылки


Вот так, с юмором и практикой, вы теперь вооружены знаниями, чтобы приручить GRUB и заставить его дружить с Windows и Linux. Не бойтесь экспериментировать, но всегда держите под рукой запасной план!