Pregunta

Tengo lo que creo que es un script muy útil aquí si usas NetBeans en VirtualBox Guest. Parece haber un problema:

Si mira el script, se escribe en un scripts de arranque que a su vez, monta NetBeanSprojects desde el sistema de host al invitado. Esto funciona bien. Sin embargo, se crea y se mueve un script adicional al contenedor local de los usuarios. De hecho, se crean dos scripts: 1) para permitir que el usuario se monte y 2) desmonte la carpeta montada para permitir la flexibilidad.

Pruebo los scripts y todo funciona en mi invitado de Ubuntu, excepto el script 'netbeans-unmount.sh'.

No desmontará el sirtectory que se montó en el arranque y he intentado dar el archivo de scripts acceso 'root' ...

¿Alguna pista sobre si esto funcionará y cómo? :

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH

#Modify these variables as needed...
tempWork=/tmp/work
startupScript=/etc/init.d/rc.local
defaultNetBeansVersion=7.0.1

echo "Provide NetBeans version (7.0.1 is default) then hit [Enter] :"
  read NetBeansVersion

  if [ -z "$NetBeansVersion" ]
    then
    $NetBeansVersion=$defaultNetBeansVersion
  fi

mkdir -p /$tempWork;
cd /$tempWork;

wget http://dlc.sun.com.edgesuite.net/netbeans/7.0.1/final/bundles/netbeans-$NetBeansVersion-ml-javase-linux.sh;
sh $tempWork/*sh;


#Add Netbeans launcher to your PATH. Doing so allows you to run 'netbeans' command from the terminal
#This line will need to be changed if you changed the default install location (IOW Netbeans is not in ~/)
sudo ln -f -s ~/netbeans-$NetBeansVersion/bin/netbeans /usr/bin/;

#If you use VirtualBox , you can share your projects between Host and guest. Name of shared
#folder must match 'NetBeansProjects'
mkdir -p $HOME/NetBeansProjects

if [ -f /sbin/mount.vboxsf ]
then
    sudo /sbin/umount /home/$HOME/NetBeansProjects
    sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects
fi

if mountpoint -q ~/NetBeansProjects
then
#Add it to the universal start script to automate process...
    sudo sed -ie '$d' $startupScript
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects"| sudo tee -a $startupScript
    echo "exit 0"| sudo tee -a $startupScript
    sudo chmod +x $startupScript

#Create a mount and unmount script file and add it to users local bin
    rm -rf $tempWork/*
    echo '#!/bin/bash' > $tempWork/netbeans-mount.sh
    echo '#!/bin/bash' > $tempWork/netbeans-umount.sh
    echo '#!/bin/bash' > $tempWork/mount-from-host.sh
    echo '#!/bin/bash' > $tempWork/unmount-from-host.sh
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" >> $tempWork/netbeans-mount.sh
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" >> $tempWork/mount-from-host.sh
    echo "sudo umount $HOME/NetBeansProjects" >> $tempWork/netbeans-umount.sh
    echo "sudo umount $HOME/NetBeansProjects" >> $tempWork/unmount-from-host.sh
    echo "exit 0" >> $tempWork/unmount-from-host.sh
    echo "exit 0" >> $tempWork/mount-from-host.sh
    echo "exit 0" >> $tempWork/netbeans-mount.sh
    echo "exit 0" >> $tempWork/netbeans-umount.sh

    sudo chmod +x $tempWork/*
    sudo mv -f $tempWork/*.sh /usr/local/bin
    rm -rf $tempWork
fi

#This function is used to cleanly exit with an error code.
function error_exit {
    sleep 7
    exit 1
}
#restart
sudo reboot
exit 0

ACTUALIZACIÓN: El desmontaje codificado a mano en la terminal tampoco puede desmontar la carpeta NetBeans Projects. Entonces, supongo que necesito preguntar si es posible desmontar esta carpeta si la inicialización del sistema montaba la carpeta.

Actualización2: Todavía atascado, pero tengo información nueva después de mirar etc/mtab. Esto es lo que veo:

...
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
...

¡Está claro que tengo que ejecutar sudo unmount ~/netbeansprojects muchas veces!

Las opciones de montaje adicionales como 'plano' tampoco funcionarán, ya que desmontan todo y solo quiero que mi directorio objetivo no se monta.

¿Fue útil?

Solución 2

Recompensé todos mis archivos de inicio y descubrí que se agregaron algunas monturas adicionales a /etc/init.d/rc.local Ahora pruebo la cadena existente antes de escribir así (como ejemplo):

if ! grep "JAVA_HOME=${javaUsrLib}/jdk1.7.0_01" /etc/environment

luego echo "java_home = $ {javausrlib} /jdk1.7.0_01" | sudo tee -a /etc /ambiente fi

Otros consejos

Puede desmontar todas las acciones con:

sudo umount -a -t vboxsf 

o usar fusermount -u

sudo fusermount -u /mnt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top