Pagina 1 di 3

Kernel panic!!

Inviato: sab 11 apr 2009, 17:52
da joe
Sto installando slackware 12.2. su una vecchia macchina PII 350 MHz.
Ho fatto l'installazione seguendo un metodo un po' esotico.

Ho usato il cd della 12.0 per la fase di installazione e ho selezionato come sorgente un disco esterno in cui avevo messo la directory "slackware" del ramo 12.2.
Avevo fatto così anche per la 12.1 sul mio portatile e aveva funzionato molto bene e rapidamente.

Anche sta volta tutto sommato ha fatto presto, ma c'è una differenza...per il portatile avevo scelto un kernel huge-smp mentre per il vecchio PC al fine di minimizzare l'uso di risorse ho optato per un kernel generic (solo kernel generic, cioè nella sorgente dei pacchetti ho scaricato solo quello).

Ma avviando il PC salta fuori un "kernel panic":

kernel panic - not syncing: VFS: unable to mount root fs on unknown-block(x,y)

dove x,y sono due numeretti tipo 0,3..ora non li ho più sottomano, ma se fossero critici posso ricontrollare e postarli.

Ho letto un po' in rete e pare che google dia la colpa a moduli mancnti e non presenti nell'initramdisk....
Io ho formattato in ext3...la "/"

Dove può stare il problema?

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 18:08
da conraid
A parte non capisco il perché di quel metodo di installazione, ma avrai i tuoi motivi.
Per l'errore ti sei risposto da solo, manca il modulo per ext3 in fase di avvio.
Il kernel generic non ce l'ha, quindi devi creare un initrd

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 18:31
da joe
Mtivazioni di poco conto, avevo già il CD della 12.0 così non ne ho bruciato un'altro, poi in questo modo contavo di risparmiare banda vista la connessione che mi ritrovo.
Considera che io adesso ho il sistema installato ma non riesco ad avviarlo.
Devo creare l'intrd, ma d a dove la creo, dal CD di slack 12.0 da cui ho fatto l'installazione?
Non l'ho mai fatto...avete mica un link dove è spiegato semplice? o addirittura volete spiegarlo (probabilmente rispiegarlo) voi?

Però strano che il sistema non crei già la initramdisk in fase di installazione no? sìil sistema sa che ho scelto ext3, in lilo c'è un kernel generic...ma va bè.

Grazie mille comunque, mi metto a cercare in questa direzione. :-)

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 18:45
da tigerwalk
se hai installato, fai un chroot avviando dal CD, sulla tua partizione di /root ed usi il comando mkinitrd

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 18:46
da conraid
joe ha scritto:Mtivazioni di poco conto, avevo già il CD della 12.0 così non ne ho bruciato un'altro, poi in questo modo contavo di risparmiare banda vista la connessione che mi ritrovo.
Considera che io adesso ho il sistema installato ma non riesco ad avviarlo.
Devo creare l'intrd, ma d a dove la creo, dal CD di slack 12.0 da cui ho fatto l'installazione?
Non l'ho mai fatto...avete mica un link dove è spiegato semplice? o addirittura volete spiegarlo (probabilmente rispiegarlo) voi?

Però strano che il sistema non crei già la initramdisk in fase di installazione no? sìil sistema sa che ho scelto ext3, in lilo c'è un kernel generic...ma va bè.

Grazie mille comunque, mi metto a cercare in questa direzione. :-)
puoi crearlo dal cd di installazione,
ci sono due modi
1) avvi da cd di installazione e al primo prompt digiti una cosa simile a
quella che ti sarà mostrata come esempio, tipo

hugesmp.s root=/dev/sda1 rdinit= ro

naturalmente al posto di /dev/sda1 metti la tua partizione di root
a questo punto parte slackware e puoi creare l'initrd, modificare lilo e rilanciarlo

2) avvi sempre da cd, vai avanti fino al login, digiti root ed entri. A
questo punto invece di setup monti la tua partizione di root
# mount /dev/sad1 /mnt
(naturalmente al posto di /dev/sda1 metti la tua partizione di root)
# mount -o bind /proc /mnt/proc
# mount -o bind /sys /mnt/sys
# mount -o bind /dev /mnt/dev

Se /boot è in partizione diversa
# mount /dev/sda2 /mnt/boot
(anche qui dove al posto di /dev/sda2 metti la tua partizione di boot)

# chroot /mnt

a questo puoi creare l'initrd, modificare lilo e rilanciarlo


