Pagina 1 di 1

Problema upgrade kernel: mounting /dev/root on /mnt failed

Inviato: sab apr 20, 2013 20:03
da gabry
Gent.mi,
sto aggiornando il mio attuale kernel 2.6.36 del vecchio Notebook Compaq Presario 3000 al kernel 3.8.5, ma ho il problema in oggetto.
Ho semplicemente preso il mio vecchio config e da li ho ricostruito quello nuovo utilizzando il buon "make oldconfig".
Avviando il nuovo kernel ad un certo punto ho:

mounting /dev/root on /mnt failed: no such file or directory
ERROR: No sbin/init found on rootdev (or not mounted). Trouble ahead.
switch_root: bad newroot /mnt
kernel panic - not syncing: attempted to kill init! exit code=0x00000100


Non riesco a capire proprio cosa sia successo! Eppure non ho cambiato niente.
Il config di partenza è quello del kernel 2.6.36 perfettamente funzionante!! :?
Qualcuno sa indicarmi la via?
Vi ringrazio in anticipo.

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: sab apr 20, 2013 21:00
da targzeta
Non capisco come mai la dev/root la vuole montare su /mnt. Che versione di Slackware stai usando, hai fatto anche un upgrade di versione o altro?

Posta il lilo.conf

Emanuele

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: dom apr 21, 2013 18:54
da gabry
La mia Slack è la 12.2 (Evviva la tradizione....Voi moderni!!.... :) Non ho fatto alcun upgrade di versione ultimamente. Eccetto il kernel che ho adattato (ricompilato) alle mie esigenze più volte!!!

Ti posto l'estratto del mio lilo:

Codice: Seleziona tutto

# Start LILO global section
boot = /dev/hda

...OMISSISS...

# Linux bootable partition config begins
image="/boot/vmlinuz-3.8.5"
        root="/dev/hda5"
        label="Linux-3.8.5"
        initrd=/boot/initrd-3.8.5.gz
        read-only

image="/boot/vmlinuz-2.6.36.2"
        root="/dev/hda5"
        label="Linux-2.6.36.2"
        read-only
# Linux bootable partition config ends

# Windows bootable partition config begins
other = /dev/hda1
  label = Windows
  table = /dev/hda
# Windows bootable partition config ends

# Linux older bootable partition config begins
image="/boot/vmlinuz-2.6.28"
        root="/dev/hda5"
        label="Linux-2.6.28"
        read-only
# Linux older bootable partition config ends


Grazie per l'aiuto!

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: dom apr 21, 2013 22:29
da targzeta
È un problema noto ma non riesco a ricordarmi quando l'ho incontrato. Per caso nel /etc/fstab hai scritto /dev/root invece del vero nome del device? Ci dovrebbe essere qualcosa anche nei file /etc/rc.d/.

Guarda qui, si dice di settare le opzioni CONFIG_INOTIFY e CONFIG_INOTIFY_USER a 'y'.

Emanuele

P.S. Guarda anche il post seguente a quello che ti ho linkato, dove linkano la patch ufficiale per mkinitrd per la Slackware 12.2

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: lun apr 22, 2013 21:32
da 414N
Probabilmente stai anche cozzando col passaggio del naming delle partizioni su disco da /dev/hdX a /dev/sdX.
Fossi in te userei gli UUID delle partizioni sia in lilo.conf sia in fstab.

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: mar apr 23, 2013 7:32
da gabry
Vi ringrazio x le risposte!appena ho tempo provo i vs. Suggerimenti e vi riporto i risultati.
Grazie ancora.
Gabry

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: ven apr 26, 2013 8:38
da gabry
Ieri su vostri consigli ho eseguito le seguenti operazioni:
1.installato la patch suggerita del initrd prevista per slackware 12.2

2.ricostruito da capo l'initrd ad hoc x il kernel 3.8.5.

3. Ho ricompilato da capo il kernel

4.ho cambiato su fstab il rootdev con /dev/root / così anche su lilo.

