Для пользователей, работающих с двумя операционными системами на одном компьютере, критически важно правильно настроить первичный загрузчик. В среде Linux стандартом является GRUB 2 (Grand Unified Bootloader), однако его взаимодействие с Windows 10 требует учета особенностей архитектуры диска и режима работы материнской платы. Ошибки на этапе конфигурации могут привести к неработоспособности обеих систем.

Подготовка среды и проверка разметки

Перед началом установки необходимо определить режим работы системы: UEFI или Legacy BIOS. От этого зависит структура разделов и способ записи загрузчика. В современных ПК с Windows 10 обычно используется таблица разделов GPT и режим UEFI.

  • Проверка раздела EFI: Убедитесь, что существует раздел EFI System Partition (ESP) объемом не менее 100 МБ с файловой системой FAT32. Именно здесь хранятся файлы .efi для запуска ОС.
  • Доступность разделов: Для корректного обнаружения Windows из-под Linux рекомендуется отключить функцию быстрого запуска (Fast Startup) в настройках электропитания Windows. Это предотвращает блокировку раздела NTFS.
  • Secure Boot: Если используемый дистрибутив Linux не имеет подписанного загрузчика, функцию Secure Boot в BIOS/UEFI следует временно отключить.
Важно: Никогда не форматируйте разделы с метками "System Reserved" или "Recovery", а также не удаляйте существующие записи в таблице разделов без резервной копии данных.

Установка пакетов и инструментов

Пакет GRUB 2 устанавливается через стандартный менеджер пакетов вашего дистрибутива. Для полноценной работы с Windows требуется утилита os-prober, которая сканирует диски на наличие других операционных систем.

Пример установки для Debian/Ubuntu:

sudo apt install grub-pc grub-efi-amd64 os-prober

Для систем семейства Red Hat (Fedora, CentOS) используется пакет grub2. После установки пакетов конфигурация еще не применяется автоматически; необходимо запустить процесс генерации файла grub.cfg.

Активация поиска Windows в конфигурации

В последних версиях многих дистрибутивов (начиная с Ubuntu 22.04) функция автоматического поиска других ОС отключена по соображениям безопасности. Чтобы Windows 10 появилась в меню загрузки, необходимо вручную активировать этот механизм.

  1. Откройте файл конфигурации /etc/default/grub для редактирования (например, командой sudo nano /etc/default/grub).
  2. Найдите строку GRUB_DISABLE_OS_PROBER. Если она отсутствует, добавьте её. Установите значение false: GRUB_DISABLE_OS_PROBER=false
  3. При необходимости увеличьте время отображения меню, изменив параметр GRUB_TIMEOUT (например, на 10 секунд).
  4. Сохраните изменения и выйдите из редактора.

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

  • Debian/Ubuntu: sudo update-grub
  • Fedora/CentOS: sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Если вывод команды содержит строку Found Windows Boot Manager on..., значит, система успешно обнаружила загрузчик Windows.

Ручное добавление записи в меню

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

  1. Создайте пользовательский скрипт в директории /etc/grub.d/. Стандартным именем является 40_custom.
  2. Добавьте в конец файла следующий блок кода:
menuentry 'Windows 10' { insmod part_gpt insmod fat set root='hd0,gpt1' chainloader /EFI/Microsoft/Boot/bootmgfw.efi }

Параметр set root должен соответствовать реальному расположению EFI-раздела. Для надежности лучше использовать UUID раздела вместо нумерации дисков. Узнать UUID можно командой lsblk -f или grub-probe --target=fs_uuid /mnt/efi.

После внесения изменений снова запустите команду обновления GRUB (update-grub или аналогичную).

Решение типичных проблем

Windows перезаписывает загрузчик

Обновления Windows 10 часто изменяют порядок загрузки в NVRAM или перезаписывают главную загрузочную запись, из-за чего компьютер сразу загружается в Windows, игнорируя Linux. Для возврата GRUB потребуется загрузочная флешка с Linux.

Алгоритм восстановления через Live USB:

  1. Загрузитесь с флешки и откройте терминал.
  2. Смонтируйте корневой раздел установленной Linux: sudo mount /dev/sdXY /mnt (замените XY на ваш раздел).
  3. Смонтируйте EFI-раздел: sudo mount /dev/sdXZ /mnt/boot/efi.
  4. Выполните привязку системных директорий и войдите в среду установленной системы: sudo arch-chroot /mnt (или используйте chroot для других дистрибутивов).
  5. Внутри chroot выполните переустановку загрузчика: grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu и обновление конфигурации.

Черный экран при выборе Windows

Если после выбора Windows в меню GRUB появляется черный экран, причиной может быть конфликт видеодрайверов или режим ACPI. Попробуйте добавить параметры acpi_osi=! nomodeset в строку запуска Windows внутри файла конфигурации GRUB. Также убедитесь, что в Windows не включен режим гибернации, который блокирует доступ к диску.

Разница во времени

Если часы в Windows отстают от реального времени после загрузки из Linux, это связано с тем, что Linux использует UTC, а Windows — локальное время. Исправить это можно командой в терминале Linux: timedatectl set-local-rtc 1 --adjust-system-clock.

Часто задаваемые вопросы

Можно ли установить GRUB непосредственно в раздел NTFS с Windows?

Нет, это недопустимо. Загрузчик должен находиться либо в MBR диска (для Legacy BIOS), либо в отдельном разделе EFI (для UEFI). Установка файлов GRUB внутрь файловой системы NTFS приведет к повреждению данных и невозможности загрузки.

Как полностью удалить GRUB и оставить только Windows?

Для этого понадобится установочная флешка Windows. Загрузитесь с нее, перейдите в командную строку восстановления и выполните команды bootrec /fixmbr и bootrec /fixboot . Затем удалите разделы Linux через «Управление дисками» и расширьте раздел Windows.

Что такое chainloader в настройках GRUB?

Chainloader — это механизм передачи управления другому загрузчику. Вместо попытки загрузить ядро Linux, GRUB передает контроль файлу bootmgfw.efi (Windows Boot Manager), который затем самостоятельно запускает операционную систему Windows.