I tried this with 9.10 server amd64 final ISO, but the problems stay: ========= PROBLEM #1: no suitable initrd.img file is provided that allows for iSCSI-on-root booting, though it is possible to create one after installing 9.10 to a VM for example and create a custom initrd.img file, like i did. mkdir ~/tmp cd ~/tmp gunzip < /boot/initrd.img-2.6.31-14-server | cpio -i --make-directories touch etc/iscsi.initramfs cp -p /lib/modules/2.6.31-14-server/kernel/crypto/crc32c.ko lib/modules/2.6.31-14-server/kernel/crypto/ cp -p /lib/modules/2.6.31-14-server/kernel/lib/libcrc32c.ko lib/modules/2.6.31-14-server/kernel/lib/ cp -p /sbin/iscsid sbin/ cp -p /sbin/iscsistart sbin/ find ./ | cpio -H newc -o > ~/initrd-iscsi.cpio gzip ~/initrd-iscsi.cpio mv ~/initrd-iscsi.cpio.gz ~/initrd-iscsi.img // now move the initrd-iscsi.img in your home directory to the TFTP server, and make sure it is used by pxelinux.cfg config file note 1) this procedure has to be performed each time the initrd.img file is updated by the Ubuntu update system; otherwise it would not receive the updates the update system thinks its making. The local /boot/initrd.img file would not be used; only the initrd.img file provided by the TFTP server is used. note 2) the etc/iscsi.initramfs file needs to exist, even though being an empty file. Not creating this file would cause the pxelinux.cfg iscsi login data to not be used. If you prefer getting the iSCSI authentication data from pxelinux.cfg file like i did, simply create an empty file by using the touch command in the above example. Putting the authentication data in the /etc/iscsi.initramfs file instead might be more secure, however. But only barrely as this is unencrypted and located on the TFTP server as well; which does not provide for any authentication by itself. ========= PROBLEM #2: after having a suitable initrd.img file, iSCSI booting works. But upon rebooting or shutting down, the rc.d shutdown script configuration causes a bug that shuts down networking before the (iscsi-mounted) root filesytem is unmounted, causing an unclean shutdown with possible dataloss/corruption. It also requires a manual reset to continue. To fix this, i used the following commands: cd /etc/rc0.d/ rm S35networking mv S41open-iscsi S80open-iscsi cd /etc/rc6.d/ rm S35networking mv S41open-iscsi S80open-iscsi Note 1) the file S41open-iscsi may be called differently; i do not remember 100% correctly; but anyway the open-iscsi file in the /etc/rc0.d/ and /etc/rc6.d/ directories have to called S80open-iscsi to allow clean shutdown Note 2) removing the S35networking may have side effects i'm unaware of; it does seem to work without issues for me. I don't really understand why the network interface has to be "down" before shutting down anyway. The only thing important is that the root filesystem is unmounted cleanly, and the network interface has to be up long enough to make that happen. Removing the network shutdown script seemed the most simple solution to me. ========= After coping with these two problems, diskless Ubuntu systems work. To get a desktop, i used the following commands: sudo apt-get install ubuntu-desktop reboot Hope this helps both you Colin, and other people as i got many many requests on how to get iscsi diskless ubuntu working. Its not just me thinking this is a cool feature; more people actually like this idea. It would also allow thin-clients running Ubuntu in business environments, so reason the more to make this work with less effort. I recommend: - putting iscsi stuff in the initrd.img file by default; even for desktops; is the added 200 kilobytes really an issue? - changing the rc.d startup scripts; do we really need networking in there? can something be done to make this work automatically for both iscsi clients and normal ubuntu installs? do my changes to the shutdown scripts affect normal installs in any negative way? - it would be nice if during/after iscsi installation it would prompt to login to a TFTP server to put a modified iscsi file including all files needed for booting (pxelinux and the pxelinux.cfg/) there. - to go even further, the TFTP remote directory could be mounted as /boot/tftp/ or something; and during each update to initrd or the kernel, this is copied to /boot/tftp/ as well. This would fully automate updating without any human intervention. - i also recommend making the desktop ubuntu iso able to install to iscsi targets; as well as AoE (ATA-over-Ethernet) if possible. With the above changes as well, this would make installing and setting up a diskless ubuntu system a breeze; and would be a very sexy feature which ubuntu can use to promote itself. Kind regards, - sub