la spiegazione su come creare un initrd la trovi in /boot o in ftp://ftp.slackware.com/pub/slackware/s ... DME.initrd
per i tuoi scopi basta
mkinitrd -c -k 2.6.27.7-smp -m etx3 -f etx3 -r /dev/sda1
dove /dev/sda1 è la tua partizione di root

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 19:44
da metrofox
Stessa cosa mi è successa stamane, niente di più difficile che dare un comando:

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m etx3 -f etx3 -r /dev/...
Modificare il lilo.conf, modificando il kernel(passare naturalmente al generic che l'huge), aggiungere la stringa

Codice: Seleziona tutto

initrd = /boot/initrd.gz
Poi rilanciare lilo:

Codice: Seleziona tutto

lilo
Il gioco è fatto ;)

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 19:51
da joe
Siete stati molto gentili, grazie della spiegazione.
Nel frattempo io m'ero letto il file di Pat, penso sia identico all'ultimo link postato. In pratica ho la macchina avviata col CD e ho montato la partizione /dev/hda1 corrispondente alla root. Mi sono letto /usr/doc/mkinit ecc ecc. dove fà l'esempio di creazione della intrd per il suo reiserfs e poi fà l'esempio per ext3.

Delle due strade, la prima è la più semplice probabilmente, molto utile conoscerla.
Ma a livello diciamo "didattico" quasi quasi tento la seconda col chroot.

Però avrei ancora una domanda circa la creazione dell'initrd:

dicevi

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m etx3 -f etx3 -r /dev/sda1
mentre dal readme di pat c'era qualche voce in più, è lo stesso che ho letto prima:
Here's another example: Build an initrd image using Linux 2.6.27.7-smp
kernel modules for a system with an ext3 root partition on /dev/hdb3.
Note that you need the mbcache, jbd, and ext3 modules to use ext3:

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3
quella nota finale circa quel fantomatico mbcache jbd mi spiazza un po' dirspetto a quanto consigliato da te....
Che differenza c'è? Perchè per i miei scopi mi basta il comando come l'hai consigliato tu?
grazie ancora,a presto


[EDIT]
grazie anche a metrofox che ha scritto in contemporana al presentee messaggio ;)
Anche in questo caso mi resta il dubbio rispetto alle indicazioni di Volkerding...

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 20:40
da metrofox
Bhà guarda, i comandi sono pressocché uguali, penso non cambi un granché, anche se stamattina anche io diedi(e funziona tutto alla grande):

Codice: Seleziona tutto

mkinitrd -c -k 2.6.29.1-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/sda4
Ti consiglio di dare il comando indicato da Pat per un solo motivo:

-E' indicato da Pat e funziona.

:D Mi piacerebbe provare qualche altra volta anche l'altro comando :D

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 22:02
da zoros
Ehi joe,
visto che ti piace sperimentare, perché non prendi semplicemente uno dei kernel-huge (normale o smp a seconda di cosa hai scelto) dalla directory kernels/ del DVD, lo porti in /boot ed usi semplicemente quello ... kernel huge e generic condividono gli stessi moduli, quindi basta il binario "huge" e tutto funziona senza initrd ...

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 22:05
da metrofox
zoros ha scritto:Ehi joe,
visto che ti piace sperimentare, perché non prendi semplicemente uno dei kernel-huge (normale o smp a seconda di cosa hai scelto) dalla directory kernels/ del DVD, lo porti in /boot ed usi semplicemente quello ... kernel huge e generic condividono gli stessi moduli, quindi basta il binario "huge" e tutto funziona senza initrd ...
Pat consiglia molto di usare i generic al posto degli huge, che comunque è veramente meglio usare i generic al posto degli huge.

Re: Kernel panic!!

Inviato: sab 11 apr 2009, 22:17
da zoros
metrofox ha scritto:...

Pat consiglia molto di usare i generic al posto degli huge, che comunque è veramente meglio usare i generic al posto degli huge.
Ulteriori motivazioni ?

EDIT: chiedevo solo qualche precisazione in più ... chiaro che i consigli di Pat sono da tenere ben a mente ...

Re: Kernel panic!!

