LiveUSB
Warning: There are known bugs in both ReactOS kernel and USB drivers, so LiveUSB boot may intermittently crash or not work at all.
Using the latest nightly builds is a prerequisite! (0.4.15-dev and up)
Contents
Introduction
New USB stack by Vadim Galyant was enabled in build 0.4.13-dev-942-g88cf5b0. After storage stack replacement and massive memory management work (as of build 0.4.15-dev-1796-gb0c143c), LiveUSB started to work as intended. Previously only RAMDISK method was recommended. If regular LiveUSB does not work for you after 2-3 tries with different USB ports, you can try RAMDISK method.
Burning ReactOS to a USB drive
NOTE: To install ReactOS from USB drive, download a BootCD, but first make sure LiveCD boots for you. To run ReactOS only from USB drive, download LiveCD. You cannot install ReactOS yet from a LiveCD.
Bootable USB from an ISO
This is an ordinary way to prepare USB, feel free to follow any guide for Windows.
- On Windows Rufus tool can be used for that
- On Linux UNetBootin can be used
- ReactOS feature: the iso will work even if written in a raw
dd
mode
Ramdisk (aka USB-RAM) boot
The basic idea of this method is to dump the whole unchanged iso file into memory first (make a ramdisk) and then boot from it without touching the original media.
For this method, you should prepare a flash drive first. It should have a FAT32 filesystem and the Multiboot specification-capable bootloader should be installed on it. For example, you can use syslinux. Here is how to install it (for syslinux version 6.x):
On Linux
Plug in the flash drive and leave it unmounted. Then run these commands:
sudo mkfs.vfat /dev/sdb1 sudo syslinux --install /dev/sdb1
Note: here, /dev/sdb1
is a partition on a flash drive
On Windows
Use Rufus tool:
- Select your flash drive
- Click "Show advanced drive properties"
- Boot selection:
Syslinux 6.x
- Partition scheme:
MBR
, File system:FAT32
- Format the drive using selected options above
- Click "Yes" if you got network to download the "ldlinux.c32" or download it manually from the net
Next common steps for both platforms
At this point, you should have a bootloader installed onto the drive. Now it's time to copy some files onto it.
Notice: you may download all the required files, except iso images, in a zip-archive. It uses freeldr.sys from the fb4591c commit. Move these to the flash Drive.
Manual way
- Now you need to copy
mboot.c32
andlibcom32.c32
syslinux libraries to the root - Then copy a freeldr.sys bootloader from ReactOS 0.4.13 or higher
- Now you need to write some configuration files. First,
syslinux.cfg
:
DEFAULT ReactOS LABEL ReactOS KERNEL mboot.c32 APPEND /freeldr.sys
- Then
freeldr.ini
:
[FREELOADER] DefaultOS=BootCD_Debug TimeOut=5 [Display] TitleText=ReactOS LiveUSB StatusBarColor=Cyan StatusBarTextColor=Black BackdropTextColor=White BackdropColor=Blue BackdropFillStyle=Medium TitleBoxTextColor=White TitleBoxColor=Red MessageBoxTextColor=White MessageBoxColor=Blue MenuTextColor=Gray MenuColor=Black TextColor=Gray SelectedTextColor=Black SelectedColor=Gray ShowTime=No MenuBox=No CenterMenu=No MinimalUI=Yes TimeText=Seconds until highlighted choice will be started automatically: [Operating Systems] LiveCD="LiveCD" LiveCD_Debug="LiveCD (Debug)" LiveCD_Screen="LiveCD (Screen)" BootCD="BootCD" BootCD_Debug="BootCD (Debug)" BootCD_Screen="BootCD (Screen)" [LiveCD] BootType=Windows2003 SystemPath=ramdisk(0)\reactos Options=/MININT /RDPATH=livecd.iso /RDEXPORTASCD [LiveCD_Debug] BootType=Windows2003 SystemPath=ramdisk(0)\reactos Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /MININT /RDPATH=livecd.iso /RDEXPORTASCD [LiveCD_Screen] BootType=Windows2003 SystemPath=ramdisk(0)\reactos Options=/DEBUG /DEBUGPORT=SCREEN /SOS /MININT /RDPATH=livecd.iso /RDEXPORTASCD [BootCD] BootType=ReactOSSetup SystemPath=ramdisk(0)\ Options=/RDPATH=bootcd.iso /RDEXPORTASCD [BootCD_Debug] BootType=ReactOSSetup SystemPath=ramdisk(0)\ Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDPATH=bootcd.iso /RDEXPORTASCD [BootCD_Screen] BootType=ReactOSSetup SystemPath=ramdisk(0)\ Options=/DEBUG /DEBUGPORT=SCREEN /SOS /RDPATH=bootcd.iso /RDEXPORTASCD
Note: for detailed explanation, see Boot options
- Now place
bootcd.iso
and/orlivecd.iso
in the root of the disk (or whatever path configured infreeldr.ini
) - Ready to boot
Sending bug reports
If it doesn't work, it could be either due to a bug in the kernel, USB drivers or in another place. To debug it, you can try to boot ReactOS from USB drive again with Debug (Screen)
option at the FreeLoader. At the time you encounter a debug prompt (starting with kdb:>
), type bt
and take the photo of backtrace, then you can report it in JIRA.
See Debugging and File Bugs for more details.
References
- ReactOS Live-in-RAM USB-stick creation tutorial https://youtu.be/eancDwmWyCw
- ReactOS LiveUSB Guide https://www.youtube.com/watch?v=pw1CGQR_dvQ