Purtroppo ho sempre il problema identico di cui sopra.
Ho circoscritto il problema attorno ad initrd ma senza successo.
Non riesco a capire chi gli dice che deve montare il /dev/root su /mnt e che sbin/init non esiste!!
Qualche altro suggerimento?
Grazie.

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: sab apr 27, 2013 15:16
da 414N
Il fatto che /sbin/init non venga trovato è consequenziale al fatto che la partizione di root non venga montata correttamente, percui non è un altro problema ;).
Per arrivarci in fondo è meglio che ci aiuti ad aiutarti fornendoci le seguenti informazioni:
  • il contenuto di /etc/fstab
  • la configurazione che hai usato per creare il file initrd per il nuovo kernel
  • il contenuto di /etc/lilo.conf
  • la configurazione delle tua partizioni (fdisk -l o quel che preferisci)
  • l'output del seguente comando:

    Codice: Seleziona tutto

    ls -l /dev/disk/by-uuid
Se li porrai anche in mezzo ai tag code potresti vincere il premio "G00d $L@cky Us3r 2013" ;)

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: sab apr 27, 2013 19:42
da targzeta
Ora che ci penso, probabilmente il tentativo di mount fallito è quello che fa initrd prima di effettuare lo switch_root. L'initrd in effetti monta la root directory sotto /mnt. Quindi il problema quasi sicuramente risiede nella configurazione del kernel. Il passaggio da un 2.6 ad un 3.8 non è così banale. Molte impostazioni che riguardano i filesystem sono state spostate. Che poi, se hai un kernel tutto tuo, a che ti serve l'initrd?

Emanuele

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: sab apr 27, 2013 20:26
da gabry
Ok veniamo a noi:
1. Contenuto di fstab:

Codice: Seleziona tutto

dev/hda7        swap             swap           defaults               0   0
# /dev/hda5        /                reiserfs       defaults                1   1
/dev/root   /   reiserfs   defaults,noatime                1   1
/dev/hda6        /home            reiserfs       defaults,nodev,nosuid            1   2
/dev/hda1        /mnt/windows     ntfs-3g  force,silent,noauto,user,no_def_opts,allow_other,mask=777,umask=0000,rw,locale=it_IT@euro                0   0
/dev/cdrom       /media/cdrom     iso9660       noauto,users,ro        0   0
/dev/sda         /media/sda       auto           noauto,user,rw            0   0
/dev/sdb         /media/sdb       auto          noauto,user,rw                  0   0
/dev/sdb1        /media/sdb1      auto          noauto,user,rw                   0   0 
/dev/sdc         /media/sdc       auto          noauto,user,rw                  0   0
devpts           /dev/pts         devpts         gid=5,mode=620         0   0
proc             /proc            proc           defaults               0   0
tmpfs            /dev/shm         tmpfs          defaults               0   0
none             /sys             sysfs         defaults                        0   0
/dev/sr0         /media/dvd-rom-iomega   iso9660      noauto,users,ro        0   0
 

2. Il comando che ho usato per la creazione del initrd per kernel 3.8.5:

Codice: Seleziona tutto

mkinitrd -s /boot/initrd-tree-3.8.5 -o /boot/initrd-3.8.5 -c -r /dev/root -f reiserfs -k 3.8.5 -m reiserfs


3. Il contenuto del lilo è come sopra:

Codice: Seleziona tutto

image="/boot/vmlinuz-3.8.5"
        root="/dev/root"
        label="Linux-3.8.5"
   initrd=/boot/initrd-3.8.5
        read-only

4. output di fdisk -l:

Codice: Seleziona tutto

Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa484a484

Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        2247    18048996    7  HPFS/NTFS
/dev/hda2            2248        4864    21021052+   f  W95 Ext'd (LBA)
/dev/hda5            2248        3459     9730013   83  Linux
/dev/hda6            3459        4797    10750976   83  Linux
/dev/hda7            4798        4864      538146   82  Linux swap

5.Output di "ls -l /dev/disk/by-uuid":

Codice: Seleziona tutto

lrwxrwxrwx 1 root root 10 Apr 27 20:01 5086DDDF7F866A09 -> ../../hda1
lrwxrwxrwx 1 root root 10 Apr 27 20:01 5bbec30e-d90c-4033-9f2b-38867306bdbb -> ../../hda5
lrwxrwxrwx 1 root root 10 Apr 27 20:01 e584c8b2-0470-4348-bfe5-fdde1222126d -> ../../hda6
lrwxrwxrwx 1 root root 10 Apr 27 20:01 e73b7f0b-6b20-4362-b6da-0e4f814621d5 -> ../../hda7


