Question Comment monter un dossier partagé VirtualBox au démarrage?


J'ai Ubuntu installé dans Virtualbox. Je veux monter mon dossier partagé VirtualBox dans Ubuntu automatiquement lorsque je me connecte à Ubuntu. Je mets la ligne suivante dans mes ~. / Bashrc et ~ / .bash_profile:

sudo mount -t vboxsf windows_share /media/windows_share

où windows_share est le nom que j'ai créé avec Virtualbox. Mais chaque fois que je démarre mon Ubuntu, il me demande de passer un mot de passe car il a besoin de sudo. Y a-t-il un moyen de monter automatiquement le partage Windows sans saisir de mot de passe chaque fois que je me connecte?


69
2018-02-08 18:58


origine




Réponses:


Pour toujours monter un "dossier partagé" Virtual Box lors du démarrage d'un invité Ubuntu, nous avons deux options. Il est préférable de choisir celle qui convient le mieux à notre environnement.

1. Montez avec fstab

Pour monter un dossier partagé en utilisant le vboxsf système de fichiers fourni avec Ajouts d'invités nous devons d'abord nous assurer les conditions préalables sont remplies. Alors nous pouvons mettre la ligne suivante dans notre etc/fstab fichier:

<name_of_share>   /path/to/mountpoint   vboxsf   <options>  0   0

Remplacer name_of_share et /path/to/mountpoint avec votre configuration individuelle (le répertoire du point de montage doit être créé en premier). Voir la page de manuel pour le montage <options>. Une possibilité est de monter avec defaults, ou pour donner des options de montage spécifiques (par ex. rw, suid, exec, auto, users).

Sur certains systèmes, le vboxsf le module noyau n'est pas encore chargé au moment fstab est lu au démarrage Il peut alors aider à ajouter le vboxsf module noyau à /etc/modules.

Certains systèmes peuvent nécessiter une option comment=systemd.automount dans leur entrée fstab (la source).

2. Monter avec Virtual Box "montage automatique":

Dans les dernières versions de Virtual Box, nous pouvons également monter automatiquement des dossiers partagés lors de la création:

enter image description here

Après un redémarrage de l'invité, ce dossier partagé sera monté dans le répertoire invité. /media/<username>/sf_<name_of_share> accessible à tous les utilisateurs devenus membres du groupe vboxsf.


89
2018-02-08 19:29



Comment changez-vous le répertoire de montage et le préfixe de montage? Est-ce que vous exécutez des commandes de terminal dans l'OS HOST ou l'OS GUEST? - CMCDragonkai
Cette fonctionnalité nécessite que le service "virtualbox-guest-utils" ait démarré et sous Ubuntu 14.04, ce service démarre plus tard que les systèmes de fichiers ne sont montés. C'est la raison de l'erreur "périphérique introuvable" lors du montage des partages via fstab - kolypto
@garromark, ma seule idée est de créer un script upstart, ce qui est assez simple. Une autre option consiste à mettre la même entrée fstab, mais en ajoutant "noauto", il suffit de la monter manuellement. - kolypto
@ kolypto, merci de me contacter. J'ai en fait trouvé deux solutions concurrentes, dont une seule fonctionnait pour moi: l'option 1) (a travaillé pour moi), est, comme vous l'avez dit, de mettre noautoDans les options fstab, puis dans un script de démarrage (tel que .profile), l'option 2), le problème principal étant que vboxsf n'est pas chargé avant que fstab ne soit lancé, ajoutez vboxsf au fichier /etc/modules, demandant au kernal de charger le module avant que fstab ne soit exécuté. Peut-être que cela aidera quelqu'un d'autre. - garromark
n'oubliez pas d'ajouter votre utilisateur au groupe vboxsf. Vous pouvez vous référer à askubuntu.com/questions/79565/add-user-to-existing-group - chinloong


  1. modifier /etc/rc.local

    sudo -H gedit /etc/rc.local
    
  2. Avant exit 0 type:

    mount.vboxsf windows_share /media/windows_share vboxsf
    
  3. sauvegarder

  4. (Optionnel) Créez un raccourci vers le bureau ou le dossier de base:

    ln -s /media/windows_share /home/freddy/Desktop
    

Pour démarrer sans erreur, comme appuyer sur S pour sauter montage ou presse M pour réparer manuellement vous devrez peut-être supprimer votre entrée dans fstab


24
2018-01-27 23:07



