Lumpics lumpics.ru

Меню загрузки Grub не видит установленную Windows 10

Способ 1: Установка Windows на диск с Linux

Одной из наиболее распространенных причин отсутствия Windows 10 в загрузочном меню «Grub» является установка Windows не на тот же физический диск, на который устанавливается Linux. Если нужно установить на один компьютер Windows и Linux, устанавливайте их по возможности на один физический жесткий диск, причем первой необходимо установить Windows. Если сперва будет установлена Linux, а затем Windows, то есть большая вероятность, что загрузчик Windows затрет «Grub».

Способ 2: Обнаружение раздела Windows

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

  1. Определите в Linux название раздела, на который установлена Windows. Получить сведения о дисках и разделах в Linux можно как из «Терминала», так и с помощью штатного приложения «Дисковая утилита». Скопируйте или запомните название устройства. Например, это будет «/dev/sda1».
  2. grub не видит Windows 10.1
  3. Откройте «Терминал» и примонтируйте раздел с Windows 10, для чего выполните команду sudo mount -t ntfs-3g -o ro /dev/sda1, где /dev/sda1 — полученный на предыдущем этапе путь к тому с Windows.
  4. Чтобы обнаружить Windows 10, выполните тут же в «Терминале» команду sudo os-prober.
  5. grub не видит Windows 10.2
  6. В случае успешного обнаружения Windows обновите конфигурацию «Grub» командой sudo update-grub либо же sudo grub2-mkconfig -o /boot/grub/grub.cfg.
  7. grub не видит Windows 10.3

Способ 3: Ручное добавление загрузчика

При использовании первого способа вероятность сходу обнаружить и прописать Windows 10 в линуксовый загрузчик довольно невелика. Более сложным, но и более эффективным способом восстановления записи Windows 10 в загрузочном меню Grub является ручное добавление. Способ универсальный, использовать его можно не только при потере Windows 10, но и других операционных систем Windows.

  1. Узнайте название раздела с Windows как было показано в первом пункте предыдущего способа.
  2. Определите UUID раздела, на котором установлена Windows 10, для чего выполните в «Терминале» команду blkid /dev/sda1, где /dev/sda1 — название раздела с Windows.
  3. grub не видит Windows 10.4

  4. Откройте любым текстовым редактором файл /etc/grub.d/40_custom и вставьте в него следующий код, где XXXXXXXXXXXXXXXX — полученный на предыдущем шаге UUID:

    menuentry "Windows 10" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set XXXXXXXXXXXXXXXX
    chainloader +1
    }
    .
    Сохраните файл.

  5. grub не видит Windows 10.5
  6. Обновите конфигурацию Grub командой sudo update-grub, перезагрузите компьютер и посмотрите, появилась ли Windows в загрузочном меню Grub.

Если восстановить/добавить запись Windows 10 в загрузочное меню «Grub» не удалось, проверьте, не удален ли на диске служебный 100 МБ NTFS-раздел с загрузочными файлами. Если удален, можно будет попробовать его восстановить, но будет гораздо проще переустановить Windows и Linux. В том случае, когда используется «Grub 2» на UEFI, попробуйте включить в BIOS режим «Legacy».

Вам удалось решить проблему?

Ваш ответ может помочь другим пользователям!

4 комментариев

служебный 100 МБ NTFS-раздел с загрузочными файлами удален как его восстановить. Буду признателен за инструкцию.

Дополняю: Восстановил систему после вмешательства в файл «/etc/grub.d/40_custom». Теперь, как и ранее команда «sudo grub2-mkconfig -o /boot/grub/grub.cfg» ошибку не вызывает и grub2 сконфигурировался без ошибок.
Возможно это связано с тем, что Windows 10 у меня находится на другом физическом диске и содержит два раздела, загрузочный и системный, или ваши рекомендации содержат ошибку.
Во всяком случае, проблему устранить не удалось и приходится Windows 10 запускать через меню BIOS.
С аналогичной проблемой я столкнулся в другой российской системе — Rosa Fresh R13, а вот в Alt Linux K10.4 такой проблемы нет. Вполне возможно, что это свойственно всем новым Linux системам, в Debian 12.11 эта проблема тоже имеется.

Ни один из этих способов не прошёл ни в Debian 12 Plasma, ни в RedOS 8 Plasma. Система, вроде бы, начинает видет Windows 10, однако, при выполнении команды sudo update-grub или sudo grub2-mkconfig -o /boot/grub/grub.cfg (в зависимости от Linux системы) нет ни каких сообщений, но м Windows в загрузочном меню не появляется. Если же запустить Grub Customizer, то он систему видит, но при сохранении выводит сообщение об ошибках:
../grub-core/script/Iexer.c:352:syntax error.
../grub-core/script/Iexer.c:352:Incorrect command.
../grub-core/script/Iexer.c:352:syntax error.
Синтаксическаяошибка в строке 334
А сам файл /etc/grub.d/40_custom исчезает и появляется новый файл с другим названием /etc/grub.d/40_custom_proxy с совершенно другим содержанием.

Здравствуйте, Николай. Могу предположить, что проблема с добавлением Windows 10 в GRUB на Debian 12 и RedOS 8 связана с конфликтом между автоматическим обнаружением и Grub Customizer. Синтаксические ошибки в файле 40_custom указывают на некорректную генерацию конфигурации.

Сначала полностью удалите Grub Customizer и очистите его настройки, так как он создает конфликты с системными файлами GRUB. Затем восстановите оригинальный файл 40_custom командой: sudo cp /etc/grub.d/40_custom_proxy /etc/grub.d/40_custom или создайте новый пустой файл. Убедитесь, что os-prober установлен и активен: sudo apt install os-prober (для Debian) или аналогичная команда для RedOS.

Для принудительного обнаружения Windows отредактируйте файл /etc/default/grub и добавьте строку GRUB_DISABLE_OS_PROBER=false, если ее нет. Затем выполните команды: sudo os-prober для проверки обнаружения систем, затем sudo update-grub. Если Windows по-прежнему не появляется, попробуйте вручную добавить запись в файл /etc/grub.d/40_custom.

Создайте запись вида: menuentry «Windows 10» { insmod part_gpt, insmod fat, insmod ntfs, set root=’hdX,gptY’ (где X — номер диска, Y — номер раздела Windows), chainloader /EFI/Microsoft/Boot/bootmgfw.efi, boot }. После изменений выполните sudo update-grub и перезагрузитесь для проверки.