web-dev-qa-db-fra.com

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

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. Je reçois le message d'erreur suivant lors du 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 montés au moment du 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 de Virtualbox présentant des symptômes identiques, mais dans ce cas, l'utilisateur avait mis à jour Virtualbox sans mettre à jour ses ajouts et résoudre ce problème; cela ne se produit pas ici, j'ai certainement les ajouts invités 4.3 installés.

41
Ben

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

La solution que j'ai trouvée consistait à forcer le chargement du module vboxsf avant le montage des systèmes de fichiers. Ajoutez simplement vboxsf sur une ligne distincte dans /etc/modules.

Une autre solution consiste à définir noauto dans /etc/fstab et à monter manuellement les lecteurs dans /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 était incapable de trouver quoi que ce soit dans /var/www.

46
Richard Turner

En plus de la suggestion de Richard Turner d’ajouter vboxsf sur une ligne propre à /etc/modules, je suggère d’ajouter l’option _netdev à l’option /etc/fstab. J'ai testé sur Ubuntu 12.04 LTS et cela semble ajouter le délai nécessaire à la réussite du montage.

Mon entrée /etc/fstab:

dev /media/dev vboxsf defaults,_netdev 0 0

21
deoren

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 vboxsf à droite 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 :)

Attention: Le processus de démarrage peut se bloquer 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.

5
Torben

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

Pour ce faire, assurez-vous que vous avez noauto comme 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 à /etc/rc.local pour monter le partage après le démarrage:

mount vmshare
4
Kevin Sadler

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

J'ai fini par mettre la commande mount (qui fonctionnait) dans /etc/rc.local. Un peu de bidouille mais cela a fonctionné.

4
ezuk

Il semble que vboxsfne possède pas l'alias fs-vboxsf (c'est ainsi que les modules du noyau sont automatiquement chargés lors du premier montage de ce type de système de fichiers). L'ajout de l'alias dans /etc/modprobe.d devrait donc s'avérer utile:

$ echo "alias fs-vboxsf vboxsf" | Sudo tee /etc/modprobe.d/vboxsf.conf
3
hyperair

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. Alors j'ai pensé que je devrais résoudre /etc/fstab en utilisant 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?!!!!

2
svenyonson

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

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

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