Le montage du dossier partagé Virtualbox à partir de fstab échoue; fonctionne une fois le démarrage terminé

41

Ubuntu 13.10 est installé dans Virtualbox 4.3. La machine hôte est Windows.

J'ai quelques dossiers partagés Virtualbox en cours de montage par / etc / fstab. Jusqu'à récemment, cette configuration fonctionnait parfaitement, mais après la mise à niveau à partir d'Ubuntu 13.04 et de Virtualbox 4.2 (pratiquement à la même heure), le montage de fstab a cessé de fonctionner. J'obtiens l'erreur suivante au démarrage:

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

Appuyer sur M pour la récupération manuelle puis essayer de monter manuellement échoue également:

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

Mais si au lieu de cela, je saute le montage au démarrage, attend le démarrage de Unity, puis le montage manuel dans un shell, tout fonctionne correctement:

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

Notez que lorsque je monte manuellement, je laisse mount prendre toutes les options de / etc / fstab, et cela fonctionne. Cela me suggère qu'il s'agit d'une sorte de problème de synchronisation, lorsque Virtualbox n'est pas "prêt" à fournir les montages de fichiers partagés au moment où / etc / fstab sont exécutés pendant le démarrage.

Voici la ligne fstab, juste pour être complet:

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

Est-ce que je peux faire quelque chose à ce sujet du côté Ubuntu? Ou est-ce que quelqu'un en sait plus à ce sujet sous l'angle de la Virtualbox?

J'ai trouvé un ancien rapport sur l'outil de suivi des bugs Virtualbox présentant des symptômes identiques, mais dans ce cas, l'utilisateur avait mis à jour Virtualbox sans mettre à jour ses ajouts invités ni résoudre le problème; cela ne se produit pas ici, j'ai certainement les ajouts invités 4.3 installés.

Ben
la source

Réponses:

46

Je suis aussi tombé sur ce problème. Je monte en /var/wwwutilisant la fonctionnalité de dossiers partagés de la VBox, donc c'était assez ennuyant.

La solution que j'ai trouvée consistait à forcer le vboxsfchargement précoce du module, avant le montage des systèmes de fichiers. Il suffit d’ajouter vboxsfune ligne distincte dans /etc/modules.

Une autre solution consiste à configurer noauto in /etc/fstabet à monter manuellement les lecteurs /etc/rc.local, mais ce n’était pas une si bonne solution pour moi car à ce moment-là, Apache avait déjà démarré et n’avait rien trouvé /var/www.

Richard Turner
la source
1
impressionnant! l'ajout à / etc / modules a parfaitement fonctionné. merci Richard!
ThePosey
@ThePosey Heureux d'avoir aidé!
Richard Turner
Cela a été un problème pour moi sur l'invité Ubuntu Server 14.04. Et cette réponse (la solution / etc / modules) l’a résolue. Merci! PS Btw, si par hasard, en essayant de résoudre / résoudre des problèmes, activez le montage automatique dans les paramètres de Virtualbox, désactivez-le à nouveau;)
lundi
2
@qodeninja Comme je le disais dans mon deuxième paragraphe: "Il suffit d'ajouter vboxsfune ligne à part /etc/modules.
Richard Turner
1
Pour que cela fonctionne, j'ai dû ajouter vboxguest et vboxsf à / etc / modules sur un système invité Ubuntu 14.04.
mattanja
21

En plus de la suggestion de Richard Turner d'ajouter vboxsfune ligne distincte à /etc/modules, je suggère d'ajouter l' _netdevoption de montage à /etc/fstab. J'ai testé sur Ubuntu 12.04 LTS et cela semble ajouter juste ce qu'il faut de temps pour que le montage réussisse.

Mon /etc/fstabentrée:

dev /media/dev vboxsf defaults,_netdev 0 0

deoren
la source
4
Cela fonctionne pour moi, même sans utiliser la solution de Turner. Cela semble également logique, car la page d’aide de la communauté Ubuntu pour les options fstab indique: " _netdev- ceci est un périphérique réseau, montez-le après avoir mis en place le réseau." Je ne pas avoir à charger vboxsfdans /etc/modules, tout ajout _netdeva fonctionné!
Mark Mikofski
1
Cela fonctionne aussi pour moi sur Ubuntu 16.04, même sans la solution de Turner.
Zhenya
5

Le correctif de Richard a cessé de fonctionner pour moi après la dernière mise à jour (VirtualBox 4.3.18, Ubuntu 14.04). Heureusement, j'ai pu résoudre ce problème en chargeant vboxsfcorrectement avec le noyau:

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

La première commande ajoute un paramètre pour charger le module dans le noyau et la seconde met à jour le système de fichiers init. Après un redémarrage, j'ai pu utiliser à nouveau mes montages fstab :)

