Kernel panic... Unable to mount root fs

Dan Nicholson dbn.lists at gmail.com
Tue Jul 1 12:20:54 PDT 2008


On Tue, Jul 1, 2008 at 12:01 PM, Christian Gardner
<christian_gardner at yahoo.co.uk> wrote:
>> Almost certainly it's because the necessary driver is not compiled
>> into the kernel. The Ubuntu .config and kernel will probably not work
>> for you because the drivers are modules and you need to have an
>> initramfs to load them before mounting root. I don't recall the exact
>> settings, but I think you'll need the following:
>>
>> For libata (newer SATA/PATA drivers):
>> CONFIG_ATA=y
>> CONFIG_[SP]ATA_$yourcontroller=y
>> CONFIG_SCSI=y
>> CONFIG_BLK_DEV_SD=y # this is SCSI disk support
>>
>> For IDE (older drivers):
>> CONFIG_IDE=y
>> CONFIG_BLK_DEV_IDE=y
>> CONFIG_BLK_DEV_IDEDISK=y
>> CONFIG_BLK_DEV_$yourcontroller=y
>>
>> You can compile both libata and IDE into your kernel, and only one
>> will be used. I forget which one is default in 2.6.22, but I think
>> SATA disks will use libata and PATA disks will use IDE. If libata is
>> loaded, you'll get /dev/sd* disks, and /dev/hd* disks for IDE.
>>
>> --
>> Dan
>
> Hi Dan, sorry if this message isn't threaded properly... thanks for your advice, I'm trying it out now but I'm not quite there yet.
>
> I decided to bung in everything you say for both types of controller, I don't suppose it can hurt. Most of them were already enabled in the vanilla config file. I enabled CONFIG_ATA which hadn't been. That just leaves the two lines you suggest, in which I have to replace $yourcontroller with something intelligent. What might that be?
>
> In the vanilla config file a whole bunch of CONFIG_BLK_DEV_$controllernames are enabled, but another whole bunch aren't. Meanwhile there are no entries in the mold of CONFIG_SATA_$anything or CONFIG_PATA_$anything, not even comments saying that such an option is not set!
>
> How do I find out what controller I should put? The other responder to my Q  said I should try the lspci command so I did, I think this is the relevant line of output:
>
> 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
>
> Does that mean anything? Finally what I'm building all this on is a laptop, specifically the Toshiba Satellite P100-429 model which I bought about 18 months ago. Here's the 'official' page on it. Can't see what I want there...

Just the controller is what we need. For libata, this corresponds to
CONFIG_ATA_PIIX. Even on 2.6.22, I think you'll want the libata SATA
support. I've been using ata_piix on two Intel systems with
linux-2.6.22 for a while and haven't seen any issues.

I think that setting with the ones above for libata should take care
of it. Bear in mind that those are just the minimal settings for
compiled in root drivers. If you start using libata, you'll probably
want the other SCSI device support types like CONFIG_BLK_DEV_SR for
cdroms. Just like your hard disk, though, there's are equivalent
drivers for libata and IDE that you can choose. I've personally been
using libata for everything, but the PATA support in IDE is much more
mature.

--
Dan



More information about the lfs-support mailing list