Windows 7 iscsi

I haven’t really looked into iscsi much as it looked slow, and some what useless unless you have lots of servers. While I was playing around with making my own iMac, Hamzah suggested I use gPXE to network boot my iMac. Today I started to play with gPXE and chainloading it on top of PXE worked really well. While digging around in documentation Hamzah, and I took interest in booting Windows using gPXE and iscsi or ATA over ethernet. We both decided to go ahead with iscsi, and by following http://www.etherboot.org/wiki/sanboot/win7.

A few things caught me out, which slowed me down. The first one was iscsi, make sure this is setup correctly. You don’t get any warnings that iscsi is working or not using gPXE and Windows. Make sure you actually point it to a block device and not to a file like I tried to do :P . Simplest method is to create a LVM volume. My ietd.conf looked like this.

Target iqn.2009-02.net.internaluse.salad:iscsiboot
         Lun 0 Path=/dev/data/iscsi,Type=fileio

The other problem I ran into was chainloading gPXE on PXE, once gPXE loads from PXE your BIOS or gPXE will no longer look for a DVD or CD drive making it impossible to install Windows 7. Find an old network card and flash the ROM in that. After that it was fairly easy to install, everything just worked.

I was quite amazed at the speed of the Windows 7 considering it was running of 100mbit iscsi.

2 thoughts on “Windows 7 iscsi

  1. You can actually use a file for iSCSI aswell instead of a block device, most of my targets are files at the moment, but I will soon be switching them over to LVM block devices.

    (For the googles) To create a blank disk image file to use as an iSCSI target, you can use the following command: dd if=/dev/zero of=iSCSI.winblows7.img bs=1 seek=8589934592 count=1
    That should create an 8GB disk image :)