Il montaggio della cartella condivisa Virtualbox da fstab non riesce; funziona una volta completato l'avvio


41

Ho Ubuntu 13.10 installato in Virtualbox 4.3. Il computer host è Windows.

Ho un paio di cartelle condivise Virtualbox montate da / etc / fstab. Fino a poco tempo fa questa installazione funzionava bene, ma dopo l'aggiornamento da Ubuntu 13.04 e Virtualbox 4.2 (essenzialmente allo stesso tempo) il montaggio fstab ha smesso di funzionare. Ottengo il seguente errore durante l'avvio:

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery

La pressione di M per il ripristino manuale e quindi il tentativo di montare manualmente non riescono:

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device

Ma se invece salto il montaggio durante l'avvio, aspetto l'avvio di Unity e quindi il montaggio manuale in una shell, tutto funziona bene:

benme-vb ~ % ls Documents
benme-vb ~ % sudo mount Documents
[sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted

Nota che quando monto manualmente lascio che mount prenda tutte le opzioni da / etc / fstab, e funziona. Questo mi suggerisce che si tratta di una sorta di problema di temporizzazione, in cui Virtualbox non è "pronto" per fornire i montaggi di file condivisi nel punto in cui vengono eseguiti i montaggi / etc / fstab durante l'avvio.

Ecco la linea fstab, solo per completezza:

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0

C'è qualcosa che posso fare al riguardo da parte di Ubuntu? O qualcuno sa di più su questo dal punto di vista di Virtualbox?

Ho trovato un vecchio rapporto sul localizzatore di bug di Virtualbox con sintomi identici, ma in quel caso l'utente aveva aggiornato Virtualbox senza aggiornare le aggiunte degli ospiti e risolvere il problema; questo non sta succedendo qui, ho sicuramente installato le aggiunte 4.3 per gli ospiti.

Risposte:


46

Mi sono imbattuto anche in questo problema. Montare /var/wwwusando la funzionalità di cartelle condivise VBox, quindi questo è stato abbastanza fastidioso.

La soluzione che ho trovato è stata quella di forzare il vboxsfcaricamento anticipato del modulo, prima del montaggio dei file system. Basta aggiungere vboxsfuna riga a parte /etc/modules.

Un'altra soluzione è quella di impostare noauto in /etc/fstabe montare manualmente le unità /etc/rc.local, ma questa non era una buona soluzione per me perché a quel punto Apache è già iniziata e non è stato in grado di trovare nulla /var/www.


1
eccezionale! l'aggiunta a / etc / module ha funzionato perfettamente. grazie Richard!
ThePosey,

@ThePosey Sono contento di aver aiutato!
Richard Turner,

Questo è stato un problema per me sul guest Ubuntu Server 14.04. E questa risposta (la soluzione / etc / modules) l'ha risolto per me. Grazie! PS Btw, se per caso, cercando di capire / risolvere cose, hai abilitato Auto-mount nelle impostazioni di Virtualbox, disabilitalo di nuovo;)
Reinis

2
@qodeninja Come ho detto nel mio secondo paragrafo: "Basta aggiungere vboxsfuna riga a parte /etc/modules.
Richard Turner

1
Ho dovuto aggiungere vboxguest e vboxsf a / etc / modules su un sistema guest Ubuntu 14.04 per farlo funzionare.
Mattanja,

21

Oltre al suggerimento di Richard Turner di aggiungere vboxsfuna linea a sé /etc/modules, suggerisco di aggiungere l' _netdevopzione mount a /etc/fstab. Ho provato su Ubuntu 12.04 LTS e questo sembra aggiungere la giusta quantità di ritardo per il successo del mount.

La mia /etc/fstabvoce:

dev /media/dev vboxsf defaults,_netdev 0 0


4
Questo funziona per me, anche senza usare la soluzione di Turner. Ha anche molto senso, poiché la pagina della Guida della comunità di Ubuntu per le opzioni di fstab dice: " _netdev- questo è un dispositivo di rete, montalo dopo aver aperto la rete". Ho fatto non deve caricare vboxsfin /etc/modules, semplicemente aggiungendo _netdevfunzionato!
Mark Mikofski,

1
Questo funziona anche per me su Ubuntu 16.04, anche senza la soluzione di Turner.
Zhenya,

5

La correzione di Richard ha smesso di funzionare per me dopo l'ultimo aggiornamento (VirtualBox 4.3.18, Ubuntu 14.04). Fortunatamente sono stato in grado di risolverlo, caricando a vboxsfdestra con il kernel:

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u

Il primo comando aggiunge un parametro per caricare il modulo nel kernel e il secondo aggiorna il file system init. Dopo un riavvio sono stato in grado di utilizzare nuovamente i miei supporti fstab :)