C'est la seule façon que j'ai trouvé pour travailler, essayé RC.Local avec la commande de montage régulière, essayé FSTAB, essayé Crontab w / script. Merci énormément !! - FreeSoftwareServers
Cela a fonctionné pour moi aussi (opposé à la réponse acceptée, pas très bien pourquoi). Donc un grand merci de ma part! :) - Daniel Lisik
Travaillé pour moi J'ai édité /etc/rc.local avec ça mount -t vboxsf [-o OPTIONS] sharename mountpoint. - neurite
Au nom des arguments et pour refléter le cas de la virtualbox: je le faisais au début sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) windows_share ~/shared/mount_point et a fini par mettre les éléments suivants dans /etc/rc.local: mount -t vboxsf windows_share /home/dev/shared/mount_point où dev est mon utilisateur, FYI / etc / fstab fonctionne également! - MediaVince
Votre réponse a fonctionné pour moi, mais les répertoires sont montés en tant que root. J'ai changé le mount commande en rc.local script pour inclure mon identifiant utilisateur (2000): mount.vboxsf -o rw,uid=1000 /home/mwittie/Dropbox Dropbox vboxsf. PS Si quelqu'un cherche un tutoriel sur la façon d'activer rc.local sur Ubuntu 17.04 ce a travaillé pour moi PPS Je n'ai pas besoin d'inclure vboxsf dans /etc/modules. - Mike Wittie


Après une matinée épuisante d'essayer tout ce qui précède dans Ubutntu 16.04 fonctionnant dans Virtualbox 5.0.20 sans succès (particulièrement déçu que la solution rc.local n'ait pas fonctionné), cela a fonctionné en:

  1. Enregistrer à partir du menu Shared Folders de Virtualbox GUI le répertoire requis, mais PAS le montage automatique ou le montage permanent à partir de Virtualbox. Sinon, le répertoire hôte est monté par root et il est difficile d’accéder aux utilisateurs non-root même du groupe admin.

  2. ajouter une entrée simple dans fstab:

    [VirtuablBoxNameOfMount] /media/[guestOSuser]/[mountSubdir]    vboxsf   rw, noauto   0     1
    

    Remarque noauto option - sinon boot loader échoue comme cela a été noté.

  3. Ajouter la ligne correspondante à /etc/sudoers comme suit en utilisant la commande visudo à partir de l'OS invité:

    ALL ALL = NOPASSWD: /bin/mount /media/[guestOSuser]/[mountSubdir]/
    

Cela permettra aux processus non-root de les monter spécifiquement (car fstab ne peut pas monter avec l'option 'user' ...)

  1. Ajoutez la ligne correspondante à .profile de l'utilisateur:

    sudo mount /media/[guestOSuser]/[mountSubdir]/
    

Désormais, le sous-répertoire hôte sélectionné est prêt pour l'utilisateur sélectionné lors de la connexion!


3
2018-06-04 11:35



Avez-vous déjà trouvé une solution de contournement pour noauto? - Jörgen Sigvardsson
C'est la seule solution qui a fonctionné pour moi. Mais en plus, je devais aussi ajouter "vboxsf" à / etc / modules pour m'assurer que .profile n'exécutait pas les commandes de montage avant que la vboxsf ne soit prête. - huyz
au lieu d'utiliser sudo, ajoutez 'user' à l'option fstab et tout utilisateur peut monter le système de fichiers - Lars Nordin
voir pclosmag.com/html/issues/200709/page07.html Pour plus d'informations sur la mise à jour de fstab, les commentaires n'étaient que partiellement utiles. La quatrième colonne de fstab est une liste d'options séparées par des virgules, qui ajoutent l'utilisateur (uid = xxx) à cette liste, par ex. noauto, uid = 1000, gid = 1000 - qodeninja
Il y a un blanc entre rw, noauto qui entraîne une erreur d'analyse. sans le blanc, l'échantillon a fonctionné pour moi - weberjn


J'ai essayé la solution rc.local mais je n'ai pas réussi à la faire fonctionner.
Cependant, j'ai découvert que le problème semble être lié au dossier à partir duquel vous exécutez la commande (aucune idée de la raison). J'ai donc ajouté une ligne pour changer le répertoire à mon dossier personnel avant la commande mount, et maintenant cela fonctionne.

Donc, mon partage Windows est appelé Dropbox, mon point de montage est /home/jamie/Dropbox, mon nom d'utilisateur est jamie, c'est ce que j'ai mis dans rc.local:

cd /home/jamie
mount.vboxsf /home/jamie/Dropbox Dropbox vboxsf
exit 0

3
2017-12-17 12:12



Brillant! Merci. Après avoir lutté avec les autres solutions, cela a fonctionné la première fois! - Norbert Norbertson
Je devais ajouter un sleep 2 avant de monter l'appareil. - Adriano P


Je le fais d'un mode très similaire à a été proposé ci-dessus mais ces scripts créent le requis et montent ou démontent le dossier partagé avec le script suivant:

#!/bin/bash
#
# Mount automatically even shared folder on startup and unmount it at shutdown.
#
# VirtualBox (c) 2015 by Oracle Systems Inc.
#
####

# Check user privileges.
if [[ $EUID -ne 0 ]]; then
    echo -e "This script must run at ROOT user!" \
        "\nPlease, use 'sudo', 'visudo' or any other to run it."
    exit 1
fi

# Check paramas from caller.
if [[ $# -eq 0 ]]; then
    echo -e "Auto-Mount selected shared folder of VirtualBox machine." \
        "\nUsage:" \
        "\n    VBoxShared <drive_one> <drive_two> <...>"
    exit 2
fi

declare EVENT=          # This set the ACTION: -m OR -u
declare -a DRIVES=()

# Processing each param:
for arg in "$@"; do
    case "$arg" in
        "-m"|"--mount")
            if [[ -z ${EVENT} ]]; then
                EVENT=-m
            else
                exit 318        # parameters at conflict!
            fi
            ;;

        "-u"|"--umount")
            if [[ -z ${EVENT} ]]; then
                EVENT=-u
            else
                exit 318        # parameters at conflict!
            fi
            ;;

        *)
            DRIVES=("${DRIVES[@]}" "${arg}")
            ;;
    esac
