LiveUSB

From ReactOS Wiki
Jump to: navigation, search

Icon speedy deletion.png Warning: There are known bugs in both ReactOS kernel and USB drivers, so LiveUSB boot may intermittently crash or not work at all. Using latest 0.4.15 nightly builds is a prerequisite!


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.

  • Now you need to copy mboot.c32 and libcom32.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/or livecd.iso in the root of the disk (or whatever path configured in freeldr.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