2

Изменить: решено, см. Ниже.

Я только что установил arch linux на свой ранее единственный ноутбук с Windows 10. У меня есть один SSD для Arch Linux и один для Windows. Я хочу использовать rEFInd в качестве моего загрузчика, который отлично работает для Arch Linux. Я попытался настроить пункт меню для окон после этого урока. Проблема в том, что у меня нет \EFI\tools\shell.efi или fs0:\EFI\tools\launch_windows.nsh . Я догадываюсь, что, поскольку у меня есть два ssds, и я ранее только использовал Windows One , у меня есть два ESP, поэтому мои файлы .efi windows не существуют в моем arch linux ESP. Это точно? Я пробовал копаться в разделах на моем диске с Windows, но я не вижу там никаких файлов .efi . Возможно ли, что Windows загружалась с использованием BIOS и не создавала эти файлы?

Редактировать: мне пришлось переустановить окна в режиме UEFI. У меня было это в унаследованном режиме.

3 ответа3

2

rEFInd должен автоматически определить загрузчик Windows EFI и создать для него пункт меню. Если этого не происходит, то я предполагаю, что Windows установлена на MBR-диск в режиме BIOS/CSM/legacy, а не на GPT-диск в режиме EFI/UEFI. Вы можете проверить типы таблиц разделов ваших дисков следующим образом (как root):

parted /dev/sda print | grep Table

Измените /dev/sda для каждого из ваших дисков (они, вероятно, /dev/sda и /dev/sdb , но могут быть чем-то более экзотическим). parted сообщает GPT дисков в gpt но использует msdos для дисков MBR. Если моя догадка верна, то диск Linux, вероятно, будет отображаться как GPT, а диск Windows - как MBR.

Если я прав, вы можете попробовать отредактировать refind.conf (обычно в /boot/efi/EFI/refind или /boot/EFI/refind): раскомментируйте строку scanfor и добавьте hdbios в параметры. Это скажет rEFInd активировать поддержку загрузки ОС в режиме BIOS. При загрузке вы, вероятно, получите один или два серых значка в форме ромба, один из которых должен загружать Windows. (Если вы получаете только один значок, и он не загружает Windows, попробуйте также раскомментировать параметр uefi_deep_legacy_scan в refind.conf .) Если вы хотите скрыть нефункциональную загрузочную запись Windows, вы можете сделать это с помощью dont_scan_volumes , предполагая, что вы можете найти уникальную часть описания параметра загрузки, чтобы скрыть ее.

В качестве альтернативы всему этому, или если поддержка rEFInd в режиме BIOS не работает на вашем компьютере, вы можете преобразовать Windows для загрузки в режиме EFI, а не в режиме BIOS. Это более рискованно, чем добавление поддержки режима BIOS в конфигурацию rEFInd, но оно может загрузиться немного быстрее и позволит Windows получить доступ к функциям EFI. Смотрите эту страницу для получения инструкций о том, как сделать это изменение.

Если я ошибаюсь в своем предположении, что Windows загружается в режиме BIOS, значит что-то не так - возможно, поврежденная файловая система на ESP, которая содержит загрузчик Windows, или даже разрушенный загрузчик Windows. Необходимый ремонт будет зависеть от точного характера проблемы. В этом случае, пожалуйста, запустите скрипт Boot Info. Это создаст файл с именем RESULTS.txt . Опубликуйте этот файл на сайте pastebin и опубликуйте URL вашего документа здесь.

1

Я думаю, что файл \EFI\tools\launch_windows.nsh - это всего лишь пример скрипта, который запускает настоящий загрузчик Windows, который должен находиться где-то в каталоге EFI\Microsoft .

Файл \EFI\tools\shell.efi является оболочкой UEFI, вы можете получить его здесь. Хотя, если вы просто хотите запустить загрузчик Windows, вам не нужна оболочка для этого. Загрузчик Windows может быть запущен непосредственно как любое обычное приложение UEFI.

Попробуйте добавить что-то вроде:

menuentry Windows {
    loader \EFI\Microsoft\Boot\bootmgfw.efi
}

к вашей новой конфигурации.

0

После установки Linux с загрузчиком EFI в системе, где Windows была установлена в устаревшем режиме BIOS, я не смог загрузить Windows, только Linux. Ответ @Rod Smith был великолепен и помог мне разобраться с кучей вещей. Но даже после установки rEFInd и настройки параметров конфигурации я не смог загрузить Windows. Я преобразовал диск из MBR в GPT, но это не сработало. Я пытался переключить материнскую плату между UEFI и Legacy - все еще ничего. Мне фактически пришлось скопировать загрузчик EFI для Windows из Windows\Boot\EFI в ESP. И я предполагаю, что @Marcel мог бы сделать то же самое вместо переустановки Windows - хотя это, безусловно, вариант.

Есть отличная публикация Medium, которая объясняет весь процесс: https://medium.com/@hetmansoftware/how-to-restore-the-structure-of-deleted-efi-partitions-in-windows-653a68b5c09f

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .