Windows не может загрузиться в устаревшем или UEFI
Поэтому я изменил режим загрузки в моем BIOS с UEFI на Legacy для совершенно не связанного проекта (дистрибутив Linux на моем USB). Теперь я хочу вернуться к использованию Windows на своем внутреннем жестком диске, однако при загрузке в UEFI я получаю сообщение об ошибке "Загрузочный носитель не найден", а при загрузке в устаревшем режиме я получаю только варианты восстановления в Windows. Как я могу это исправить?
1 ответ
Прежде всего, вы должны знать, что вы не можете просто выключить и включить модуль поддержки совместимости (CSM; компонент прошивки, который обеспечивает "устаревшую" поддержку загрузки) и ожидать загрузки установленной ОС в любом режиме. Для загрузки в режиме EFI в ОС должен быть установлен загрузчик в режиме EFI; и для загрузки в режиме BIOS ОС должна иметь установленный загрузчик в режиме BIOS. В большинстве установок ОС на жесткий диск помещается только один загрузчик для режима BIOS или для режима EFI, но не два. Что еще хуже, Windows довольно тесно связывает свой режим загрузки с типом таблицы разделов - для загрузки в режиме EFI диск должен использовать таблицу разделов GUID (GPT), а для загрузки в режиме BIOS диск должен использовать мастер Таблица разделов загрузочной записи (MBR). Есть некоторые способы обойти эти ограничения, но они неудобны, и вы почти наверняка не настроены их использовать. Похоже, ваш компьютер загружал Windows в режиме EFI, поэтому ваша цель должна состоять в том, чтобы снова загрузить его в режиме EFI. (Между прочим, большинство дистрибутивов Linux в настоящее время также поддерживают загрузку в режиме EFI, поэтому включение CSM может и не требоваться. Однако это приводит к длинному отступлению, поэтому я не буду больше говорить по этому вопросу.)
Тем не менее, проблема, которую вы описываете, не должна была произойти. Я думаю, что ваша прошивка глючит и делает одну из двух вещей:
- Удалена ваша загрузочная запись Windows. Для загрузки в режиме EFI EFI поддерживает список загрузочных записей в NVRAM. Возможно, что когда вы переключились в BIOS/CSM/ устаревший режим, ваша прошивка удалила запись в режиме EFI для Windows. Если это так, то с этой записью ваш компьютер больше не может загружать Windows в режиме EFI. Решением этой проблемы является воссоздание этой загрузочной записи.
- Изменен порядок загрузки. Один компьютер может иметь несколько загрузочных записей NVRAM, поэтому порядок загрузки также сохраняется в NVRAM. Важно отметить, что эти записи могут включать как загрузочные записи в режиме BIOS, так и в режиме EFI. Возможно, ваша прошивка переупорядочила эти записи, поместив запись в режиме BIOS вверху; и, несмотря на то, что вы отключили поддержку режима BIOS, компьютер все еще пытается загрузиться с использованием этой записи и не работает.
Both these problems can be fixed in Windows, and the second may be fixable in your firmware setup utility, but details vary. As that's a relatively easy fix, though, I recommend you poke around in the setup utility for a way to adjust the boot order. The Windows entry is called "Windows Boot Manager." Be sure it's first in the boot order list. You should also review other settings; enabling your CSM may have automatically toggled something else that you need to switch back. Unfortunately, such details tend to be highly machine-specific, so you may need to ask on a forum dedicated to your brand of computer or motherboard.
If that fails, then there's probably a way to fix this with a Windows emergency disk; however, I'm not very familiar with such tools, so I can't tell you how to do it. I can, however, suggest a workaround that should get you booting temporarily and use Windows' regular tools to fix the problem:
- Disable Secure Boot on your computer. Details vary from one system to another; but see this page of mine for some examples of how to do it. (You can re-enable Secure Boot when you're done.) Note that not all computers support Secure Boot, but almost everything that shipped with Windows 8 and later does.
- Загрузите флэш-накопитель USB или CD-R версию моего загрузочного менеджера rEFInd. Download links for both types of media are on that page.
- Prepare a bootable medium from the rEFInd image you download.
- Boot using the rEFInd medium. It should detect your Windows installation and enable you to boot it.
- In Windows, open an Administrator Command Prompt window and type
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
, This should create a new Windows boot entry and make it the default.
When you reboot, the computer should boot back to Windows. If it doesn't, chances are you've overlooked something in your firmware, so triple-check its settings.
Once you've got Windows booting again, I recommend you re-enable Secure Boot, if you had to disable it to follow my suggested procedure.
EDIT: Upon seeing your Boot Repair output, it appears that your original Windows installation was in BIOS/CSM/legacy mode, not in EFI/UEFI mode, as I'd been led to believe by your comment about switching from UEFI-mode to BIOS-mode booting to boot Linux on a USB drive. This fact changes everything, and you should ignore most of my answer prior to this edit. (I'm leaving it in place as a record of our discussion so far, and because it includes information on the perils of switching between boot modes.)
Instead of trying to get EFI-mode booting of Windows working (which would be very difficult), I recommend you re-enable the CSM ("legacy" boot support) in your firmware and fix the Windows boot by using Windows tools. I'm not an expert on this process, so I can't help much. I don't know what caused the Windows boot to fail, but the repair process is going to be very Windows-specific and follow the pattern for older (most pre-2012) Windows installations, not newer EFI-mode installations.