LINUX.ORG.RU

Как правильно добавить загрузку Windows 10 в загрузчик grub Астра Линукс

 


1

1

Здравствуйте. На компьютере установлены две операционные системы, на разных дисках. На первом стоит Windows 10 а на втором Астра Линукс. Необходимо добавить в grub Астра Линукс загрузочную запись Windows 10. Диск с Windows 10 первый, Western Digital он определяется как sda. Диск с Астра Линукс второй, он определяется как sdb, Seagate. В загрузчике Grub загрузочной строки windows нет, устанавливались они по очереди, отключая в биос загрузку того или иного диска.

Настройку делал по инструкции найденной в сети.

sudo nano /etc/grub.d/40_custom

вставил туда

menuentry «Windows 10» { set root=‘(hd0,1)’ search –no-floppy –fs-uuid –set=root D29CE1979CE1767F ntldr /bootmgr boot chainloader +1 }

где D29CE1979CE1767F идентификатор моего диска с windows? определил командой blkid

Диски определил fdisk -l

Диск первый, в таком случае написано что нужно писать hd0,1

Сохранил изменения и применил команду

sudo update-grub

После этого перезагрузился. В меню загрузки строка Windows 10 появилась, но загрузка не происходит, появляется сообщение о том что она невозможна.

Для пояснения ситуации прикладываю ссылки на фото всех действий.

https://ibb.co/7JhqGBCP

https://ibb.co/q3263HjY

https://ibb.co/dsD04G4k

https://ibb.co/3yd3R4tF

https://ibb.co/tTttc4fh

на разных дисках

не надо что бы винда пересекалась с линем даже в грубе, есть всякие f8 f9 f10 f11 f12 которые при старте машины позволяют сделать выбор с какого винта систему загружать.

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 1)

для распознавания и автоматического подключения разделов с виндой и прочими сторонними системами в в груб-меню используется спец.прога обычно os-prober
в астре она есть спробуй подключить https://download.astralinux.ru/astra/stable/orel/repository/pool/main/o/os-prober
возможно надо будет еще докинуть пакет с утилитами ntfs

да и вообще
https://yandex.ru/search/?text=добавление+сторонних+ОС+с+помощью+os-prober+astra+linux

вручную такое делается только для чегото редкого.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 4)

Диск с Windows 10 первый, Western Digital он определяется как sda. Диск с Астра Линукс второй, он определяется как sdb, Seagate

Никогда не принимай это за аксиому. Канонические имена дисков могут поменяться местами в любую перезагрузку.

Диск первый, в таком случае написано что нужно писать hd0,1

Аналогично предыдущему, никогда не угадаешь.

search –no-floppy –fs-uuid –set=root D29CE1979CE1767F

Если search…, то предыдущий ‘set root=…’ не нужен вообще.

идентификатор моего диска с windows?

Диска? Или всё-таки раздела? И которого раздела? Нужен тот, на котором загрузчик винды.

Смотри здесь про ‘загрузку любой виндовс’.

И, на диске с линуксом разметка более чем дурацкая, выбирайся из расширенного раздел, пока ещё возможно.

И, поправь разметку сообщения, никто не будет разбирать твой винигрет.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 2)
Ответ на: комментарий от amd_amd

не надо что бы винда пересекалась с линем даже в грубе

бред собачий. оскоромится ваш пердоликс от того, что появится пункт меню с chainloader’ом, ога.

ОП, поищи, есть ли в твоём дистре os-prober (в 1.5 был, по крайней мере), установи, убедись, что в /etc/default/grub есть строка GRUB_DISABLE_OS_PROBER=false и сделай update-grub. всё.

anonymous
()

Добавляться должно сам, если включен os-probe.

Поведение и настройка аналогично Debian / Ubuntu.

Включите его, перегенерируйте конфиг загрузчика.

Смотрите официальную документацию Astra Linux.

Астра и Windows при этом должны быть установлены в одном режиме работы загрузчика. Обе в UEFI или обе в BIOS режиме иначе работать не будет. Из UEFI загрузчика нельзя вызвать BIOS загрузчик и наоборот.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

устанавливались они по очереди, отключая в биос загрузку того или иного диска.

Ииии… Зачем? Установили бы астру при включенной винде - получили бы автоматически нормальный граб

PPP328 ★★★★★
()

/boot/BСD это адрес для BСD от win7, он выдает то что на фото (в w10 нет /boot/BCD).

В win10 он обычно /EFI/Microsoft/Boot/BСD

Для 10 смотри

https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list

Там несколько вариантов, либо пишешь адрес к efi, либо меняешь адрес BСD на правильный и другие (os-prober).

