# VFS: Unable to mount root fs via NFS, trying floppy[risolto]

## loky

Salve a tutti, sto cercando di installare Gentoo e per farlo sto seguendo la guida ufficiale.

Pensavo di essere a buon punto: ho configurato GRUB e sembra funzionare correttamente, ma il caricamento del sistema operativo si blocca e compare la seguente frase:

```
VFS: Unable to mount root fs via NFS, trying floppy
```

dopo la quale compare un messaggio che richiede di inserire il floppy seguito da una serie di messaggi di errore.

Ho configurato male grub o il file /etc/fstab, oppure ho proprio sbagliato la configurazione del kernel?

Grazie a tutti anticipatamente.Last edited by loky on Fri Dec 26, 2008 12:10 pm; edited 1 time in total

----------

## Peach

 *loky wrote:*   

> Ho configurato male grub o il file /etc/fstab, oppure ho proprio sbagliato la configurazione del kernel?

 

si, ma se non le posti, come facciamo a saperlo?

----------

## loky

Hai ragione scusami...

Questo è il mio fstab:

```
# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't 

# needed; notail increases performance of ReiserFS (at the expense of storage 

# efficiency).  It's safe to drop the noatime options if you want and to 

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>         <mountpoint>   <type>      <opts>      <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#/dev/BOOT      /boot      ext2      noauto,noatime   1 2

/dev/sda3      /      ext3      noatime      0 1

/dev/sda5      none      swap      sw      0 0

/dev/cdrom      /mnt/cdrom   auto      noauto,user   0 0

#/dev/fd0      /mnt/floppy   auto      noauto      0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for 

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm         /dev/shm   tmpfs      nodev,nosuid,noexec   0 0
```

e questo è il mio menu.lst (visto che ho già installato grub per Archlinux, ho modificato menu.lst anzichè reinstallare tutto grub. Va bene?):

```
# (0) Arch Linux

title  Arch Linux

root   (hd0,0)

kernel /boot/vmlinuz26 root=/dev/sda1 ro

initrd /boot/kernel26.img

# (1) Arch Linux

title  Arch Linux Fallback

root   (hd0,0)

kernel /boot/vmlinuz26 root=/dev/sda1 ro

initrd /boot/kernel26-fallback.img

#Gentoo

title Gentoo linux

root (hd0,2)

kernel /boot/kernel-2.6.26-gentoo-r4 root=/dev/sda3

#Gentoo rescue

title Gentoo linux (rescue)

root (hd0,2)

kernel /boot/kernel-2.6.26-gentoo-r4 root=/dev/sda3 init=/bin/bb
```

----------

## Peach

non capisco che c'entra NFS con la tua configurazione

ipotizzo: 

- non hai compilato come statici il supporto ai filesystem che usi nel tuo sistema

- hai fatto qualcosa per avere la root montata via NFS all'avvio (?)

- altro che non mi viene in mente al momento...

per favore, controlla che hd(0,2) si riferisca correttamente alla partizione che contiene la directory /boot/ della tua macchina gentoo.

puoi controllarlo entrando in console di grub all'avvio (o editando il comando premendo e )

----------

## cloc3

 *Peach wrote:*   

> - hai fatto qualcosa per avere la root montata via NFS all'avvio (?)
> 
> 

 

posta l'output di questo comando, per il tuo file .config:

```

grep  ROOT_NFS .config

```

----------

## loky

Il risultato del comando 

```
grep  ROOT_NFS .config
```

 è: 

```
No such file or directory .config
```

forse devo eseguirlo in una directory particolare.. Io l'ho eseguito nella directory di root..

----------

## cloc3

 *loky wrote:*   

> 
> 
> forse devo eseguirlo in una directory particolare.. Io l'ho eseguito nella directory di root..

 

si nella cartella del tuo kernel.

in teoria, /usr/src/linux a patto che linux sia un link corretto alla verisione di kernel attuale.

che è la stessa da cui si lancia menuconfig.

ho il sospetto che tu abbia compilato il supporto per l'avvio da rete, mi pare che il percorso per eliminare quella impostazione con menuconfig sia:

filesystem ---> filesysytem_di_rete>...

ma adesso non ricordo bene e non posso verificare.

----------

## djinnZ

network->options->kernel level autoconfiguration->bootp forse?

----------

## loky

Allora: il risultato del comando 

```
grep  ROOT_NFS .config
```

era

```
CONFIG_ROOT_NFS=y
```

quindi sono entrato in menuconfig File System---> Network file system ed ho tolto la parte riguardante NFS. Ora quando do il suddetto comando non mi da niente, ma quando provo ad avviare il sistema ottengo:

```
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
```

Ho provato anche a tenere la parte riguardante NFS e a togliere solo la parte Root via NFS (o qualcosa del genere), ma il risultato è sempre kernel panic...

----------

## Peach

 *loky wrote:*   

> Allora: il risultato del comando 
> 
> ```
> grep  ROOT_NFS .config
> ```
> ...

 

beh è lampante che i due errori sono COMPLETAMENTE diversi.

questo errore è perché la riga "root=" che appendi alla riga di boot del kernel non è corretta. E se è corretta, non può accedere al device, perché non c'è o ha un nome diverso.

