I create a (minimal) livecd, run livecd-iso-to-pxeboot on it, and copy the vmlinuz0 and initrd0.img to our PXE server, along with the flags from pxelinux.cfg When I try to boot a computer off of the pxe image, the last thing I see on the screen is "creating devices", and then: mount: Could not find any loop device. Maybe this kernel does not know about the loop device? (If so, recompile or `modprobe loop'.) At this point it drops me to an emergency shell. If I modify /sbin/real-init like this: @@hand-made diff - don't try to apply@@ echo "creating devices" fi /sbin/udevadm trigger +/bin/sleep 5 if [ "$shell" == "1" ] ; then plymouth --hide-splash || : @@ everything works fine (though I have a five-second delay on boot). Obviously, /dev/loop* aren't being created by udev in time for the mount command without the five-second delay. After some more poking around, I replaced /bin/sleep 5 with: /sbin/udevadm settle and it fixed the problem. Not sure why this hasn't come up before. Version-Release number of selected component (if applicable): livecd-tools-024-1.fc11.x86_64 How reproducible: Always
Ping. Would love to get this fixed so I don't have to fix it myself any more.
I'm guessing your initrd is missing things necessary for netboot? Your "minimal" livecd is too minimal. You need dracut-network and its dependencies.