# PXE Installation -> kernel panic [SOLVED]

## zagibu

Hello everyone

A friend of mine directed me to these forums. He thought this was like the best place to get help with any linux problem. Well, here we go:

I have a (non-gentoo, sorry) SuSE Linux installationserver, which provides DHCP, TFTP and NFS services, to allow diskless clients to install a SuSE Linux over an ethernet network. The clients boot up fine, the pxelinux bootloader works, the kernel gets decompressed and loaded and initializes some stuff, then I get a kernel panic:

```

VFS: cannot open root device "<NULL>" or unknown-block(104,2)

Please append a correct "root=" boot option

kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(104,2)

```

Here are my settings:

/etc/dhcpd.conf

```

option broadcast-address 192.168.200.255;

option subnet-mask 255.255.255.0;

option domain-name "PXEServer";

option domain-name-servers 212.90.199.2;

option routers 192.169.200.1;

allow bootp;

allow booting;

allow unknown-clients;

ddns-update-style none;

default-lease-time 14400;

subnet 192.168.200.0 netmask 255.255.255.0 {

  range-dynamic-bootp 192.168.200.100 192.168.200.199;

  next-server 192.168.200.223; #PXEServer

  server-name "192.168.200.223";

  filename "/pxelinux.0";

  get-lease-hostnames true;

  use-host-decl-names on;

}

```

/etc/xinet.d/tftp

```

service tftp

{

  socket_type = dgram

  protocol = udp

  wait = yes

  user = root

  server = /usr/sbin/in.tftpd

  server_args = -s /installserver/boot/

  disable = no

}

```

/etc/exports

```

/installserver *(rw,no_root_squash,sync)

```

files

```

/installserver/boot/pxelinux.0 #PXE bootloader from syslinux package

/installserver/boot/pxelinux.cfg/default #Definition file for pxelinux bootloader (see next listing)

/installserver/boot/linux #Compressed kernel image from SuSE Linux installation cd1

/installserver/boot/initrd #Initial ramdisk from SuSE Linux installation cd1

/installserver/boot/message #Display message for PXE bootloader

/installserver/boot/memtest #Probably unnecessary

/installserver/os/suse9.3/ #This directory contains all files from the SuSE Linux installation cds

```

/installserver/boot/pxelinux.cfg/default

```

label suse9.3

kernel linux

append initrd=initrd ramdisk_size=65536 splash=0 vga=normal textmode=1 insmod=e1000 install=nfs://192.168.200.223/installserver/os/suse9.3

implicit 1

display message

prompt 1

timeout 1000

```

I'm pretty sure now that it hasn't anything to do with the clients, since I've tried like hundreds of them (slightly exaggerated), all with different ethernet cards. Some couldn't even boot, probably because of too old PXE hardware, but those who could all stopped with the kernel panic posted above.

My main problem is, that I don't quite understand what the kernel tries to mount. I mean, there aren't any partitions available, since it's a preinstallation situation, and it probably isn't the nfs volume, right? So what is it, and why doesn't he find it?Last edited by zagibu on Tue Mar 14, 2006 4:25 pm; edited 2 times in total

----------

## BlinkEye

you found the issue - haven't you? I already forgot - so, it's your turn ...

----------

## MrUlterior

 *zagibu wrote:*   

> 
> 
> ```
> 
> VFS: cannot open root device "<NULL>" or unknown-block(104,2)
> ...

 

The problem is right there ...

Append a "root=" option, I use the following:

```

APPEND initrd=initrd.gz root=/dev/ram rw ip=dhcp

```

----------

## zagibu

Heh, thanks for the reply. It wouldn't solve the problem, though, since it's related to the bootloader itself. You see, the tutorial I followed didn't mention a "default <label>" option for the pxelinux.cfg files. This option is quite important though, because if you don't specify it, and don't type a defined bootlabel at the bootprompt, the bootloader won't know which label to boot and will try to load a kernel named "linux" with no options. This leads to the posted kernel panic problem.

So, specifying a default boot label is important when you work with rapid timeouts in combination with essential boot options.

----------