anonymous
()
Ответ на: комментарий от andytux

Чтобы не «размазать систему» по разным дискам.

Чего? Не выбирайте никак диск в установщике и не будет ничего размазываться. Зато os-prober автоматически нашёл бы раздел и добавил бы сам chainloader с нужным uuid.

Чтобы не угробить всё

Ну так не ставьте галку «форматировать диск».

PPP328 ★★★★★
()

Используйте search файла bootmgr он может быть не на диске с ОС

Зачем вы добавляете root=‘(hd0,1)’ а потом делаете search, который переопределяет root по uuid

В менеджере дисков посмотрите что у вас, винда создает 3 раздела: загрузочный 100Мб, ОС и резервный 700Мб.

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 2)

Большое спасибо. Os-prober установлен. Добавил эту строку, и после этого система нашла windows 10 на /dev/sda1 и в графическом менеджере загрузки появилось нужная строка Windows 10 (on /dev/sda1) и Windows 10 загрузилась.

Но интересно, почему это не получается сделать вручную?

Вручную я делал так:

  1. Файл Efi/Microsoft/Boot/bootmgfw.efi я заранее создал в нужной системе Windows

командой

bcdboot C:\Windows /s C: /f uefi

а перед этим присвоил букву H скрытому загрузочному разделу Windows

select volume 1 assign letter=H

  1. отредактировал

sudo nano /etc/grub.d/40_custom

добавил туда как указано в руководствах строки

menuentry ‘Windows 10’ { insmod ntfs insmod part_msdos insmod chain search –fs-uuid –no-floppy –set=root D29CE1979CE1767F chainloader (${root})/Efi/Microsoft/Boot/bootmgfw.efi }

сохранил

сделал

sudo upgrade-grub

Но при этом процессе появилось сообщение что синтаксическая ошибка

И при перезагрузке и заходе в выбранный параметр загрузки Windows 10 появляется сообшение

invalid signature

not assignment

а если сделать так

menuentry ‘Windows 10’ { insmod ntfs insmod part_msdos insmod chain search –fs-uuid –no-floppy –set=root 9E44E01944DFF1CF chainloader Efi/Microsoft/Boot/bootmgfw.efi }

sudo upgrade-grub

то никаких ошибок не происходит, но при загрузке windows пишет что неверный файл или не может найти файл

То есть загрузчик не находит файл хотя он есть на диске C:\Efi\Microsoft\Boot\

Идентификатор диска sda1 тоже изменил на 9E44E01944DFF1CF

В чем может быть проблема или ошибка? Так или иначе загрузчик работает так как мне нужно, но хотелось бы досконально разобраться. Заранее спасибо, с уважением.

sokolov2025
() автор топика
Ответ на: комментарий от sokolov2025

Файл Efi/Microsoft/Boot/bootmgfw.efi я заранее создал…

Неправильно. Всё остальное, тем более неверно. Поэтому и не получается.

Ещё раз. Виндовс у тебя установлена в легаси-режиме, имя загрузчика bootmgr. Линукс у тебя установлен в легаси-режиме, соответственно, установлен грубПС. Он загружает системы только в легаси-режиме. Тебе впринципе нечем грузить bootmgfw.efi. Да и незачем, ты никак не загрузишь винду в ЕФИ-режиме, это один из её капризов.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от anonymous

/boot/BСD это адрес для BСD от win7, он выдает то что на фото (в w10 нет /boot/BCD).

В win10 он обычно /EFI/Microsoft/Boot/BСD

Для 10 смотри

Только вчера установил 10-ку без EFI. Просто версия 1500, не пустой диск, и загрузка в Legacy и интернет отключен, чтобы с регистрацией не парил. Даже загрузочный диск не создал, всё в один раздел.

AZJIO
()
Ответ на: комментарий от sokolov2025

Большое спасибо. Os-prober установлен. Добавил эту строку, и после этого система нашла windows 10 на /dev/sda1 и в графическом менеджере загрузки появилось нужная строка Windows 10 (on /dev/sda1) и Windows 10 загрузилась.

Раз решение найдено, то будьте любезны, поставь в теме соответствующую галочку.

Mischutka ★★★★★
()
Последнее исправление: Mischutka (всего исправлений: 1)
Ответ на: комментарий от Mischutka

Решение, которое в большинстве тем - читайте документацию и причем в большинстве случаев же нет ничего дистрибутивоспецифичного.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от sokolov2025

дай боже что ты уловил высказанные здесь тонкости взаимоотношений MBR и UEFI загрузок, чтобы не встревать в них позжеее :)

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)