Testing on a Real (Non-Virtual) System

Hopefully you now have a set of files you can use for testing MiniXP. I recommend that you test this project in a virtual environment such as QEMU - if option 2 or 3 was enabled in the Finish script, the project should automatically be tested on completion of the build.

If you want to test the project on a real system you will have to do some of the work yourself. Although it should be possible to script the installation from within the WinBuilder project, I am unwilling to do so due to the risk of data loss - there are simply too many variables involved in a real installation.

There are two options that can be used for testing on a real system -

I would personally recommend that you test booting from a disk image file. Although you will have to manually install the Grub4dos boot loader to use this method, it is in my opinion less complicated than installing the project to a hard disk partition.

There are reports that MiniXP does not support AHCI (Advance Host Controller Interface). I have not been able to confirm this, however I recommend that you turn on IDE emulation in the BIOS settings - this option might be labelled as COMPATIBILITY or ACPI.

The following sections are covered in this page -


Boot from a Disk image

Use any of the options in the Finish script to create the hard disk image file minixp.img - preferably option 3 as this will test the build to ensure it works in a virtual environment and install the WinVBlock Virtual Disk Driver if it was not selected earlier.

Assuming that the WinVBlock script was enabled (or option 3 was selected in the Finish script), you should have a working RAM bootable disk image. To test on a real system you will need to boot the disk image using the Grub4dos boot loader. Installing Grub4dos is beyond the scope of this document - please see here for detailed instructions. See here for instructions on installing Grub4dos to an existing Windows system.

The Grub4dos boot loader has a command line user interface, which I recommended that you use initially for testing this project. Once the project has been booted successfully from the command line, a menu option can easily be added.

There are two different methods for booting this project from a disk image, both of which require Grub4dos disk mapping (please refer to the Map Command section of the Grub4dos Guide for a detailed explanation of disk mapping) -

As this project is currently dependent on the WinVBlock Virtual Disk Driver when booting a disk image file, I recommend that you read the two WinVBlock threads on reboot.pro for further information - WinVBlock and Win7Block


RAM Disks

A virtual disk (a hard disk image file) loaded (mapped) to system memory is a RAM type disk. As RAM is a form of volatile memory, any changes made to an operating system mapped to RAM will be lost when the system is rebooted. Grub4dos can boot fragmented (non-contiguous) files as RAM disks.

As previously stated, I recommend that you use the Grub4dos command line to test this feature. Assuming that minixp.img has been copied to the first partition of the first hard disk, the following commands can be used to boot the image (press enter after each line) -

Alternatively, it is possible to use a relative path for the disk image file. This will require that minixp.img be copied to the device that will be set as root when Grub4dos is booted. According to the Grub4dos Guide (see here) -

The following commands can be used to boot the disk image if it is located in the root partition (press enter after each line) -


File Disk

Unlike RAM disks, a file disk will retain any changes made to the operating system booted from it. Grub4dos can only directly map disk image files if they are contiguous (not fragmented).

Assuming that minixp.img has been copied to the first partition of the first hard disk, the following commands can be entered at the Grub4dos command-line to boot the disk image -

Please refer to the following posts in the WinVBlock thread for a detailed explanation of the above commands - here and here. Breaking down these commands -


Installing to a Hard Disk Partition

I consider this to be for advanced users only. I have therefore not given detailed instructions, but have provided a summary of the steps involved. The most important step to remember is editing the boot configuration file BOOT.INI if MiniXP is located on any partition other than the first partition on the first hard disk - this refers to the first disk as identified by the system BIOS.

There are a number of stages involved when booting Windows XP from a real hard disk. This is a very simplyfied explanation of the process.

To manually install MiniXP we will therefore need to prepare the partition by formating it with a supported File System (NTFS recommended). If the format command is executed from Windows 2000/XP/2003, then the volume boot record will be created with the necessary code to load NTLDR. If another operating system is used (e.g. Windows Vista/2008/7/8), then the volume boot record code will need to be changed to ensure that the code loads NTLDR.

If the MiniXP project files are being copied to the first partition on the first hard disk (Grub4dos device (hd0,0), WIndows disk 0 partition 1), then the BOOT.INI file created during the build process will work. If any other partition is used, BOOT.INI will need to be edidted to ensure that the correct arc path is used. See here.