0

I got DHCP/TFTP working great with no problems today. I can PXE Boot memtest off of the server with no problem, so I know there's nothing wrong there.

For some reason, the image I'm trying to boot into just doesn't want to cooperate. I'm completely at a loss for what I can do with this and Googling hasn't helped either. I can't see very much of the scrollback, but the last two (important-looking) lines are this:

No filesystem could mount root, tried: reiserfs ext3 ext4 vfat msdos iso9660 xfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

pxelinux.cfg/default:

label linux
kernel vmlinuz.2628hr7
append initrd=/initrd.gz init=/init noapic acpi=off raid=noautodetect ramdisk_size=200000 devfs=nomount root=/dev/ram0 rw

The kernel is the exact same kernel that actually runs on the exact same hardware configuration as the machine I'm trying to PXE Boot. Could it be a problem with the PXE Image? Any help would be greatly appreciated.

Jeremy Privett
  • 248
  • 1
  • 5
  • 15

3 Answers3

1

It's not a kernel problem, but it cannot mount the filesystem. Have you changed the partition table? Does the kernel know where root is (ie maybe 'today' it's /dev/sdb instead of /dev/sda.. I've seen it happening). Also consider:

  • permission
  • why mount rw?
lorenzog
  • 2,799
  • 3
  • 20
  • 24
  • That's the thing, I don't want it to mount any existing filesystem. I want it to mount the contents of the image initrd.gz as the root filesystem in RAM. I don't want to touch the underlying filesystem, if one exists, but in this case one doesn't. – Jeremy Privett Dec 11 '09 at 08:51
  • I think it's trying to mount /dev/ram0 as the root filesystem -- which must be formatted and populated by something in the initrd ramdisk. Either the /init script can't do it, doesn't do it, or is not allowed to (executable? is the interpreter -i.e. /bin/bash) actually available? also, I wonder if the ramdisk size isn't too small for a whole root fs. – lorenzog Dec 11 '09 at 09:35
  • Aha. I see what the problem is. /init didn't actually get built into my image. That should fix the problem. I'm rebuilding the image, now. – Jeremy Privett Dec 11 '09 at 18:55
0

Get rid of the root=/dev/ram0 - you don't need it if you're booting directly into an initrd

James
  • 7,643
  • 2
  • 24
  • 33
0

The problem was that the /init script somehow didn't get build into initrd.gz. Getting that added properly fixed the issue.

Jeremy Privett
  • 248
  • 1
  • 5
  • 15