Avvertenza: il processo di avvio potrebbe bloccarsi se non è possibile montare una cartella condivisa. Quindi prova la tua configurazione, prima di aggiungere il modulo a initramfs. Se il sistema si blocca comunque, è possibile avviare in modalità di ripristino per risolvere il problema.


Ho provato questa soluzione per caricare il vboxsfmodulo prima ... Ha semplicemente bloccato la sequenza di avvio, quindi ho dovuto rimuoverlo.
Rerito,

Sì, incluso il modulo che all'inizio potrebbe bloccare il processo di avvio, se la configurazione della cartella condivisa è interrotta. Tuttavia, non ho mai avuto blocchi di avvio con una configurazione corretta ...
Torben,

Ho aggiunto un avvertimento alla risposta per chiarire le cose.
Torben,

4

Volevo solo dire che forzare il vboxsfcaricamento anticipato del modulo mi ha aiutato (come nella risposta di Richard Turner), ma la linea fstab non ha ancora funzionato per me.

Quello che ho finito per fare è stato inserire il comando mount (che ha funzionato) /etc/rc.local. Un po 'di hack ma ha funzionato.


1
Non capisco come il suggerimento di Richard Turner "ti abbia aiutato", ma allo stesso tempo, la linea fstab "non ha ancora funzionato per te" ...?
j_random_hacker,

4

Con la cartella condivisa elencata in fstab trovo che l'avvio si bloccherà quando proverà a montarlo usando VirtualBox 5 e Ubuntu 14.04. La soluzione sembra essere quella di ritardare il montaggio fino a quando il servizio GuestAddition non sarà disponibile (la /etc/modulessoluzione di Richard Turner non mi è sembrata abbastanza).

Per fare questo assicurati di avere noautole opzioni per la cartella condivisa in /etc/fstab. Ad esempio per una cartella condivisa chiamata vmshare:

vmshare    /home/user/share    vboxsf    defaults,noauto    0    0

Quindi aggiungere una linea a /etc/rc.localper montare la condivisione dopo l'avvio:

mount vmshare

Questa è stata l'unica soluzione che ha funzionato per me, usando VBox 5.0.16 e Ubuntu 14.04
TJ Compton,

3

Sembra che vboxsfmanchi l' fs-vboxsfalias (che è il modo in cui i moduli del kernel vengono caricati automaticamente quando si monta quel tipo di filesystem per la prima volta), quindi aggiungere l'alias in /etc/modprobe.ddovrebbe fare il trucco:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf

Non ho provato questo da solo, ma sembra promettente.
j_random_hacker,

2

Ho avuto lo stesso problema e stavo lavorando sulle soluzioni suggerite, ma senza successo. La soluzione di Torben ha bloccato il bagagliaio, quindi è stato necessario annullarlo. Quindi ho pensato di dover risolvere il problema /etc/fstabutilizzando sudo mount -a. La sintassi della mia voce sembrava perfetta, ma non è riuscita. Sono stato anche in grado di montare manualmente il filesysten usando il comando mount nella finestra del terminale.

Quello che ho scoperto è che avevo spazi tra i primi due parametri (dispositivo e punto di montaggio). Li ho sostituiti con una scheda e funziona. Veramente?!!!!


Sei sicuro che fossero due caratteri spaziali (codice ASCII 32)? Perché uno o più di questi dovrebbero andare bene come un carattere di tabulazione. A volte scrivo accidentalmente caratteri di spazio non interrompibile quando premo il tasto maiuscole all'inizio o lo rilascio troppo tardi mentre premo la barra spaziatrice. Sembrano uguali ma confondono molte applicazioni.
David Foerster,

Tutto quello che so è che ho spostato indietro tutto lo spazio bianco e inserito una singola scheda e poi ha funzionato.
Svenyonson,

Cambiare i miei spazi per le schede ha funzionato per me. Il mio / etc / fstab esistente aveva degli spazi (per quanto potevo dire) e li ho replicati esattamente. Le linee esistenti avevano un unico spazio. Ma riscrivere la mia con le schede ha fatto funzionare tutto.
jcaruso,

Questo non ha funzionato per me, ma seguendo la raccomandazione di Kevin Sadler di usare noautoper ritardare il montaggio e poi aggiungere mount <sharename>al rc.localtrucco. Non ho provato la soluzione di Turner.
Mark Mikofski,

1

Credo di aver trovato il modo giusto di affrontarlo in Arch Wiki . Usa l' comment=systemd.automountopzione.

L'opzione sopra va nel /etc/fstabfile con le altre opzioni. Per esempio:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0

Questo non ha funzionato per me, ma la risposta di Keven Sadlier ha funzionato.
Mark Mikofski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.