Avertissement: Le processus de démarrage peut se figer si un dossier partagé ne peut pas être monté. Testez donc votre configuration avant d’ajouter le module à initramfs. Si votre système se bloque quand même, vous pouvez démarrer en mode de récupération pour résoudre le problème.

Torben
la source
J'ai essayé cette solution pour charger le vboxsfmodule plus tôt ... Cela a juste gelé ma séquence de démarrage, donc j'ai dû la retirer.
Rerito
Ouais, y compris le module qui a débuté peut geler le processus de démarrage, si la configuration de votre dossier partagé est cassée. Cependant, je n'ai jamais rencontré de blocage de démarrage avec une configuration correcte ...
Torben
J'ai ajouté un avertissement à la réponse pour clarifier les choses.
Torben
4

Je voulais juste dire que forcer le vboxsf module à charger tôt m'a aidé (comme dans la réponse de Richard Turner), mais la ligne fstab ne fonctionnait toujours pas pour moi.

Ce que j'ai fini par faire a été de mettre la commande mount (qui a fonctionné) /etc/rc.local. Un peu de bidouille mais cela a fonctionné.

ezuk
la source
1
Je ne comprends pas comment la suggestion de Richard Turner "vous a aidé", mais en même temps, la ligne fstab "n'a toujours pas fonctionné pour vous" ...?
j_random_hacker
4

Avec le dossier partagé répertorié dans fstab, je constate que le démarrage s’arrêtera lorsqu’il essaiera de le monter avec VirtualBox 5 et Ubuntu 14.04. La solution semble être de retarder le montage jusqu'à ce que le service GuestAddition soit disponible (la /etc/modulessolution de Richard Turner ne me semblait pas suffisante).

Pour ce faire, assurez-vous que vous avez noautoles options pour le dossier partagé dans /etc/fstab. Par exemple pour un dossier partagé appelé vmshare:

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

Ajoutez ensuite une ligne pour /etc/rc.localmonter le partage après le démarrage:

mount vmshare
Kevin Sadler
la source
C’était la seule solution qui fonctionnait pour moi, avec VBox 5.0.16 et Ubuntu 14.04
TJ Compton le
3

Il semble qu'il vboxsfmanque les fs-vboxsfalias (c'est ainsi que les modules du noyau sont automatiquement chargés lors du premier montage de ce type de système de fichiers), aussi l'ajout de l'alias dans /etc/modprobe.ddevrait faire l'affaire:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf
hyperair
la source
Je n'ai pas essayé moi-même, mais cela semble prometteur.
j_random_hacker
2

J'avais le même problème et je travaillais à travers les solutions suggérées, mais sans succès. La solution de Torben a gelé la botte et a donc dû la défaire. Ensuite, j'ai pensé que je devrais résoudre les problèmes en /etc/fstabutilisant sudo mount -a. La syntaxe de mon entrée semblait parfaite, mais elle a quand même échoué. J'ai également pu monter manuellement le système de fichiers à l'aide de la commande mount de la fenêtre du terminal.

Ce que j'ai trouvé, c'est qu'il y avait des espaces entre les deux premiers paramètres (périphérique et point de montage). Je les ai remplacés par un onglet et ça marche. Vraiment?!!!!

Svenyonson
la source
Etes-vous sûr qu'il s'agissait de deux espaces (code ASCII 32)? Parce qu'un ou plusieurs d'entre eux devraient être aussi bons qu'un caractère de tabulation. Parfois, je tape accidentellement des caractères d'espacement insécables lorsque j'appuie tôt sur ma touche Maj ou que je le libère trop tard tout en appuyant sur la barre d'espace. Ils se ressemblent mais confondent beaucoup d'applications.
David Foerster
Tout ce que je sais, c'est que je me suis faufilé dans tout l'espace blanc et que j'ai inséré un seul onglet et que cela a fonctionné.
Svenyonson
Changer mes espaces pour les onglets a fonctionné pour moi. Mon fichier / etc / fstab existant contenait des espaces (autant que je sache) et je les ai répliqués exactement. Les lignes existantes avaient un seul espace. Mais ré-écrire le mien avec des onglets a tout fait fonctionner.
Jcaruso
Cela n'a pas fonctionné pour moi, mais après la recommandation de Kevin Sadler d'utiliser noautopour retarder le montage puis en ajoutant mount <sharename>à rc.localfait l'affaire. Je n'ai pas essayé la solution de Turner.
Mark Mikofski
1

Je pense avoir trouvé le bon moyen de gérer cela dans Arch Wiki . Utilisez l' comment=systemd.automountoption.

L'option ci-dessus va dans le /etc/fstabfichier avec les autres options. Par exemple:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0
ultracrepidarien
la source
Cela n'a pas fonctionné pour moi, mais la réponse de Keven Sadlier a fonctionné.
Mark Mikofski