/ diskless

Create PXE-Boot image for Openstack

Openstack doesn’t support launching a diskless PXE-boot VM, we have to make an image with PXE-boot capability to achieve this.

1.Create a small empty disk file, create dos filesystem.

dd if=/dev/zero of=pxeboot.img bs=1M count=4
mkdosfs pxeboot.img

2.Make it bootable by syslinux

losetup /dev/loop0 pxeboot.img
mount /dev/loop0 /mnt
syslinux --install /dev/loop0

3.Install iPXE kernel and make sysliux.cfg to load it at bootup

wget http://boot.ipxe.org/ipxe.iso
mount -o loop ipxe.iso /media
cp /media/ipxe.krn /mnt
cat > /mnt/syslinux.cfg <<EOF
LABEL ipxe
 KERNEL ipxe.krn
umount /media/
umount /mnt

4.Now we have pxeboot.img ready, let’s register it to glance

source nceprc
glance image-create --name NG-AS --is-public true  --disk-format raw --container-format bare < pxeboot.img