È molto probabile che ti sia dimenticato completamente di aggiungere il supporto statico al tuo bus PATA/SATA. dopo quella riga di kernel panic, non ti dice se ci sono altri device disponibili? che kernel stai usando?

PS : perché non hai usato genkernel per configurare il kernel in prima istanza?

----------

## loky

Il kernel che sto usando è 2.6.26-gentoo-r4. Cmq in questo momento sto compilando il kernel utilizzando genkernel. 

Quali sono i difetti di un kernel compilato con genkernel rispetto ad uno configurato manualmente?? Io avevo optato per la configurazione manuale piochè, avendo a disposizione un pc un po' datato, ho pensato che sarebbe stato più leggero. Mi sbagliavo??

----------

## djinnZ

Se sai quel che fai genkernel non è utilissimo (ma le persone intelligenti sono sempre pigre e ti risparmi la sequenza del make [menu|x|g]config ; make bZimage modules ; ... usando un solo comando) se sei alle prime armi o sai che sei distratto è utile per partire da una configurazione sicuramente funzionante che puoi sempre personalizzare con l'uso del parametro --menuconfig ad esempio.

Leggi il file di configurazione (è commentato) e l'help, non dovrebbe esserti difficile configurarlo al meglio.

----------

## loky

Dopo aver compilato il kernel con grnkernel non mi da più quell'errore:

```
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
```

........... Però me ne da un altro!!

```
Could not find the root block device in.

Please specify another value or: press Enter for the same, type "shell" for a shell, or "q" to skip...

root block device()::
```

e aspetta la mia risposta...

----------

## cloc3

 *loky wrote:*   

> 
> 
> ........... Però me ne da un altro!!
> 
> 

 

ottimo.

probabilmente la riga di grub che stai utilizzando non è adatta al tuo sistema.

oramai genkerrnel è uno strumento affidabile ed è consigliabile per le prime installazioni.

come è spiegato nel manuale, genkernel genera un kernel e una initrd.

bisogna quindi configurare grub per usarle entrambe, altrimenti corri il rischio che il kernel si avvii senza i moduli che ti consentono di leggere l'hd-disk.

digitando shell, come suggerito, entri in un ambiente che ti permette di fare qualche verifica.

scrivi ls /dev/hd* /dev/sd* e osserva le risposte.

se trovi lapartizione che vorresti montare come root, significa che hai sbagliato la prima riga di grub.

quella che dice:

```

kernel /path root=/dev/quellagiusta
```

altrimenti significa che devi partire con l'initrd, aggiungendo una nuova riga a grub:

```

initrd /path_della_initrd

```

puoi modificare grub al volo digitando la lettera e in avvio, per fare tutte le prove necessarie.

----------

## loky

Ok ora ho corretto la riga di grub e posto la sezione del file di grub che riguarda Gentoo:

```
#Gentoo

title Gentoo linux

root (hd0,2)

kernel /boot/kernel-genkernel-x86-2.6.26-gentoo-r4 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3

initrd /boot/initramfs-genkernel-x86-2.6.26-gentoo-r4
```

Ora carica la partizione di root, ma mi da un errore dovuto al fatto che si aspetta una partizione ext2 mentre la mia è una ext3. Non capisco per quale motivo dato che il mio file /etc/fstab è:

```
...

/dev/sda5               none            swap            sw              0 0

/dev/sda3      /      ext3      noatime      0 1

/dev/cdrom      /mnt/cdrom   auto      noauto,user   0 0

...
```

Non riesco proprio a capire dove sbaglio...

----------

## cloc3

 *loky wrote:*   

> 
> 
> ```
> real_root=/dev/hda3
> 
> ...

 

----------

## Peach

```
# zgrep -i EXT3  /usr/src/linux/.config

CONFIG_EXT3_FS=y

# CONFIG_EXT3_FS_XATTR is not set

# CONFIG_EXT3_FS_POSIX_ACL is not set

# CONFIG_EXT3_FS_SECURITY is not set
```

devi avere almeno questa abilitata: c'è? 

se non c'è ricompila il kernel con il supporto a ext3 internamente

----------

## loky

Il risultato del comando zgrep -i EXT3  /usr/src/linux/.config è:

```
CONFIG_EXT3_FS=y 

CONFIG_EXT3_FS_XATTR=y 

CONFIG_EXT3_FS_POSIX_ACL=y 

CONFIG_EXT3_FS_SECURITY=y
```

quindi ce l'ho il supporto per ext3, o sbaglio?

----------

## Peach

ottimo cloc3 nn avevo visto il tuo post e nemmeno l'errore...  :Rolling Eyes: 

----------

## loky

OK ho risolto cambiando la linea di /etc/fstab da:

```
/dev/sda3      /      ext3      noatime      0 1
```

a:

```
/dev/hda3      /      ext3      noatime      0 1
```

Un sentito GRAZIE a tutti...

----------

## Peach

ricordati di modificare il primo post aggiungendo al titolo "[risolto]"

cmq assicurati che tutti i device in fstab siano corretti ed esistenti.

----------