Inviato: dom 12 apr 2009, 1:46
da metrofox
PACKAGE NAME: kernel-generic-2.6.29.1-i486-1.tgz
PACKAGE LOCATION: ./slackware/a
PACKAGE SIZE (compressed): 2592 K
PACKAGE SIZE (uncompressed): 3400 K
PACKAGE DESCRIPTION:
kernel-generic: kernel-generic (a general purpose single processor Linux kernel)
kernel-generic:
kernel-generic: This is a Linux kernel with built-in support for most IDE controllers.
kernel-generic: For filesystem support, or if you need to load support for a SCSI or
kernel-generic: other controller, then you'll need to load one or more kernel modules
kernel-generic: using an initial ramdisk, or initrd. For more information about
kernel-generic: creating an initrd, see the README.initrd file in the /boot directory.
kernel-generic:
PACKAGE NAME: kernel-huge-2.6.29.1-i486-1.tgz
PACKAGE LOCATION: ./slackware/a
PACKAGE SIZE (compressed): 5085 K
PACKAGE SIZE (uncompressed): 6230 K
PACKAGE DESCRIPTION:
kernel-huge: kernel-huge (a fully-loaded single processor Linux kernel)
kernel-huge:
kernel-huge: This is a Linux kernel with built-in support for most disk controllers
kernel-huge: and filesystems. If you're looking for a more stripped down kernel
kernel-huge: (this one contains everything but the kitchen sink ;-), then install
kernel-huge: the kernel-generic from the /boot directory along with an initrd to
kernel-huge: load support for your boot device and filesystem. For instructions
kernel-huge: on the initrd, see README.initrd in the /boot directory.
kernel-huge:

Re: Kernel panic!!

Inviato: dom 12 apr 2009, 8:16
da syaochan
joe ha scritto:

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m etx3 -f etx3 -r /dev/sda1
mentre dal readme di pat c'era qualche voce in più, è lo stesso che ho letto prima:
Here's another example: Build an initrd image using Linux 2.6.27.7-smp
kernel modules for a system with an ext3 root partition on /dev/hdb3.
Note that you need the mbcache, jbd, and ext3 modules to use ext3:

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3
quella nota finale circa quel fantomatico mbcache jbd mi spiazza un po' dirspetto a quanto consigliato da te....
Che differenza c'è?
Credo che il secondo comando sia da usare nel caso le dipendenze tra i moduli non siano aggiornate (con depmod). Se dai il primo vedrai che nell'initrd ti trovi anche gli altri due moduli.

Re: Kernel panic!!

Inviato: dom 12 apr 2009, 10:41
da conraid
joe ha scritto:

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3
quella nota finale circa quel fantomatico mbcache jbd mi spiazza un po' dirspetto a quanto consigliato da te....
Che differenza c'è? Perchè per i miei scopi mi basta il comando come l'hai consigliato tu?
In teoria nessuna, anzi, teoricamente basterebbe

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp
e dovrebbe prendere tutto da solo. Siccome ho visto che non sempre lo fa (o utilizza /dev/root con i problemi che trovi in alcuni post) meglio specificare anche filesystem (-f) e partizione di root (-r)
l'opzione -m specifica quali moduli caricare per far funzionare il filesystem. Normalmente selezionando ext3 automaticamente carica anche jbd e mbcache, in quanto senza non funziona.
Io, per la mia partizione LVM do

Codice: Seleziona tutto

mkinitrd -c -k 2.6.27.7-smp -m ext3 -f ext3 -r /dev/lvm/root -L
e carica i moduli mbcache, jbd e ext3
-L serve per dire di caricare le utility per LVM

In pratica con -m indichi tu i moduli, puoi anche aggiungerne di altri, per esempio per vedere una tastiera usb, etc...

Nel tuo caso sono pressoché equivalenti

Re: Kernel panic!!

Inviato: dom 12 apr 2009, 15:28
da joe
Ok....si insomma, ok per quanto è stato detto e aggiunto dai vostri preziosi posts. Ma le operazioni tentate da me in pratica non hanno sempre dato l'esito sperato creandomi altri dubbi.

Ho provato il chroot ma non sono riuscito a montare /dev:

mount -o bind /dev /mnt/dev

mi restituisce un errore, del tipo bad block bad fylesistem e non lo monta...Sul PC per ora non ho connessione e non posso fare un semplice copia incolla, ma via google ho trovato un messaggio simile:

http://www.knoppix.net/forum/viewtopic.php?t=28775

Codice: Seleziona tutto

mount: wrong fs type, bad option, bad superblock on /dev,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Io dal dmesg non ho cavato nulla....
Per far prima alla fine ho ripiegato avviando col kernel del CD della 12.0 e ho creato l'initrd dalla 12.2. Ho usato la sintassi "a la Pat".
Anche qui mi dava parecchi messaggi tipo "functionality not supported" o qualcosa del genere.
Nonostante quei messaggi però l'iitrd l'ha creata e il sistema ora s'avvia
Per riprova ho ricreato l'initrd sul sistema 12.2 avviato col suo kernel sta volta (il generic per capirci) e i messaggi di cui sopra non li ho più riscontrati...bò.

Fatto sta che direi che adesso il sistema funziona, o almeno sembra. Se aveste voglia di fare due chiacchiere sulla questione del mancato mount di /dev...non sarebbe male....grazie delle numerose risposte. :D