Требуется ли rEFInd код в MBR для загрузки windows на Mac?

Я прочитал много сообщений об установке и загрузке Windows на компьютерах Mac. Многие процедуры используют rEFInd для загрузки BIOS установки Windows. Процедуры, кажется, не указывают на установку кода в MBR. Таким образом, либо предположение, что в MBR уже есть код из предыдущей установки, либо rEFInd не требует такого кода для загрузки Windows. Кто-нибудь знает ответ?

4
задан David Anderson
05.04.2023 0:17 Количество просмотров материала 2452
Распечатать страницу

2 ответа

как rEFIt, так и rEFInd поместят копию загрузочного кода syslinux MBR в MBR, если MBR еще не загрузочный и если соответствующий загрузочный код существует в разделе. Тем не менее, boot code должны существует в MBR, хотя она может быть уничтожена средствами секционирования, которые предполагают, что первые 440 байт MBR на GPT-диске должны быть обнулены, как это обычно бывает для EFI-загрузочных GPT-дисков.

это поднимает еще один вопрос: Windows 8 (и предположительно Windows 10) довольно хорошо устанавливается в режиме EFI на многих компьютерах Mac. При такой установке код загрузки в режиме BIOS не требуется ни в MBR, ни в разделах Windows. Установка в режиме EFI, вероятно, будет более безопасной, потому что нет необходимости в опасной гибридной MBR, которую Mac используют для двойной загрузки OS X и более ранних версий Windows. Загвоздка этого типа установки заключается в том, что Дисковая утилита и некоторые другие инструменты OS X создадут гибридную MBR, если вы попытаетесь подготовить диск для Windows-например, путем настройки раздела FAT. Когда установщик Windows, загруженный в режиме EFI, увидит гибридную MBR, он пожалуется, что не может установить на MBR-диск. Обойти эту проблему можно с помощью любого количества инструментов (например,gdisk: типа x, потом n, потом w), но это может быть неприятно и запутанным, если вы не понимаете сути проблемы или как исправить ее.

2
отвечен Rod Smith 2023-04-06 08:05

когда CSM используется, одним из вариантов является загрузка загрузочного кода MBR как BIOS.

логика: CSM должен действовать точно так же, как BIOS, чтобы быть совместимым. ОС поместит свой необходимый загрузочный код в MBR и загрузочные сектора разделов.

но это для загрузки на основе CSM для начала. Имейте в виду, что rEFInd сам по себе является вариантом загрузки EFI. Из-за этого rEFInd будет загружен (U)EFI как стандартный двоичный исполняемый файл EFI (PE 32-или 64-бит, в зависимости от EFI), как и любой загрузчик для операционной системы EFI. Когда меню rEFInd отображено, никакой CSM еще не был загружен. Поскольку rEFInd загружен как исполняемый файл EFI, нет никакой потребности в CSM.

С EFI booted rEFInd в качестве отправной точки, rEFInd сам будет продолжать искать загрузочные параметры, т. е. разделы, другие загрузчики EFI или ядра. Для BIOS-основанных операционных систем rEFInd определит, является ли опция вообще загрузочной точно как CSM будет, проверив MBR (гибридный) раздел с загрузочным кодом из вашей операционной системы на основе BIOS. Если он отсутствует или currupt, ОС не будет загружаться. (причина может быть, что-то пошло не так при установке операционной системы в раздел MBR.)

так короткий ответ: нет. только при загрузке диск (не раздел!) от CSM загрузочный код MBR будет загружен. rEFInd, запущенный как загрузчик EFI, не требуется или даже возможность запуска MBR.

представьте, что rEFInd запустит MBR (и для этого давайте просто предположим, что он также может заставить UEFI загрузить CSM): если есть недостаток в загрузочном коде и/или секционировании (например, нет раздела, установленного как активный) или если выбранная опция загрузки (через rEFInd) не является той, которая отмечена как активный раздел в таблице разделов MBR, загрузочный код MBR не будет загружать выбранный раздел, отображая всю цель rEFInd меню выбора загрузки пусто.

С диспетчер повторной загрузки: Использование драйверов EFI, раздел выбор драйвера EFI:

NTFS - Samuel Liao предоставил этот драйвер, который использует инфраструктуру rEFIt/rEFInd driver. Обратите внимание, что этот драйвер не требуется для загрузки Windows с rEFInd, так как Windows хранит свой загрузчик EFI на (FAT) ESP, и процесс загрузки BIOS (обычно используется при двойной загрузке на Mac) полагается только на загрузочном секторе раздела, которое прочитано без преимущества этого водителя.

это явно означает, что rEFInd будет просто загружать загрузочный сектор соответствующего раздела MBR (хотя он должен быть гибридным разделом), тем самым намеренно пропуская MBR.

