I would like to setup a diskless XenServer 5.6 FP 1 machine that boots from an iSCSI target. I think installation onto an iSCSI should be pretty easy: start the installer, open up a shell, use iscsiadm to connect to the iSCSI target, and have the installer install to it.

I'm not sure how to get the server to boot from the iSCSI target though. I'm thinking I could have the server's NIC perform a PXE boot to load gPXE, which in turn would load the boot loader from the iSCSI target, which would load Xen/Linux. However, how would I get Xen/Linux to mount the root filesystem from the iSCSI target?

Note that this server does not have an HBA iSCSI adapter, so I'm trying to boot it from a regular NIC.

I did a test installation inside a virtual machine. When using gPXE to boot from the iSCSI target, EXTLINUX just hangs. I then replaced the boot loader with GRUB, which was successful in booting the kernel. However, it was not able to mount the root filesystem. I see the following messages, which were printed after messages indicating that a DHCP lease was obtained successfully:

Attaching to iSCSI storage
iscsistart: transport class version 2.0-870. iscsid version 2.0-871
iscsistart: Portal Group not set. Exiting iscsistart
Waiting  for driver initialization.

Your going to have to add this flag to the pxe boot config "device_mapper_multipath=yes" for example:

default xenserver
label xenserver
       kernel mboot.c32
       append /tftpboot/xenserver/xen.gz dom0_mem=752M com1=115200,8n1 \
       console=com1,vga --- /tftpboot/xenserver/vmlinuz \
       xencons=hvc console=hvc0 console=tty0 \ 
       device_mapper_multipath=yes \
       --- /tftpboot/xenserver/install.img

KDB Article here :


  • I ended up doing a test installation and tried passing the device_mapper_multipath=yes option. This option does not seem to make a difference - it isn't able to find the iSCSI target.
    – Alex
    May 19 '11 at 19:22

I was able to get it to work. Turns out the initrd image had the initiator name missing in /init when it was created during the installation. Setting /etc/iscsi/initiatorname.iscsi and re-executing the mkinitrd using the command that was listed in /boot/initrd- did the trick. I.e.:

mkinitrd -v --theme=/usr/share/splash --without-multipath /boot/initrd-

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.