# Root device in avvio e kern-2.6.28-r5

## funkoolow

Salve, provando ad aggiornare il kernel alla versione 2.6.28-r5 dalla 2.6.25-r7 ricevo questo errore al boot:

```
VFS: cannot open root device "301" or unknown-block(3,1)

Please append a correct  "root=" boot option; here are the available partitions:

Kernel panic - not syncing: VFS: unable to mount root fs on unknow-block (3,1)
```

ho seguito la solita procedura, copiando il file .config dalla root del 2.6.25-r7 in quella del nuovo kernel, lanciando make oldconfig, scegliendo cosa fare con le nuove voci, compilando etc etc... Ho controllato tutte le nuove voci durante l'oldconfig e per quanto ne potessi capire, nessuna mi sembrava riportare un qualche collegamento a faccende di avvio o root device, ma non escludo la mia solita incompetenza.

Nel caso fosse utile, riporto anche il mio lilo.conf, tanto per capire se il problema possa essere relativo al parametro root come indicato nell'errore..

```
boot = /dev/hda

map = /boot/.map

install = /boot/boot-menu.b

menu-scheme=Wb

prompt

timeout=50

delay = 50

default = 2.6.25-r7

password = ********

restricted

image = /boot/kern-gentoo-2.6.28-r5

        root = /dev/hda1

        label = 2.6.28-r5

        read-only

        append = "hdc=ide-cdrom hdd=ide-cdrom"

image = /boot/kern-gentoo-2.6.25-r7

        root = /dev/hda1

        label = 2.6.25-r7

        read-only

        append = "hdc=ide-cdrom hdd=ide-cdrom"
```

----------

## k01

sei sicuro di aver incluso nel kernel i driver per il tuo controller ata/sata come built-in? magari hanno cambiato nome. come mai hai scelto lilo invece che grub?

----------

## funkoolow

dunque, secondo la hcl di questa pagina, il driver dovrebbe essere il piix. Ho controllato la sua presenza tra quelli compilati e sembra essere presente nella dir sia del vecchio che del nuovo kernel:

```
funkserver funkoolow # slocate ata_piix | grep /usr/src

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/ata_piix.c

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/.ata_piix.o.cmd

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/ata_piix.o

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/ata_piix.mod.c

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/ata_piix.mod.o

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/.ata_piix.mod.o.cmd

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/ata_piix.ko

/usr/src/linux-2.6.25-gentoo-r7/drivers/ata/.ata_piix.ko.cmd

/usr/src/linux-2.6.25-gentoo-r7/.tmp_versions/ata_piix.mod

/usr/src/linux-2.6.27-gentoo-r10/drivers/ata/ata_piix.c

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/ata_piix.c

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/.ata_piix.o.cmd

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/ata_piix.o

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/ata_piix.mod.c

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/ata_piix.mod.o

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/.ata_piix.mod.o.cmd

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/ata_piix.ko

/usr/src/linux-2.6.28-gentoo-r5/drivers/ata/.ata_piix.ko.cmd

/usr/src/linux-2.6.28-gentoo-r5/.tmp_versions/ata_piix.mod
```

tale modulo non è però elencato tra quelli in avvio automatico tramite il file /etc/modules.autoload.d/kernel-2.6 anche se ho il dubbio che possa dipendere da quello poichè il sistema si blocca ben prima dell'avvio dei runlevel (praticamente arriva a scompattare il kernel e si ferma col messaggio di cui sopra), cmq provo ad aggiungerlo e faccio sapere.

Nel frattempo grazie del suggerimento.

ps: uso lilo perchè fa il suo dovere egregiamente e lo trovo molto più chiaro di grub  :Wink: 

----------

## oRDeX

è un problema di passaggio parametri al kernel in fase di boot secondo me...non uso lilo da tantissimo (grub mi pare piu` comodo).

Prova aggiungendo root=/dev/hda1  alla riga append

----------

## CarloJekko

 *oRDeX wrote:*   

> è un problema di passaggio parametri al kernel in fase di boot secondo me...non uso lilo da tantissimo (grub mi pare piu` comodo).
> 
> Prova aggiungendo root=/dev/hda1  alla riga append

 

se invece di root = /dev/hdx usi root=UUID= ID PARTIZIONE?

----------

## funkoolow

niente, ho provato con entrambe le ultime due soluzioni, sia aggiungendo root=/dev/hda1 in append che usando la sintassi con l'uuid. L'unica differenza immediatamente sensibile è che in entrambi i casi la parte con "unable to mount root fs on unknow-block" ora fra parentesi riporta (0,0) anzichè (3,1).

ecco il lilo.conf attuale (con commentate le varianti di append già testate e non funzionanti o cmq irrilevanti):

```
image = /boot/kern-gentoo-2.6.28-r5

        root = /dev/hda1

        label = 2.6.28-r5

        read-only

#       append = "video=sisfb:mode:1024x768x16,mem:12288 hdc=ide-cdrom hdd=ide-cdrom"

#       append = "hdc=ide-cdrom hdd=ide-cdrom"

#       append = "root=/dev/hda1"

        append = "root=UUID=7dbc13f4-c5d0-4569-966e-3c3b4fe377db"

```

domani faccio qualche altra prova, altre idee sono ben accette, grazie a tutti nel frattempo  :Smile: 

----------

## oRDeX

Il fatto che ti riporti (0,0) invece che (3,1) non è una cosa banale...Se la root è hda1, come da te scritto, allora è giusto che l'errore sia composto con (0,0). Ora il problema si sposta, sicuro che tu abbia inserito il modulo del filesystem cone built-in nel kernel??

----------

## djinnZ

Ho solo dato una scorsa sommaria ma non è che si tratta di uno di quei pestiferi controller a doppia funzione pata/sata?

Perché usi i vecchi driver e non i nuovi?

Nel caso volessi cambiare (il device diventerà sdqualcosa ovviamente) ti consiglio di disabilitare l'acpi con libata.nocpi=1 nella liea del kjernel per la prima prova e provare alternativamente (non li tenere tutti e due nel kernel e non pensare di poterli usare modulari) sia ATA_PIIX che PATA_OLDPIIX.

----------

## funkoolow

allora, facendo qualche altro test sono riuscito a far partire almeno il 2.6.27-r10. Ho compilato builtin sia l'intel PATA MPIIX support che l'intel PATA old PIIX support, da DEVICE DRIVERS -> SERIAL ATA (prod) and Parallel ATA etcetcetc -> ATA SFF support, quindi ho modificato l'append per la voce di lilo.conf come segue:

 *Quote:*   

> image = /boot/kern-gentoo-2.6.27-r10
> 
>         root = /dev/hda1
> 
>         label = 2.6.27-r10
> ...

 

così facendo il 2.6.27-r10 si avvia, ma il 2.6.28-r5 ancora non va (anche se ora da un errore ancora diverso, riuscendo ad arrivare all'avvio dei runlevel ma scambiando la root per una ext2! maccheneso)

Se capisco bene il suggerimento di djinnz, ora provo a togliere builtin il vecchio pata_oldpiix e passare come root device /dev/sda1 anzichè hda1. Mi chiedo solo, se anche fosse un problema di voci del kernel, come mai con 2.6.25 fila tutto liscio... può essere che hanno cambiato la struttura di alcune voci del kernel dalla 2.6.25 in poi?

nel caso fosse utile, posto anche l'lspci:

```
00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 01)

00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 01)

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 81)

00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 01)

00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 01)

00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)

01:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

01:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) Ethernet Controller (rev 81)

```

intanto grazie a tutti  :Smile: 

----------

