LINUX.ORG.RU

Не получается загрузить Windows из grub

 , ,


0

2

Уважаемые коллеги, помогите решить следующую проблему. Проинсталлировал Linux Manjaro. Из GRUB не грузится Windows с ошибкой:

file /efi/Microsoft/Boot/bootmgfw.efi not found.

Что интересно, он существует:

sudo os-prober
/dev/nvme1n1p2@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

И команда upgrade-grub находит его:

sudo update-grub
Windows Boot Manager auf /dev/nvme1n1p2@/efi/Microsoft/Boot/bootmgfw.efi gefunden

Дальше я заглянул в директорию

sudo ls -la /boot/efi/EFI/

и не увидел там директории Microsoft.

Дальше я замонтировал в tst /dev/nvme1n1p2 и вот тут я смог увидеть bootmgfw.efi :

ls EFI/Microsoft/Boot/bootmgfw.efi
EFI/Microsoft/Boot/bootmgfw.efi

Попробовал внести новый раздел в grub по инструкции https://wiki.archlinux.org/title/GRUB#Chainloading_a_unified_kernel_image К сожалению следующие шаги не привели меня к успеху:

grub-probe --target=fs_uuid EFI/Microsoft/Boot/bootmgfw.efi
grub-probe: Warnung: Platte existiert nicht, ersatzweise wird Partition des Geräts /dev/nvme1n1p2 verwendet.
grub-probe: Warnung: Platte existiert nicht, ersatzweise wird Partition des Geräts /dev/nvme1n1p2 verwendet.
grub-probe: Warnung: Platte existiert nicht, ersatzweise wird Partition des Geräts /dev/nvme1n1p2 verwendet.
grub-probe: Fehler: Laufwerk »hostdisk//dev/nvme1n1p2« wurde nicht gefunden..

Ладно, попробуем скопировать файл на место:

sudo cp -r ~/tst/EFI/Microsoft/ /boot/efi/EFI/
sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
18B6-D501

Но я рано обрадовалсяs:

sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
grub-probe: Warnung: Unbekannter Gerätetyp nvme0n1

Вот теперь не знаю, что дальше делать. Может кто сталкивался с данной проблемой?


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

Не, спасибо, попробовал, тогда могу загружать Windows, но в Linux получаю ошибку

Failed to mount /home
Dependency failed for local file systems.

CrownRU
() автор топика

Хорошо-бы, чтобы твои предыдущие бездумные действия не усугубили ситуацию.

efi/Microsoft/Boot/bootmgfw.efi
EFI/Microsoft/Boot/bootmgfw.efi

Видишь разницу? Вот над этим подумай.

Покажи свой grub.cfg.

andytux ★★★★★
()

На удачу, возьми отсюда код для загрузки «любой виндовс».

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

Подправь конфиг, в отличии от груба там он вменяемый допиши нужные опции загрузки если в шаблоне для твоего дистра их нет, опции в том же грубе можешь посмотреть init и options

menuentry "Arch Linux" {
    icon     /EFI/refind/icons/os_arch.png
    volume   "Arch Linux"
    loader   /boot/vmlinuz-linux
    initrd   /boot/initramfs-linux.img
    options  "root=PARTUUID=0079-4c40-b240-abfaf286 rw add_efi_memmap"
    submenuentry "Boot using fallback initramfs" {
        initrd /boot/initramfs-linux-fallback.img
    }
    submenuentry "Boot to terminal" {
        add_options "systemd.unit=multi-user.target"
    }
    disabled
}

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

Вот. Достаточно части или весь сюда закинуть?

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (auf /dev/nvme1n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-8070-7649' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 8070-7649
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

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

Спасибо большое за помощь. Хотелось бы понять, какие косяки с grub, прежде чем хвататься за другой загрузчик.

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

«chainloader /efi/Microsoft/Boot/bootmgfw.efi» - это груб, а ему регистр важен. А вот как именно называется у ТС, с эти ему разбираться самому.

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

Ты судя по всему создал два ефи раздела на разных дисках Ефи раздел твоего линукса

/dev/nvme0n1p5 on /boot/efi type vfat

а винда на /dev/nvme1n1p2

Пропиши в конфиг груба путь до загрузочного файла винды на диске nvme1n1p2 с правильным путем

[code]menuentry ‘Windows Boot Manager (auf /dev/nvme1n1p2)’ –class windows –class os $menuentry_id_option ‘osprober-efi-8070-7649’ { insmod part_gpt insmod fat search –no-floppy –fs-uuid –set=root 8070-7649 chainloader /EFI/Microsoft/Boot/bootmgfw.efi }

anonymous
()
Ответ на: комментарий от anonymous
menuentry ‘Windows Boot Manager (auf /dev/nvme1n1p2)’ –class windows –class os $menuentry_id_option ‘osprober-efi-8070-7649’ { insmod part_gpt insmod fat search –no-floppy –fs-uuid –set=root 8070-7649 chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
anonymous
()
Ответ на: комментарий от anonymous

Спасибо, сейчас попробую. Файл нашел.

ls -la /mnt/test/EFI/Microsoft/Boot/bootmgfw.efi                                                                                                                      
-rwxr-xr-x 1 root root 2022256 15. Jan 21:15 /mnt/test/EFI/Microsoft/Boot/bootmgfw.efi

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

Я дико извиняюсь. Сейчас не получается попробовать по семейным причинам. Завтра вечером отпишусь, что вышло. Огромное спасибо за помощь!

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

Еще раз спасибо. Windows загружается. Теперь Linuх не грузится :)

Failed to mount /home
Dependency failed for local file systems.

Вручную монтируется:

mount /dev/nvme0n1p4 /home
затем загрузка идет нормально.

CrownRU
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.