1

I have an x86-64 machine that can boot via PXE, and want to boot a live Fedora 17. I do not want to install it, I just want to run as though booting the live CD.

For a server I have (read: am stuck with) a windows XP SP 3 host with a DHCP and TFTP server on it. Not optimal. Did I mention I'm stuck with it yet?

Googling has turned up too much information regarding installing over the net, or configuring linux based servers for me to find the signal I need in the noise.

I just need to know (1) what files to place in the TFTP server's directory, and (2) what to name as the boot file in DHCP.

I have the live CD iso on hand, and a burned image of it as well. If some of the CD files need to be tweaked a bit to make the system look to the network instead of the CD, I need a way to do it from windows (or a link to pre-tweaked files) if possible.

5
  • You need a NFS server. This does not run under Windows.
    – mailq
    Aug 7, 2012 at 20:59
  • A live cd needs no nfs, and I have read that Ubuntu live at least can be PXE booted; stands to reason that fedora might as well. Furthermore, fwiw, there are NFS servers that run on XP, I happen to have one, but that's beside the point.
    – JustJeff
    Aug 7, 2012 at 21:18
  • 1
    Looking at the title I just can't resist this meme
    – voretaq7
    Aug 7, 2012 at 22:18
  • Might be a good idea to update your question anyway (on IA64)
    – Jannes
    Aug 9, 2012 at 7:44
  • @Jannes - of course. Had to wait until I could get to my desktop though, seems half the controls are absent on safari.
    – JustJeff
    Aug 10, 2012 at 0:21

3 Answers 3

6

OK, first let's clear up a few misconceptions:

As MailQ has pointed out, most diskless server configurations require NFS (since you mentioned ubuntu in the comments, check out their instructions). It doesn't HAVE to be NFS (the Network File System from Sun), but it does have to be A Network File System -- you can't PXE load a whole OS image over the network1, and TFTP is there just to hand you a kernel that can boot.
Your kernel then looks to the network for the resources it needs (like a root filesystem, typically mounted over NFS) -- In the immortal slogan of Sun, pioneer of the diskless workstation, The Network is The Computer, or in the modern parlance Your data is in the cloud - in this case your local ethernet cloud...

A LiveCD by contrast is a completely different animal - you are booting off the CD, not over the network, and you have the CD's Filesystem to contain your OS (usually in a magic "squashFS" format these days). That's 600MB to 4GB of space - substantially more than you'd want to be shoving around over ethernet.

Now as you pointed out, there are NFS servers available for Windows (Services for Unix / Subsystem for Unix Applications has one, and it's quite adequate and easy to configure. Technet has further details). If you want to set this up in a production environment you would need a Server installation of Windows, with SFU/SUA installed and properly configured.

Assuming the requirements above have not discouraged you, The Fedora folks have a guide on how to set up diskless Fedora systems. Translating the UNIXisms to their equivalent configuration details on your Windows TFTP and NFS servers is left as an exercise for the reader.


1 - Technically you probably can PXE load the whole OS disk image, but you certainly shouldn't: The volume of traffic would be sheer insanity, you wouldn't be able to save data anywhere permanently, and I've never seen such a beast in the wild.

5
  • yeah, I happen to have the windows services-for-unix NFS server already configured, and routinely use it to supply the file system for a couple of vxWorks nodes. Figured that if I could get some kind of minimal linux at least booted through PXE, one of the first things would be to get that to mount the same NFS server. Guess I'm too hazy on the Linux boot up process to have realized the limits of what the TFTP sequence would be able to achieve.
    – JustJeff
    Aug 8, 2012 at 1:31
  • just thought there might be a way to get a shell without a lot of filesystem interaction.
    – JustJeff
    Aug 8, 2012 at 1:33
  • @JustJeff If all you want is a shell all you need is a kernel and a shell - you can certainly PXE a ramdisk that contains that. The problem is a shell by itself isn't very useful, and by the time you add init scripts, device management, something to configure the network, etc. you're up to 100MB or more (and still not a really useful system) -- A very stripped down Desktop Linux is still usually over a gig.
    – voretaq7
    Aug 8, 2012 at 14:08
  • After going around with it today, i think what I really need is a distro that can have the kernel and initrd pulled down thru TFTP, then mount an NFS volume and finish the boot. Probably less than 20M via TFTP, then anything else on-demand from nfs, and I don't have to commit half my ram to ram disk duty.
    – JustJeff
    Aug 9, 2012 at 1:21
  • blog.devicenull.org/2012/01/22/… The kernel has support for mounting the root directory via NFS. I've done it before, and it's slightly annoying to setup but it works ok. Also related, the SmartOS project is designed to boot the entire OS via PXE, so it's definitely feasible.
    – devicenull
    Aug 10, 2012 at 0:36
2

To boot an ISO image from network you will need:

  • DHCP server configured to point your PXE clients to the TFTP server and load IPXE
  • TFTP server that has a folder with IPXE (or IPXE+pxelinux) and memdisk
  • HTTP/FTP/NFS/iSCSI server that will share the ISO

See also: http://www.syslinux.org/wiki/index.php/MEMDISK and http://forum.ipxe.org/showthread.php?tid=1123

0

At least half the answer seems to be as follows..

PXE pulls a network bootstrap program (NBP) onto the client, and it's the NBP that determines what happens next. Not sure how many there are or which might be the best, but at least one example is "SYSLINUX" which contains "PXELINUX".

PXELINUX takes the form of pxelinux.0 and should be in the TFTP server's base directory, and should be what DHCP calls out for a boot program. When the PXE client gets PXELINUX, PXELINUX reads a config file (using the TFTP service, apparently) that dictates what happens next.

It remains (for me to discover on my own, it seems) how to deploy the fedora kernel into the TFTP directory the right way. I did make PXELINUX pull down and start vmlinuz0 and initrd0 but these clearly expected to find further files from the CD.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .