On 07/07/12 00:08, Mike McClain wrote:
Howdy, While surely no expert I've been building my own kernels for a long time with little trouble but with a recent install of 'Squeeze' I'm stumped. I've built, reconfigured, built again for several days now. No joy. I've spent hours Googling for any and everybody's thoughts on the error: 'Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)' with little luck. Some one did suggest I decompile the initrd that shipped with the install. On doing that I discovered that the device files for the harddrive are created before the drive is mounted. Booting an 'Etch' partition I see that Squeeze's /dev/ is all but empty when Squeeze is not running which may have something to do with the failure to mount the root partition. Is anyone running a custom kernel without an initrd with udev?
Yes, I am. Although I believe there are some circumstances where this may not be possible. eg. where something else needs to be started in order to mount the root filesystem first.
Some of my older machines (kept running for sentimental reasons) need an old ATA/IDE driver that the current Debian kernels do not include.
Any tips, pointers will be appreciated.
Make sure that *all* filesystem and device drivers for your root partition are compiled directly into the kernel - not as modules.
Look at what modules are used from your initrd and compile those into your kernel
In fact, if you are building a kernel specifically for one box (or a set of similar boxen), it is a good idea to have all/most hardware drivers built-in. I only have external peripherals (USB/cardbus devices) built as modules.
-- Dom