2012-01-13 9 views
2

VirtualBoxゲストでNetBeansを使用すると、ここで非常に便利なスクリプトと思います。 1つの問題があるようです。VirtualBoxブートマウントはアンマウントされません

スクリプトを見ると、NetBeansProjectsをホストシステムからゲストにマウントするブートスクリプトに書き込みます。これは正常に動作します。ただし、追加のスクリプトが作成され、ユーザーのローカルビンに移動されます。実際には、2つのスクリプトが作成されます。1)ユーザーがマウントできるようにする、2)マウントされたフォルダーをマウント解除して柔軟性を持たせる。

私は、スクリプトをテストし、すべてが「netbeans-unmount.sh」スクリプトを除いて、私のUbuntuゲストで動作します。

これが動作する場合に、どのよう...

どれでも手がかりをそれはブート時にマウントされたsirectoryをアンマウントしませんし、私は、スクリプトは「ルート」のファイルアクセス与えて試してみましたか? :

#!/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 

更新:ターミナルでのハンドコーディングされたアンマウントもNetBeansのプロジェクトフォルダをアンマウントに失敗しました。だから私はそれがシステムの初期化がフォルダをマウントした場合、このフォルダをアンマウントすることが可能かどうか尋ねる必要があると思いますか?

アップデート2:スタックそれでも、私はetc/mtabで見た後、いくつかの新しい情報を持っています。ここ は、私が見たものである。

... 
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 
... 

私はsudoのアンマウント〜/ NetBeansProjectsを何度も実行する必要があることは明らかです!それがすべてをアンマウントし、私は私のターゲットにディレクトリをアンマウントしたいと

追加は、「F-L-t」のようなオプションをマウントするには、いずれかの動作しません。

+0

失敗を使用するため、いくつかのプロセスが保持しますそのマウントポイントのどこかでファイルを開くか、またはその作業ディレクトリとして使用します。ファイルシステムは、強制的に使用されている場合を除き、まだ使用中のアンマウントを許可しません。 –

+0

@MarcB私はいくつかの新しい情報を追加しましたか? – thejartender

+0

私はそれが何度もマウントされる理由はわかりませんが、 'fuser'コマンドを使用して、プロセス/ユーザーがそのマウントポイントにオープンファイルハンドを持っているかどうかを知ることができます。 –

答えて

1

私はすべての私のinitファイルを再チェックし、いくつかの追加のマウントがあった見つけ、私は今、(例として)このように書き込む前に、既存の文字列をテスト/etc/init.d/rc.localに追加:

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

その後、 エコー「JAVA_HOME = $ {javaUsrLib} /jdk1.7.0_01 "| sudoのティー-aを/ etc/environment Fiの

5

あなたがすべての株式をアンマウントことがあります。

sudo umount -a -t vboxsf 

または通常アンマウントするfusermount -u

sudo fusermount -u /mnt 
関連する問題