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"
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:
and it fixed the problem. Not sure why this hasn't come up before.
Version-Release number of selected component (if applicable):
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.