How to make bootable Windows USB from Linux for old computers

Install ms-sys

You will need ms-sys to write a Master Boot Record (MBR) to the USB drive.

Make sure you have installed the…

  • gcc
  • make
  • gettext

…repository packages in order to compile the source code.

Download the latest source code from http://ms-sys.sourceforge.net/

Un-tar the source code and change into the source code directory:

tar xvzf ms-sys*

cd ms-sys-2.7.0

Compile and install the binary:

make

sudo make install

ms-sys will install to /usr/local/bin. Be sure to add this path if it is not in the root user’s environment PATH:

su -

export PATH=$PATH:/usr/local/bin

GParted to make an NTFS partition

Once you have gparted installed, launch it from application launcher, click on dropdown menu in top right corner and select your external USB drive. Make sure that you have selected the correct drive and then click on the “Device” menu. Click on “Create Partition Table…” to completely format the drive.

On the next screen, ensure that the “partition table type” is “msdos” and click on the “Apply” button.

Once the partition table has been created, right click on unallocated space and click on “New” menuentry.

In the “File system:” dropdown menu, select “ntfs” and click on the “Add” button.

Next, click on the green tick button on the top toolbar to apply the changes.

ms-sys to write a MBR

Run “ms-sys -n” on the partition…

ms-sys -n /dev/sdX1

…and “ms-sys -7” on the whole USB device itself

ms-sys -7 /dev/sdX

Copy the files from the Windows ISO to the NTFS partition

Mount the USB Drive

sudo mkdir -p /mnt/flash

sudo mount /dev/sdX1 /mnt/flash

Mount the Windows ISO

sudo mkdir -p /mnt/iso

sudo mount -o loop /tmp/windows.iso /mnt/iso

Copy the Contents of the Windows ISO to the USB Drive

sudo cp -av /mnt/iso/* /mnt/flash/

Unmount the USB Drive

sudo umount /mnt/flash

Boot from the USB Drive

Plugin the USB drive to the computer you want to install Windows on and boot to USB-HDD or USB-ZIP.