PDA

View Full Version : kernel panic quando compilo senza initrd


oRz0Ro
20-04-2006, 11:35
ciao a tutti
ieri volevo aggiornare il kernel della mia debian sid con il 2.6.16-9. Ho usato i soliti comandi make mrproper, make menuconfig, make clean, make bzImage make modules, make modules-install ed ho copiato vmlinuz in /boot e dato update-grub: al riavvio ho ottenuto il seguente errore:

kernel panic non syncing VFS: unale to mount root fs on unknown-block (0,0)
VFS cannot open root device HDA3 or unknown-block (0,0)

quando ho compilato il kernel ho inserito il supporto statico a tutti i filesystem inoltre ho normali dischi pata percui non mi spiego da dove possa venire l' errore...

il vecchio menu.list era:
title Debian GNU/Linux, kernel 2.6.15-1-486
root (hd0,2)
kernel /boot/vmlinuz-2.6.15-1-486 root=/dev/hda3 ro
initrd /boot/initrd.img-2.6.15-1-486
savedefault
boot

mentre il nuovo:
title Debian GNU/Linux, kernel 2.6.16-9
root (hd0,2)
kernel /boot/vmlinuz-2.6.16-9 root=/dev/hda3 ro
savedefault
boot

le altre volte non avevo avuto bisogno di creare l' immagine initrd.imgxxx perchè ora se non lo faccio mi da errore?

ora ho finito di reinstallare il tutto, e mi ritrovo a dover ricompilare nuovamente il kernel.
ho visto la guida di piloz per ricompilare il kernel e la procedura seguita è diversa, usa make-kpkg clean, make-kpkg --initrd kernel_image, dpkg -i nome-kernel.deb.


Ho sbagliato a seguire la procedura dando gli altri comandi o sono equivalenti?

Cosa cambia con initrd ovvero usando la ram come un disco fisso rispetto al solito vmlinuz, non serve solo per caricare un modulo speciale prima dell' avvio come quando uno ha un disco sata oppure un sistema raid (in questo caso a me non darebbe alcun vantaggio)?

è possibile lasciare la vecchia immagine del kernel in/boot e dare update-grub in modo che dal menù posso scegliere sia il nuovo che il vecchio?

ringrazio in anticipo chiunque vorrà aiutarmi

VICIUS
20-04-2006, 12:05
Probabilmente non hai messo il modulo per il controller ide oppure del filesystem della root come statici. Modifica il file di configurazione oppure usa initrd.

ciao ;)

oRz0Ro
20-04-2006, 13:04
ciao

"non hai messo il modulo per il controller ide oppure del filesystem della root come statici" : no ci sono stato attento.

"usa initrd": quindi è meglio compilare con
make-kpkg clean, make-kpkg --initrd kernel_image, dpkg -i nome-kernel.deb

che con
make menuconfig, make clean, make bzImage make modules, make modules-install

anche se non ho raid o dischi fissi sata??? qual' è il vantaggio di questo metodo con la mia configurazione?

Psycotic
20-04-2006, 13:19
La differenza e' che make-kpkg ti serve per creare un pacchetto (quindi lo usi solo in debian, le altre distribuzioni ho hanno un tool diverso o nn ce l'hanno).

Il metodo ke utilizzi tu invece e' la compilazione classica su un linux.

Per creare initrd con la compilazione classica usa:
mkinitrd -o initrd-tuo.img 2.6.25 <- versione ke hai installato uguale a quello che trovi su /lib/modules/vers.

Psycotic
20-04-2006, 13:25
Dimenticavo adesso Debian di default utilizza mkinitrd.yaird che crea un file accessibile con cpio..
Cmq nn so se yaird ha la stessa sintassi.. Guardaci prima

josephdrivein
20-04-2006, 17:52
Ha senso usare initrd solo se hai controller scsi/raid particolari o con un'immagine precompilata del kernel, altrimenti liberati dell'initrd.

Se il tuo disco fisso è IDE, controlla di avere <*> incluso nel kernel il supporto ide per il tuo chipset e il filesystem della partizione che monti in / (ext3?).