Tuttavia, essendo d'accordo con Emanuele sul fatto che potrebbe essere un problema di kernel ed in particolare del mio config, per completezza vi allego il mio config-3.8.5 generato da make oldconfig a partire dal config-2.6.36.2.
Grazie!!
Visto che ho usato code... Ho vinto qualche cosa? ;)

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: dom apr 28, 2013 15:34
da 414N
Ecco il bandolo della matassa: hai specificato /dev/root come root partition ovunque, ma nei nuovi kernel quel device (in realtà un banale link simbolico) non viene più creato, ergo il tuo errore all'avvio.
Penso ti convenga procedere nel seguente modo:
  • Converti il tuo fstab in modo che i vari dispositivi siano specificati tramite UUID invece che col nome della partizione: in questo modo, anche se il nuovo kernel rileverà il disco hda come sda (questo è dovuto al passaggio a libata nel kernel che ha unificato i nomi dei dischi pata e sata), il sistema monterà le partizioni giuste nei punti di mount giusti comunque:

    Codice: Seleziona tutto

    #dev/hda7        swap             swap           defaults               0   0
    UUID=e73b7f0b-6b20-4362-b6da-0e4f814621d5        swap             swap           defaults               0   0
    # /dev/hda5        /                reiserfs       defaults                1   1
    UUID=5bbec30e-d90c-4033-9f2b-38867306bdbb   /   reiserfs   defaults,noatime                1   1
    #/dev/hda6        /home            reiserfs       defaults,nodev,nosuid            1   2
    UUID=e584c8b2-0470-4348-bfe5-fdde1222126d      /home            reiserfs       defaults,nodev,nosuid            1   2
    #/dev/hda1        /mnt/windows     ntfs-3g  force,silent,noauto,user,no_def_opts,allow_other,mask=777,umask=0000,rw,locale=it_IT@euro                0   0
    UUID=5086DDDF7F866A09       /mnt/windows     ntfs-3g  force,silent,noauto,user,no_def_opts,allow_other,mask=777,umask=0000,rw,locale=it_IT@euro                0   0

    Le altre voci le commenterei per il momento. Tra l'altro, a cosa ti servono? Per il mount manuale di chiavette/dischi esterni?
    Puoi provare la correttezza dei sopracitati UUID anche col tuo kernel attuale.
  • Ricrea l'initrd con le stesse opzioni ma specificando /dev/sda5 come root partition oppure /dev/hda5 qualora rifiutasse la partizione precedente.
  • Modifica l'entry root=/dev/root in lilo relativa al nuovo kernel con

    Codice: Seleziona tutto

    root="UUID=5bbec30e-d90c-4033-9f2b-38867306bdbb"

    e reinstalla lilo.
Ora l'initrd dovrebbe essere in grado di montare la partizione di root ed avviare il sistema col nuovo kernel.
Quanto ai tag code, hai vinto una Sl@cK-p@cc@ sulle spalle ;)

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: dom mag 05, 2013 22:23
da gabry
Gent.mi,
oggi finalmente ho trovato un po di di tempo x provare i vostri autorevoli suggerimenti:
1. ho convertito fstab con gli uuid come suggerito
2. ho ricostruito il lilo con uuid di root
3. ho ricostruito l'initrd con il comando di cui sopra
Con i vecchi kernel compreso l'attuale tutto funzia.
RiavvianDo con il kernel nuovo invece il problema persiste avendo sempre qualcosa di simile

Codice: Seleziona tutto

/dev/sda5 not mounted on /mnt
bad newroot on /mnt
Error:sbin/init no such file on rootdev

A questo punto ho capito che è un problema di configurazione del kernel.
Ho provato a ricompilare almeno tre volte con opzioni diversi nella sezione generale e tentando di capire chi è il modulo responsabile dello switching di root nel Mount point /mnt
ho deselezionato il modulo builtin initrd del kernel ma non partiva x niente . ora che scrivo mi è venuto un dubbio. Ma initrd dopo una compilazione differente va ricostruito da capo?
Se si dovrò riprovare.
Ho pensato forse che il vero responsabile è l'initrd preimpostato del kernel.
Secondo voi? Potete aiutarmi a capire se nel mio config parte parte generale cè qualcosa che non va?
Boia chi molla!!!;-)

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: dom mag 05, 2013 22:30
da 414N
A mio avviso il problema è sempre l'initrd. Prova a ricrearlo senza specificare alcuna partizione di root, se possibile

Re: Problema upgrade kernel: mounting /dev/root on /mnt fail

Inviato: mer mag 08, 2013 20:22
da ZeroUno
e fare senza initrd?

Compila reiserfs builtin e ti eviti di fare l'initrd.