также, UEFI (EFI 1.X на Mac) обеспечивает средства "наследие" загрузки выбранного раздела, которые, при выборе/инструкции, автоматически загружает ВСМ. Не все машины UEFI имеют эта возможность. Если он отсутствует, rEFInd не удается загрузить операционную систему на основе BIOS из раздела MBR.

С OSDev Wiki, раздел UEFI класс 0-3 и CSM:

ПК классифицированы как класс 0, 1, 2, или 3 UEFI. Машина класса 0-это устаревшая система с устаревшим BIOS, т. е. вообще не система UEFI.

машина класса 1-это система UEFI, которая работает исключительно в модуле поддержки совместимости (CSM) режим. ВСМ-это спецификация для как прошивки UEFI можно эмулировать BIOS прежних версий. Прошивка UEFI в режиме CSM загружает устаревшие загрузчики. Система UEFI класса 1 может вообще не объявлять о поддержке UEFI, так как она не доступна загрузчику. Это только UEFI" внутри " BIOS.

машина класса 2-это система UEFI, которая может запускать приложения UEFI, но также включает возможность запуска в режиме CSM. большинство самомоднейших Пк машины типа 2 UEFI. иногда выбор для запуска приложений UEFI против CSM является одним или другим параметром в конфигурации BIOS, и в других случаях BIOS решит, что использовать после выбора загрузочного устройства и проверки, имеет ли оно загрузчик наследия или приложение UEFI.

машина класса 3 является системой UEFI, которая не поддерживает CSM. Машины класса 3 UEFI только выполняют приложения UEFI и не реализуют CSM для обратной совместимости с устаревшими загрузчиками.

С в rEFInd Boot Manager: использование rEFInd раздел Загрузка Устаревших ОС:

чтобы помочь, когда вам нужно загрузиться в режиме BIOS, rEFInd поддерживает загрузку устаревших ОС; однако детали различаются между Mac и UEFI ПК. Кроме того, имейте в виду, что на некоторых компьютерах UEFI отсутствует модуль поддержки совместимости (CSM), необходимый для работы этой функции. Это справедливо даже для некоторых компьютеров, которые могут изначально загружать операционные системы на основе BIOS. Это может произойти, потому что прошивка в основном BIOS с реализацией UEFI, прикрепленной поверх него;такие системы полагаться на родной BIOS для загрузки, и не может предоставить приложениям EFI доступ к функциям BIOS через механизмы CSM. если у вас есть такой компьютер и вы включаете опцию загрузки устаревших версий в файле конфигурации, rEFInd уведомляет вас о невозможности представить устаревшие параметры загрузки при запуске.

если вы заинтересованы, если вы на самом деле есть CSM записи в меню загрузки EFI - не rEFInd, но реальные (U)EFI boot selections – вы можете попробовать efibootmgr -v на Linux. Это будет работать только тогда, когда Linux сам загружается как (U)EFI операционная система. Когда Linux загружается как выбор загрузки CSM, у него не будет доступа к базовой реализации EFI. Только в Linux нет большой разницы в разбиении на разделы, потому что Linux не такой придирчивый, как Windows, и может с радостью использовать разбиение GPT в режиме BIOS.

# efibootmgr -v
Timeout: 2 seconds
BootOrder: 0000,0004,0005
Boot0000* Windows Boot Manager  HD(2,GPT,1bf25484-f461-4892-a640-a24136b1d45f,0xe1800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................
Boot0004* Hard Drive    BBS(HD,,0x0)P0: INTEL SSDSC2CT060A3       .
Boot0005* UEFI: SanDisk Extreme 0001    PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(4,0)/HD(1,MBR,0x97,0xb4,0x298c)/File(\EFI\BOOT\BOOTX64.EFI)

In данный пример существует только записи UEFI.

# efibootmgr -v
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0003,0002,0000,0004
Boot0000* CD/DVD Drive  BIOS(3,0,00)
Boot0001* Hard Drive    HD(2,0,00)
Boot0002* Fedora        HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\fedora\grubx64.efi)
Boot0003* opensuse      HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\opensuse\grubx64.efi)
Boot0004* Hard Drive    BIOS(2,0,00)P0: ST1500DM003-9YN16G

в этом примере Boot0000 и Boot0004 являются CSM выбор (обратите внимание на BIOS path) и UEFI загрузит эти записи с загруженным CSM. Но знайте, что это-все еще UEFI, который вызывает загрузку выбранной записи!

когда rEFInd должен использовать механизмы CSM для загрузки устаревших операционных систем с MBR (гибридных) разделов, я могу только предположить, что это очень похоже на постоянную загрузку UEFI вступления. Возможно, rEFInd использует одноразовые загрузочные записи (например,BootNext) для этой задачи...

1
отвечен luttztfz 2023-04-06 10:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх