VirtualBox démarrage montage ne démonte pas
-
28-10-2019 - |
Question
J'ai ce que je pense est un script très utile ici si vous utilisez NetBeans sur VirtualBox invité. Il semble y avoir un problème:
Si vous regardez le script, il écrit un script de démarrage qui, à son tour, monte NetBeansProjects du système hôte à des clients. Cela fonctionne très bien. Cependant un script supplémentaire est créé et déplacé aux utilisateurs bin local. En fait, deux scripts sont créés: 1) Pour permettre à l'utilisateur de monter et 2) Démontez le dossier monté pour permettre la flexibilité.
Je tester les scripts et tout fonctionne sur mon invité Ubuntu, à l'exception du script « netbeans-unmount.sh ».
Il ne démonte pas le sirectory qui était monté au démarrage et j'ai essayé de donner le fichier scripts accès « root » ...
Les indices quant à savoir si cela va fonctionner et comment? :
#!/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
Mise à jour: la main dans le terminal Codé démontant échoue également à déconnecter le dossier Projets NetBeans. Donc je suppose que je dois demander s'il est même possible de démonter ce dossier si l'initialisation du système monté le dossier?
Update2: Coincé encore, mais j'ai quelques nouvelles informations après avoir cherché dans etc/mtab
.
Voici ce que je vois:
...
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
...
Il est clair que je dois courir ~ sudo unmount / NetBeansProjects plusieurs fois !!
Options de montage supplémentaires comme « f-l-a-t » ne fonctionnera pas non plus comme il démonte tout et je veux que mon répertoire ciblé avec gomme.
La solution 2
Je revérifié tous mes fichiers init et a trouvé qu'il y avait des supports supplémentaires ajoutés à /etc/init.d/rc.local
I maintenant test chaîne existante avant d'écrire comme celui-ci (à titre d'exemple):
if ! grep "JAVA_HOME=${javaUsrLib}/jdk1.7.0_01" /etc/environment
puis echo "JAVA_HOME = $ {} javaUsrLib /jdk1.7.0_01" | sudo tee -a / etc / environnement fi
Autres conseils
vous pouvez démonter toutes les actions avec:
sudo umount -a -t vboxsf
ou de l'utilisation fusermount -u
sudo fusermount -u /mnt