Para montar siempre una "carpeta compartida" de Virtual Box al arrancar un invitado Ubuntu, tenemos dos opciones. Depende de las preferencias personales qué opción funciona mejor en nuestro entorno.
1. Montar con fstab
Para montar una carpeta compartida utilizando el vboxsf
sistema de archivos proporcionado con Guest Additions , primero debemos asegurarnos de que se cumplan los requisitos previos . Entonces podemos poner la siguiente línea en nuestro etc/fstab
archivo:
<name_of_share> /path/to/mountpoint vboxsf <options> 0 0
Reemplace name_of_share
y /path/to/mountpoint
con su configuración individual (primero debe crearse el directorio para el punto de montaje). Vea la página de manual para el montaje <options>
. Una posibilidad es montar con defaults
, o dar opciones de montaje específicas (por ejemplo rw, suid, exec, auto, users
).
En algunos sistemas, el vboxsf
módulo del kernel aún no está cargado en el momento en que fstab
se lee en el arranque. Entonces puede ser útil agregar el vboxsf
módulo del núcleo a /etc/modules
.
Algunos sistemas pueden necesitar una opción comment=systemd.automount
en su entrada fstab ( fuente ).
2. Montar con Virtual Box "montaje automático":
En versiones recientes de Virtual Box, también podemos montar automáticamente carpetas compartidas en la creación:
Después de reiniciar el invitado, esta carpeta compartida se montará en el directorio de invitados /media/<username>/sf_<name_of_share>
accesible para todos los usuarios que se hayan hecho miembros del grupo vboxsf
.
noauto
las opciones de fstab y luego montarlas típicamente en un script de inicio (como. perfil), Opción 2) el problema principal es que vboxsf no se carga antes de que se ejecute fstab, agreguevboxsf
al archivo/etc/modules
, pidiéndole al kernel que cargue el módulo antes de que se ejecute fstab. Quizás esto ayude a alguien más.Editar
/etc/rc.local
Antes de
exit 0
escribir:Salvar
(Opcional) Cree un acceso directo al escritorio o la carpeta de inicio:
Para iniciar sin errores como presionar S para omitir el montaje o presionar M para reparar manualmente, es posible que deba eliminar su entrada en
fstab
fuente
/etc/rc.local
con estomount -t vboxsf [-o OPTIONS] sharename mountpoint
.sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) windows_share ~/shared/mount_point
y terminé poniendo lo siguiente en /etc/rc.local para que funcione: ¡mount -t vboxsf windows_share /home/dev/shared/mount_point
donde dev es mi usuario, FYI / etc / fstab también funciona!mount
orden derc.local
secuencia de comandos para incluir a mi identificador de usuario (2000
):mount.vboxsf -o rw,uid=1000 /home/mwittie/Dropbox Dropbox vboxsf
. PD: si alguien está buscando un tutorial sobre cómo activarrc.local
Ubuntu 17.04, esto me ha funcionado. PPS No necesitaba incluir vboxsf en/etc/modules
.Después de una mañana agotadora probando todo lo anterior en Ubutntu 16.04 ejecutándose en Virtualbox 5.0.20 sin éxito (particularmente decepcionado de que la solución rc.local no funcionara), funcionó de la siguiente manera:
Registrando desde el menú Carpetas compartidas de Virtualbox GUI el directorio requerido pero NO montando automáticamente o montando permanentemente desde Virtualbox. De lo contrario, el directorio host está montado por root y es difícil acceder a ellos por usuarios no root, incluso desde el grupo de administración.
agregando una entrada simple en fstab:
noauto
Opción de nota : de lo contrario, el cargador de arranque falla como se ha señalado.Agregue la línea correspondiente de la
/etc/sudoers
siguiente manera utilizando el comando visudo desde el SO huésped:Esto permitirá que los procesos no root lo monten específicamente (ya que fstab no se puede montar con la opción 'usuario' ...)
Agregue la línea correspondiente al perfil del usuario:
¡Ahora el subdirectorio seleccionado está listo para el usuario seleccionado al iniciar sesión!
fuente
noauto
?Para los sistemas basados en systemd más nuevos , necesita enfoques alternativos, el más simple es uno mencionado en otra respuesta a otra pregunta, que básicamente dice que debe agregar una
comment
opción especial a la/etc/fstab
entrada:Sin embargo, para que lo anterior funcione en algunos sistemas, debe marcar la casilla 'Montaje automático' en Carpetas compartidas de VirtualBox-> Agregar diálogo, lo que significa que puede terminar con algunos montajes duplicados del directorio.
Para montar un limpiador - sin directorios duplicados ni la necesidad de 'auto-montaje' - es necesario utilizar systemd de montaje y montaje automático directivas. Para hacerlo, cree dos entradas con el
/usr/lib/systemd/system/
nombre del punto de montaje deseado, por ejemplo, para que coincida con el punto de montaje fstab anterior, se nombraránmy_mount-src_host.mount
y contendrán:y
my_mount-src_host.automount
:Entonces necesitan habilitar:
Ahora se montarán en el arranque. Si desea montarlos de inmediato (siempre que se hayan creado las carpetas compartidas), puede hacerlo:
Tenga en cuenta que si tiene directorios con nombres impares o guiones (-) en ellos, úselos
systemd-escape
para encontrar el nombre que se escapó correctamente.fuente
comment=systemd.automount
opción funciona también sin el Automount VBox marcado. Luché durante días antes de encontrar tu solución, ¡Gracias!Probé la solución rc.local pero no pude hacer que funcionara.
Sin embargo, descubrí que el problema parece estar relacionado con la carpeta desde la que ejecuta el comando (no tengo idea de por qué). Así que agregué una línea para cambiar el directorio a mi carpeta de inicio antes del comando de montaje, y ahora funciona.
Entonces, mi recurso compartido de Windows se llama
Dropbox
, mi punto de montaje es/home/jamie/Dropbox
, mi nombre de usuario esjamie
, esto es lo que puse en rc.local:fuente
sleep 2
antes de montar el dispositivo.Lo hago de un modo muy similar al propuesto anteriormente, pero estas secuencias de comandos crean lo requerido y montan o desmontan la carpeta compartida con la siguiente secuencia de comandos:
Guárdalo como
/opt/.scripts/VBoxShared.sh
.Asegúrese de que esto se pueda ejecutar. En tipo de carcasa:
Ahora, agregamos una línea que ejecuta este script en
rc.local
:y agregamos estas líneas antes de la última línea (
exit 0
):Guardar ( CtrlO) y cerrarlo ( CtrlX)
En este punto, montamos automáticamente todas las carpetas compartidas enumeradas
<SharedFolder>
en el inicio.Para desmontarlo, solo necesitamos escribir:
sudo nano /etc/rc6.d/K99-vboxsf-umount.sh
Guardar ( CtrlO) y cerrar ( CtrlX)
¡Y eso es todo!
fuente
Aquí hay una solución de trabajo.
Como root (IE sudo su) Vaya a la carpeta de inicio (cd ~) y cree un archivo cron:
vi cronjobs
Agregue lo siguiente
@reboot sleep 15; mount -t vboxsf app / mnt / app
Guardar el archivo
Nota: reemplace la aplicación con el nombre de su carpeta compartida y / mnt / app donde desea montarla. En este caso, primero creé la aplicación de carpeta bajo mount (aplicación mkdir).
Para habilitar su cron como root (para el nombre de archivo anterior)
crontab cronjobs
Asegúrese de que cron esté activo:
crontab -l
reiniciar y se montará. El reposo de 15 segundos permite suficiente tiempo para que todo esté listo para el montaje.
fuente
Recientemente encontré este hilo cuando, después de actualizar a Ubuntu LTS-18 (y sin hacer cambios en VirtualBox, y después de reinstalar las extensiones y bla-de-bla), el montaje automático dejó de funcionar. Los
sf_xxx
directorios estaban presentes/media/
pero ninguno de ellos estaba realmente montado.Los intentos de montarlos
/etc/fstab
(como sugiere la propia documentación de VirtualBox) no funcionaron: el arranque falló en "modo de emergencia", incluso cuando modifiqué el/etc/modules
archivo.Lo que finalmente funcionó, aunque lo considero un truco apestoso, es el
crontab
truco descrito anteriormente.Hasta el día de hoy, no tengo idea de "qué se rompió".
fuente
Estaba teniendo un problema donde podía ver la carpeta compartida, pero no había archivos en ella. Entonces hice un truco similar a lo que se muestra arriba:
Me aseguré de que mi usuario estaba en los grupos correctos, y que había una entrada en fstab para montar el recurso compartido, y que los permisos estaban configurados correctamente, y que el montaje automático estaba activado en la configuración de VirtualBox, pero aún no archivos para ser vistos.
Entonces abrí la aplicación Startup Applications en la GUI de Ubuntu 18.04 y creé una tarea que simplemente ejecutó "sudo mount -a" justo en el inicio. Por alguna razón, la carpeta compartida no se estaba montando correctamente cuando fstab se analizaba automáticamente en el arranque, por lo que volver a montar todo parecía solucionar el problema. Ahora puedo ver los archivos en el recurso compartido.
fuente
Intenté todas las soluciones aquí y ninguna funcionó.
Lo que funcionó fue instalar el supervisor y ejecutar un script de Python.
instalar supervisor
apt-get install supervisor
script de Python (el mío estaba en /home/ubuntu/shared_folders.py)
crear archivo de configuración para supervisor
nano /etc/supervisor/conf.d/sharedfolders.conf
[program:shared_folders] command=python shared_folders.py directory=/home/ubuntu process_name=%(program_name)s_%(process_num)s numprocs=1 numprocs_start=0 autostart=true autorestart=true startsecs=1 startretries=3 exitcodes=0,2 stopsignal=TERM stopwaitsecs=10 ;user=pavelp redirect_stderr=true stdout_logfile=/var/log/supervisor/qlistener-stdout.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=10 stdout_capture_maxbytes=0 stdout_events_enabled=false stderr_logfile=/var/log/supervisor/qlistener-stderr.log stderr_logfile_maxbytes=50MB stderr_logfile_backups=10 stderr_capture_maxbytes=0 stderr_events_enabled=false environment=APPLICATION_ENV=development serverurl=AUTO
supervisor abierto
sudo supervisorctl
leer configuración
reread
agregar configuración
add shared_folders
fuente
(En mi caso, mi sistema operativo host es Mac OS X y mi sistema operativo invitado es ubuntu)
Ninguna de las soluciones anteriores, y las soluciones mencionadas aquí y aquí funcionaron para mí. Hubo un problema con todos ellos.
Esto es lo que finalmente hice para resolver el problema:
1- Creé una carpeta compartida en la interfaz de usuario de VirtualBox, apuntando a una carpeta nombrada
VMShares
en mi Mac OS, nombrándolawd
2- Luego instalé las herramientas de Ubuntu Guest Addition (se requiere reiniciar)
3- Luego hice una carpeta en mi SO huésped como punto de montaje (en mi caso el nombre era
/home/fashid/host
)4- Entonces corrí:
Este fue el comando para garantizar que el recurso compartido esté disponible para el sistema operativo invitado, mientras que aún necesita montarlo en su sistema operativo invitado para que esté realmente disponible.
Mostrará algo como:
Este es el truco! Muestra el nombre real que necesita poner en el siguiente comando para montarlo y hacerlo disponible en su sistema operativo invitado:
¿Te diste cuenta del punto? No usé wd en ningún lado más tarde. En el paso 3, necesitaba recoger el nombre real de la carpeta (host) en lugar del nombre arbitrario que asigné en el cuadro de diálogo GUI.
A través de los pasos anteriores, mi problema se resolvió.
fuente