User:Illen/UEFI Boot

From ReactOS Wiki
Jump to: navigation, search

This is about booting ReactOS from UEFI firmware using 3rd party UEFI Windows loaders. Please note that these methods are solely for testing and are unlikely to work at all.

Quibble

Quibble is an open source UEFI Windows loader, it supports Windows XP and later and recently became capable of booting ReactOS as well. It still is a WIP project and I had it working properly only in QEMU. To boot ReactOS with Quibble on virtual machines or UEFI Class 3 hardware, please use this binary, it contains a small change necessary for booting ReactOS on systems without a Compatibility Support Module (CSM). Create a FAT32 volume on virtual drive, put bootia32.efi (if you use official release binary, rename quibble.efi to bootia32.efi) in FAT32_volume\EFI\Boot\, take freeldr.ini and font.ttf from Quibble release package and put it along bootia32.efi. Download latest LiveCD and extract reactos and Profiles folders onto root of FAT32 volume, and finally adjust freeldr.ini accordingly (you can take an example from below).

[FREELOADER]
TimeOut=10
DefaultOS=ReactOS

[Operating Systems]
ReactOS="ReactOS"
ReactOS_Debug="ReactOS (Debug)"

[ReactOS]
SystemPath=multi(0)disk(0)rdisk(0)partition(1)\ReactOS
Options=/NOGUIBOOT /MININT

[ReactOS_Debug]
SystemPath=multi(0)disk(0)rdisk(0)partition(1)\ReactOS
Options=/NOGUIBOOT /DEBUG /DEBUGPORT=COM1/ BAUDRATE=115200 /MININT

Now if everything goes well, Quibble loader should run and fully load ReactOS, and kernel should partially boot. In QEMU, download IA-32 ovmf binaries first and then this config should do it qemu-system-i386 -m 128M -bios ovmf.fd -hda <your_virtualdrive> -serial file:CON -vga qxl. Other VMs should be as simple as enabling EFI in VM config.

Longhorn winload

winload.efi v. 5472.5

Longhorn 6.0.5472.5 was one of the last builds to include 32 bit x86 winload for EFI systems (before Windows 8). It was still able to load Windows XP/2003 and it can load ReactOS as well. With winload ReactOS is able to boot to desktop, however PS/2 and USB input doesn't seem to work (unlike on XP/2003). To boot with winload, create a FAT32 volume on virtual drive and then put the efi folder (which contains Windows Boot Manager, BCD and other related files) from any Windows installation DVD that contains 32 bit bootmgr.efi (can be this Longhorn version, as well as Windows 8.x or 10) and put it on root. Then extract reactos and profiles folders from the LiveCD onto root and put winload.efi from Longhorn 6.0.5472.5 ISO (you can find it in ISO\install.wim\Windows\system32\winload.efi) in FAT32_volume\reactos\system32\winload.efi. Now, replace the BCD (in FAT32_volume\efi\microsoft\boot\BCD) with this one, it is configured to boot ReactOS from the boot volume. If everything went well, you should be able to access Windows Boot Manager. Press enter, then press F8 on the ReactOS entry, and choose "Disable Driver Signature Enforcement" and then you should be able to boot to desktop. If you get 0x4B bugcheck or no display at all, you might need to install a 3rd party display driver that is supported by your hardware/VM first.

UEFI Boot on AMD64

Quibble

Similar as on x86. Use this AMD64 binaryif you boot ReactOS in VMs or UEFI Class 3 hardware. Put bootx64.efi (if you use official release binary, rename quibble.efi to bootx64.efi) in FAT32_volume\EFI\Boot\, take freeldr.ini and font.ttf from Quibble release package and put it along bootx64.efi. You will also need to use ReactOS files from AMD64 LiveCD and ovmf AMD64 binaries for QEMU.

Longhorn winload

winload.efi v. 6.0.6001.16497

Longhorn Server 6.0.6001.16497 was one of the last builds to include AMD64 winload capable of booting NT 5.x. ReactOS however cannot boot with AMD64 winload out of the box yet. The problem is that AMD64 winload builds (on contrary to x86 ones) expect OEMHAL value in the registry to be present, and that value must be a name of a valid .fon font. ReactOS cannot include .fon fonts yet, as they still cause issues with font rendering, so they are disabled by default. To prepare ReactOS for booting with AMD64 winload, you need to uncomment this and this. Now build a LiveCD and extract reactos and profiles folders from it onto root of FAT32 volume. Then extract the efi folder from any Windows x64 installation DVD that is Vista+ (can be anything from Vista to Win11) onto root of FAT32 volume, and replace the BCD (in FAT32_volume\efi\microsoft\boot\BCD) with this one, and finally put winload.efi from Longhorn 6.0.6001.16497 ISO (you can find it in ISO\install.wim\Windows\system32\winload.efi) in FAT32_volume\reactos\system32\winload.efi. If everything went well, you should be able to access Windows Boot Manager. Press enter, then pres F8 on the ReactOS entry, and choose "Disable Driver Signature Enforcement" and then you should see the "Starting Windows Vista" string and kernel should print something in debugger.

winload.efi v. 6.0.6000.16386

Alternatively, winload.efi from Vista x64 RTM release could be used. However Vista includes the older version that has much worse compatibility with modern UEFI hardware than the one from Longhorn Server 6.0.6001.16497.