done
unset arg

[[ -z ${EVENT} ]] && exit 1             # ERROR: No se ha establecido la acción a realizar.
[[ "${#DRIVES[@]}" -gt 0 ]] || exit 1   # ERROR: No se han indicado las unidades a manejar.

# Process each shared folder stored on '${DRIVES}' array
for drive in "${DRIVES[@]}"; do
    DEST="/media/sf_${drive}"

    case "${EVENT}" in
        "-m")
            [[ -d ${DEST} ]] || (mkdir ${DEST} && chown root:vboxsf ${DEST} && chmod 770 ${DEST})
            mount -t vboxsf ${drive} ${DEST}
            ;;

        "-u")
            if [[ `df --output=target | grep "${DEST}"` > /dev/null ]]; then
                umount -f ${DEST}
                rm -rf "${DEST}"
            fi
            ;;
    esac
    unset DEST
done
unset drive

unset EVENT
unset DRIVES
exit 0

Sauve le comme /opt/.scripts/VBoxShared.sh.

Assurez-vous que cela peut être exécuté. Sur type de coque:

sudo chmod a+x /opt/.scripts/VBoxShared.sh

Maintenant, nous ajoutons une ligne qui exécute ce script sur rc.local:

sudo nano /etc/rc.local

et nous ajoutons ces lignes avant la dernière ligne (exit 0):

. /opt/.scripts/VBoxShared.sh --mount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]

Sauvegarder (CtrlO) et fermez-le (CtrlX)

À ce stade, nous montons automatiquement tous les dossiers partagés répertoriés sur <SharedFolder> au démarrage

Pour le démonter, il suffit de saisir le type:

sudo nano /etc/rc6.d/K99-vboxsf-umount.sh

#!/bin/bash

. /opt/.scripts/VBoxShared --umount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]

exit 0

Sauvegarder (CtrlO) et fermer (CtrlX)

sudo chmod a+x /etc/rc6.d/K99-vboxsf-auto.sh

Et c'est tout!


2
2017-09-04 07:41





Voici une solution de travail.

En tant que root (I.E. sudo su) Allez dans le dossier home (cd ~) et créez un fichier cron:
vi cronjobs
Ajouter le suivant
@reboot dort 15; mount -t vboxsf app / mnt / app

Enregistrer le fichier

Remarque: remplacez app par votre nom de dossier partagé et / mnt / app où vous souhaitez le monter. Dans ce cas, j'ai créé l'application de dossier sous monture (application mkdir) en premier.

Pour activer votre cron en tant que root (pour le nom de fichier ci-dessus)
crontab cronjobs

Assurez-vous que cron est actif:
crontab -l

redémarrer et il sera monté. Un sommeil de 15 secondes laisse suffisamment de temps pour que tout soit prêt pour le montage.


2
2017-09-15 13:44



rc.local dans la réponse acceptée a été supprimé dans une version récente d'Ubuntu. Cette solution alternative fonctionne :) - shonky linux user


J'ai récemment rencontré ce fil lorsque, après la mise à jour vers Ubuntu LTS-18 (et ne faisant aucun changement à VirtualBox, et après avoir réinstallé les extensions et blah-de-blah), auto-mount a cessé de fonctionner. le sf_xxx les annuaires étaient présents dans /media/ mais aucun d'entre eux n'a été monté.

Tente de les monter dans /etc/fstab (comme suggéré par la propre documentation de VirtualBox) n'a pas fonctionné: le démarrage a échoué en "mode d'urgence", même lorsque j'avais modifié le /etc/modules fichier.

Quelle fait finalement travailler - bien que je le considère comme un bidouillage - est la crontab astuce décrite ci-dessus.

Jusqu'à ce jour, je n'ai aucune idée de "ce qui s'est cassé".


0
2017-08-22 17:12