Чтобы GRUB показывал Windows (или любую другую ОС) в меню загрузки, нужно три действия: поставить os-prober, добавить в /etc/default/grub строку GRUB_DISABLE_OS_PROBER=false и пересобрать конфиг. С 2023 года os-prober по умолчанию отключён — это главная причина, почему Windows «пропадает» из меню.
GRUB — гибкий загрузчик, но из коробки он знает только те ядра и ОС, которые нашёл при установке. Если ты ставишь Arch на чистый диск — GRUB видит только Linux. А вот Windows, Fedora или FreeBSD — нет.
С 2023 года разработчики GRUB по соображениям безопасности отключили автосканирование. Раньше достаточно было поставить os-prober, и он работал молча. Теперь нужно явно разрешить его в конфиге. Без этой строчки grub-mkconfig выдаст предупреждение:
Warning: os-prober will not be executed to detect other bootable partitions.
Именно это видят те, кто после обновления системы обнаруживает, что Windows пропала из меню.
Начни с установки:
sudo pacman -S os-prober
Пакет небольшой, зависимости минимальные. После установки он готов к работе, но пока не активен — GRUB его игнорирует.
Отредактируй файл /etc/default/grub:
sudo nano /etc/default/grub
Добавь (или раскомментируй, если строка уже есть):
GRUB_DISABLE_OS_PROBER=false
Именно false — значит «не отключай os-prober». Запутанная логика, но работает так: переменная называется «отключить», а тебе нужно значение «нет, не отключай».
os-prober сканирует разделы и определяет ОС по содержимому. Для NTFS-разделов (где живёт Windows) ему нужен пакет ntfs-3g:
sudo pacman -S ntfs-3g
Без него os-prober не сможет прочитать файловую систему Windows и пропустит раздел.
После всех изменений пересобери grub.cfg:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Если всё настроено правильно, в выводе увидишь что-то вроде:
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
После перезагрузки Windows появится в меню GRUB.
os-prober читает mtab (список смонтированных файловых систем) и ищет загрузочные записи там. Обычно раздел Windows монтировать не нужно — os-prober увидит его сам. Но если раздел не определяется, смонтируй его перед пересборкой:
sudo mount /dev/sda2 /mnt/windows
Точка монтирования может быть любой — os-prober смотрит на сам раздел, а не на путь.
Если Windows и Arch живут на разных дисках и у каждого свой EFI-раздел — это классическая проблема. os-prober ищет загрузчик Windows на разделах текущего ESP. Если Windows boot-менеджер лежит на другом диске, он не будет найден.
Решение: убедись, что оба загрузчика используют один ESP, либо добавь запись Windows вручную через /etc/grub.d/40_custom. Подробнее — в статье Один EFI-раздел для dual boot.
Если Windows установлена на отдельный физический диск, убедись, что:
GRUB_DISABLE_OS_PROBER=false в правильном файле /etc/default/grub.lsblk).ntfs-3g откажется его читать.os-prober может работать некорректно, если запускать grub-mkconfig из chroot (например, при установке Arch). Если Windows не видна — перезагрузись в установленную систему и запусти команду оттуда.
Если os-prober не помогает или ты хочешь точечный контроль, добавь запись вручную. Отредактируй /etc/grub.d/40_custom:
menuentry "Windows 11" --class windows {
insmod part_gpt
insmod fat
search --fs-uuid --no-floppy --set=root XXXX-XXXX
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
Замени XXXX-XXXX на UUID EFI-раздела — его покажет blkid /dev/sda1. После редактирования пересобери конфиг: sudo grub-mkconfig -o /boot/grub/grub.cfg.
Если ты используешь systemd-boot вместо GRUB, os-prober не нужен — systemd-boot автоматически подхватывает Windows Boot Manager через ESP. А вот если GRUB после обновления перестал видеть ядра — смотри GRUB не видит ядра после обновления.
Пересобери конфиг: sudo grub-mkconfig -o /boot/grub/grub.cfg. Если не помогло — проверь, что GRUB_DISABLE_OS_PROBER=false на месте. После крупных обновлений GRUB строка иногда сбрасывается.
Убедись, что раздел NTFS виден через lsblk, и проверь наличие ntfs-3g. Если Windows на отдельном диске с отдельным ESP — в этом случае лучше добавить запись вручную через 40_custom. Также смотри статью Dualboot: Windows пропала из GRUB.
Да, os-prober — самый простой способ. Без него GRUB не знает о Windows автоматически. Альтернатива — ручная запись в 40_custom, но это требует больше настройки.
Убедись, что пакет установлен (pacman -Qi os-prober). Если пакет есть, а предупреждение остаётся — проверь синтаксис: нужна строка GRUB_DISABLE_OS_PROBER=false без лишних пробелов и кавычек.
Запусти сканирование вручную:
sudo os-prober
Вывод покажет разделы и обнаруженные ОС. Если команда ничего не возвращает — система не нашла загрузчиков.
os-prober — маленький пакет, но без него dual boot с GRUB превращается в ручную настройку. С 2023 года он отключён по умолчанию, и это первое, что стоит проверить, если Windows исчезла из меню загрузки. Установка занимает минуту: pacman -S os-prober, одна строчка в конфиге и пересборка. Если что-то пошло не так — начни с ручного запуска os-prober и проверь, видит ли система NTFS-раздел.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии