Pagina 1 di 1

[RISOLTO] Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 21:51
da matzu
Ciao a tutti! Sto tentando l'installazione della 13.

Se uso il kernel huge-smp il sistema si carica, mentre se uso il 2.6.31.1 personalizzato, ho un kernel panic. Il messaggio è:

Codice: Seleziona tutto

VFS: Cannot open root device "hda2" or unknown-block (0,0)
Please... [...]
Kernel panic - not syncing: VFS: Unable to mount root fs or unknown-block (0,0)
L'output di mount, relativamente ai filesystems (/dev/root è su hda2):

Codice: Seleziona tutto

/dev/root on / type ext4 (rw,barrier=1,data=ordered)
/dev/hda1 on /boot type ext2 (rw)
/dev/hda3 on /home type ext3 (rw)
Uso grub. Questa è la sezione di menu.lst per l'avvio del sistema:

Codice: Seleziona tutto

title kernel sport
root (hd0,1)
kernel (hd0,0)/vmlinuz root=/dev/hda2 ro vga=normal vt.default_utf8=0

title kernel huge-smp
root (hd0,1)
kernel (hd0,0)/vmlinuz-huge root=/dev/hda2 ro vga=normal vt.default_utf8=0
La parte di .config per il 2.6.31.1, relativa ai filesystems necessari all'avvio:

Codice: Seleziona tutto

CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4DEV_COMPAT=y # questo l'ho introdotto temendo che grub usasse ext4dev
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_JBD=y
Uso un .config molto simile (da cui questo deriva) sull'altro computer, dove ho una sola partizione / formattata con ext3, e il sistema si avvia regolarmente. È per questo che sospetto di ext4, ma sospetto anche del mio .config perché il kernel huge-smp funziona (sebbene non sia lo stesso: 2.6.29.6). Solo che ho fatto svariati tentativi già dall'altro ieri, senza successo.

P.S. Purtroppo non mi sono annotato il messaggio, ma ne avevo uno analogo (di kernel panic che non riusciva a caricare un filesystem o giù di lì) anche con il generic-smp originale e initrd.

Re: Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 22:09
da urka58
Hai forse dimenticato il modulo del controller dei dischi? (come built in, visto che non hai una immagine RAM da caricare).
Ciao

Re: Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 23:07
da phobos3576
Ormai "VFS: Cannot open root device "hda2" or unknown-block (0,0)" è diventato il tormentone del mondo Linux; quello di Matzu credo sia il millesimo messaggio che segnala questo problema.

Sarebbe opportuno mettere uno Sticky in primo piano su Slacky onde evitare altri casi del genere.

Comunque, Matzu, come ha già scritto Urka58, se riesci ad identificare il chipset su cui si basa il controller del tuo hard disk, compila il relativo driver direttamente nel kernel e non come modulo; soprattutto, compila direttamente nel kernel il supporto per ext4, mentre i supporti per ext2, ext3, reiserfs, etc, vanno compilati come moduli.

Re: Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 23:07
da matzu
urka58 ha scritto:Hai forse dimenticato il modulo del controller dei dischi? (come built in, visto che non hai una immagine RAM da caricare).
Ciao
Grazie 1000000, era proprio questo!
Mentre nell'altro computer ho chipset via e l'avevo messo statico (e infatti funzionava), qui cambiando in intel avevo messo modulo. Ci avrei messo almeno una settimana per arrivarci, considerato quanto distante stavo andando a pascolare...

Re: Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 23:12
da matzu
phobos3576 ha scritto:compila il relativo driver direttamente nel kernel e non come modulo
Grazie, infatti adesso va! Mi ero fissato su altro che non c'entrava.

Re: Kernel panic con ext4 e grub

Inviato: mar 29 set 2009, 23:23
da matzu
phobos3576 ha scritto:soprattutto, compila direttamente nel kernel il supporto per ext4, mentre i supporti per ext2, ext3, reiserfs, etc, vanno compilati come moduli.
Un paio di curiosità:
Ho /boot con ext2 e / con ext4. Per cui immagino al limite che "dovrei" compilare nel kernel (almeno) il supporto a ext2 e a ext4. Perché non ext2, su cui è scritto il kernel stesso (workaround necessario, perché grub non carica direttamente da ext4)?
C'è un buon motivo per non compilare nel kernel tutti i drivers che vengono comunque caricati durante tutto il bootstrap, come in questo caso il supporto a ext3, con cui ho formattato /home? Ma intendo per esempio anche i moduli alsa, acpi, e via discorrendo. In fin dei conti sono moduli che, anche quando compilati esterni, sono attivi per tutto il tempo di lavoro del kernel. Compilo normalmente come moduli solo i drivers di cose che non è detto che userò, come filesystems di hd o chiavette esterni, cdrom, ppp...

Re: [RISOLTO] Kernel panic con ext4 e grub

Inviato: mer 30 set 2009, 0:06
da phobos3576
In linea di principio, i driver da compilare direttamente nel kernel sono quelli veramente essenziali per la corretta inizializzazione dell'hardware; io ci ho messo il driver per ext4, quello per il controller nVidia nForce del disco SATA e pochi altri; tutto il resto può essere compilato come modulo, anche per evitare una immagine mastodontica del kernel, piena di driver che probabilmente non verranno neppure utilizzati.
Considera poi che molte periferiche (non essenziali durante il boot) funzionano molto meglio con i driver compilati come moduli; infatti, tali periferiche vengono autorilevate al boot con il kernel che così può caricare i relativi moduli necessari per effettuare la corretta inizializzazione.

Sulla questione /boot in una partizione ext2 e / in una partizione ext4 non ti so dire; non ho mai fatto cose del genere.

Re: [RISOLTO] Kernel panic con ext4 e grub

Inviato: sab 3 ott 2009, 9:12
da matzu
phobos3576 ha scritto:evitare una immagine mastodontica del kernel, piena di driver che probabilmente non verranno neppure utilizzati
Beh, questo non accadrebbe, perché ripulisco il config da buona parte di quello che non ho nell'hardware. Comunque mi hai indotto a rivedere l'impostazione dalla base, così che ho usato un generic-smp, molto più modulare del mio precedente. Ci ho lanciato oldconfig coi sorgenti del 2.6.31.1 (confermando tutti i defaults eccetto supporto a multimedia), e l'ho poi modificato solo col supporto a ext3. Così ho un kernel che va bene su entrambe le macchine (ho lasciato perdere ext4, di cui comunque non mi fido abbastanza), e zero problemi.