You are on page 1of 5

Server Fault

Questions

Tags

Users

log in
Badges

Unanswered

Ask

Read this post in our app!

How to make Windows 7 USB flash install media from Linux?


56

linux

windows-7

usb

I have:
ISO image of Windows 7 install media
4 GB USB flash drive
no DVD drive
Linux installed

share

improve this question


Ian Kelling
1,253 3

14 18

Peter Mortensen
1,710 4 17

23

5 Answers

110

Asked
May 9 '09 at 22:50

Edited
Jun 16 '11 at 17:03

order by votes

OK, after unsuccessfully trying all methods mentioned here, I finally got it working.
Basically, the missing step was to write a proper boot sector to the USB stick, which can
be done from Linux with ms-sys or lilo -M. This works with the Windows 7 retail version.
Here is the complete rundown again:
Install ms-sys - if it is not in your repositories, get it here. Or alternatively, make sure lilo is
installed (but do not run the liloconfig step on your local box if e.g. Grub is installed there!)
Check what device your USB media is assigned - here we will assume it is /dev/sdb. Delete
all partitions, create a new one taking up all the space, set type to NTFS (7), and remember
to set it bootable:
# cfdisk /dev/sdb or fdisk /dev/sdb (partition type 7, and bootable flag)

Create an NTFS filesystem:


# mkfs.ntfs -f /dev/sdb1

Write Windows 7 MBR on the USB stick (also works for windows 8), multiple options here:

1. # ms-sys -7 /dev/sdb
2. or (e.g. on newer Ubuntu installs) sudo lilo -M /dev/sdb mbr (info)
3. or (if syslinux is installed) sudo dd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdb
Mount ISO and USB media:
# mount -o loop win7.iso /mnt/iso
# mount /dev/sdb1 /mnt/usb

Copy over all files:


# cp -r /mnt/iso/* /mnt/usb/ ...or use the standard GUI file-browser of your system

Call sync to make sure all files are written.


...and you're done.
After all that, you probably want to back up your USB media for further installations and
get rid of the ISO file... Just use dd: # dd if=/dev/sdb of=/win7.img
and reverse if/of next time you want to put the Windows 7 installer onto USB.
As always, double check the device names very carefully when working with dd.

share

improve this answer


jthurner
1,216
Haelty
103

2 7 5

Answered
Aug 4 '10 at 15:38

Edited
Nov 14 '14 at 11:49

Would be nice to mention the numerical partition type to use in cfdisk as well (7, 86, 87?) Johan Dahlin
Sep 5 '10 at 21:03

It worked with type 7 Ropez Sep 15 '10 at 20:56

Just a note: If your ntfs filesystem gives weird permission errors when you write to it even as root, make
sure you've installed ntfs-3g. Jeremy Salwen Jun 24 '11 at 6:32

I tried this directly onto a hard drive, and I got the error "windows cannot access the installation sources"
once I booted up from it. Jeremy Salwen Jun 24 '11 at 7:21

Ubuntu PPA for ms-sys (12.04): ppa:berkon/ppa Dmitry Verkhoturov Jun 5 '12 at 18:15

show 5 more comments

13

You can accomplish this with dd, if your PC supports UEFI, and, by extension, GPT disks.

Open up a terminal, your going to need to find what device is your pendrive. If you have the
drive mounted you can find the name of the device by typing "mount" and looking at it's
entry. Something like the following:
/dev/sdb1 on /media/USBDISK type vfat
(rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

In this case the first partion of /dev/sdb is mounted at /media/USBDISK. Open a root shell
and unmount the drive.
umount /dev/sdb1

Go to the directory where your ISO is stored in a root shell and type in the following:
(Replace windows7.iso with whatever the iso is called, and /dev/sdb with the device id of
your usb stick).
dd if=windows7.iso of=/dev/sdb

If your motherboard supports booting off of a pendrive it should be able to boot off it. This
will get the installer on the pendrive not the OS itself.

share

improve this answer


TrueDuality
1,338 3

16 33

Community
1

13

Answered
May 11 '09 at 14:28

Edited
Feb 12 at 12:39

Doesn't work for me. bytesum Jun 2 '10 at 16:41


Does your motherboard support booting from USB? That'll be the ultimate deciding factor of whether this
approach will work or not. TrueDuality Jun 4 '10 at 14:46

Doesn't work for me either and my machine does support USB booting just fine. Maybe this approach can
work on machines that can boot DVD-style USB-storage but most BIOSes assume HDD-style layout on USB
(meaning 512 byte MBR with boot code in it). On thing worth a mention: Fedora CD/DVD images, unlike
W7, do in fact have such MBR with boot code and partition table on them, making them suitable for
HDD/USB boot too. Tronic Aug 28 '10 at 17:35

This does require that your motherboard is able to boot USB-CDROM not just USB-HDD TrueDuality Oct
5 '10 at 12:43

This solution is missing the MBR-installation step, and will typically not work unless it magically is there
already. The solution by @Gunthers is complete. stolsvik Dec 25 '11 at 1:30

add a comment

PCambell's suggestion is good but you will also want to clear the MBR, the linux equivalent
is below

I tried this and it worked (I'm not sure why the dd method failed but seems the partition
had to be ntfs?):
work out which /dev/device is your usb flash drive and unmount it
clear the MBR: dd if=/dev/zero of=/dev/device bs=446 count=1
run fdisk /dev/device
remove all partitions and create 1 primary partition, make it bootable then save the
changes
run mkfs.ntfs /dev/device1 (partition 1)
copy the entire contents of the windows install iso on to the partition you created

share

improve this answer


Answered
Mar 27 '10 at 8:24

Raymond

If you could manage to do all these tasks from within your linux desktop, you'll be rocking
the house.
I think the toughest part would be fiddling with all the operations that Windows' Diskpart
does. Making the partition marked as 'active' and 'boot', 'primary', etc.

share

improve this answer


p.campbell
3,095 6

26 47

Answered
May 10 '09 at 0:17

I think GParted (gparted.sourceforge.net) can handle all the partition flags just fine. See e.g.
gparted.sourceforge.net/screenshots.php . And I haven't tested but it looks like rsync can substitute for robocopy
in that checklist. Matthew Flaschen May 10 '09 at 2:47

add a comment

-3

Instead of
dd if=windows7.iso of=/dev/sdb

you write as root,


dd if=windows7.iso of=/dev/sdb1

(ADD 1 at the end or whatever your USB drive is placed at.)

share

improve this answer


gonzo
1

Peter Mortensen
1,710 4 17

Answered
Dec 22 '10 at 18:20

Edited
Jun 16 '11 at 17:49

23

No, the of=sdb is correct as per the previous answers. James Broadhead Aug 13 '11 at 21:00
This is just plain wrong. lukad May 24 '14 at 10:31
-1: dd needs to write to devices, not to partitions ssc Sep 16 '14 at 13:12

add a comment

meta chat tour help blog privacy policy legal contact us full site
Download the Stack Exchange Android app
2015 stack exchange, inc

You might also like