Virtualbox+ubuntu設置共享文件夾

轉:http://www.juwends.com/tech/unix_series/virtualbox-ubuntu-sharefolder.htmlphp

 

1. 進入系統,安裝加強功能,安裝完關閉系統。
2. 在E盤下建立一個共享文件夾 gongxiang。
3. 設置 -> 數據空間 -> 固定分配,選擇共享文件夾路徑,注意此時不要勾選自動掛載,以下圖所示。

2011092311174318
4. 從新啓動系統
(Juwend注:能夠不用重啓,在執行第5步以前,須要執行:
sudo mkdir /mnt/gongxiang
這是原文做者沒有寫出的)

5. 執行以下命令,就能夠看到共享文件夾下面的文件。html

huang@huang-VirtualBox:~$ sudo mount -t vboxsf gongxiang /mnt/shared/
[sudo] password for huang:
huang@huang-VirtualBox:~$ cd /mnt/shared/
huang@huang-VirtualBox:/mnt/shared$ ls
cmusphinx-cmuclmtk.tar.gz seri-arm
com31 seri.c
cramfsck seri.h
cross-4.2.2-eabi.tar.bz2 soundtouch-1.6.0.tar.gz
dircmmp sphinx3-0.8.tar.bz2
fork-arm sphinxbase-0.6.1.tar.gz
fork-pc SphinxTrain-1.0.tar.bz2
FORLINX_6410_touch.cramfs thread
linux2.6.28_FOLINX_6410.tgz uboot1.1.6_FORLINX_6410.tgz
pocketsphinx-0.6.1.tar.gz u-boot.bin
serial.c zImage_VGA
serial.hlinux

6. 若是您不想每一次都手動掛載,能夠在/etc/fstab中添加一行,保存
gongxiang /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0
這樣就可以自動掛載了。
(Juwend注:以上內容可能有些問題,這裏Virtualbox的手冊中提到:
In a Linux guest, use the following command:
mount -t vboxsf [-o OPTIONS] sharename mountpoint
To mount a shared folder during boot, add the following entry to /etc/fstab:
sharename mountpoint vboxsf defaults 0 0
因此,應該在/etc/fstab中保存
gongxing /mnt/shared vboxsf defaults 0 0
若是重啓過程當中提示掛載出錯,能夠檢查下共享文件夾的固定分配是否正確,便是否固定分配了共享文件夾,彷佛有要求是不能選自動掛載那一項)

若是想卸載,可運行命令:sudo umount -f /mnt/sharedapache

 

 

轉:https://soulogic.com/archives/380ubuntu

 

我喜歡 Linux,但其桌面環境實在太差了,固然這是藉口,主要仍是由於軟件支持,例如 UltraEdit、Chrome、Fireworks 和 DirectX 支持的各式各樣的遊戲。因而保持着 Ubuntu Server + Windows Desktop 的模式。以前所在的兩個公司我一直是霸佔着兩臺 PC,其中一個沒有顯示器。自從 CPU 進化到開虛擬機也能夠忍受以後開始用 VMWare,但一直以爲用 Samba 來通訊很繞圈子,殊不知道更好的方法。直到上週 Samba 開始莫名其妙的卡(每次保存文件的時候都要等幾秒),嘗試各類優化方法無效後轉而試用 VirtualBox(其實之前也用過,不過是反過來的,Ubuntu 上虛擬 Windows,配網卡搞的我焦頭爛額,因此印象很很差),才發現「Shared folders」功能正是我一直想要的。簡單的說就是給虛擬機配個驅動,直接訪問宿主的某些目錄。訪問的效率應該有很大提高。緩存


安裝

本文根據軟件版本不斷更新中,如下內容在 Windows 7 Ultimate 和 Ubuntu Server 10.04(均爲 64 位版),VirtualBox 3.2.4 下經過驗證oracle

爲 了不至於混淆,定義名稱,宿主 Windows 上想共享的目錄爲 D:\sharehost,在 VirtualBox 裏定義的共享名爲 shareguest,映射到虛擬機 Ubuntu 的 /sharedir 目錄。演示用的 Ubuntu 名叫 sharetestless

VirtualBox 裏的設定如圖wordpress

當你已經裝完了 Ubuntu,在菜單裏選擇 Devices / Install Guest Additions優化

在 Ubuntu 中先裝點必要的服務和供編譯的文件

sudo apt-get install dkms
sudo apt-get install linux-headers-server

以後就能夠安裝 Guest Additions 了(其實那個菜單項的做用就是換張光盤)

mount /cdrom
sudo /cdrom/VBoxLinuxAdditions-amd64.run

安裝過程當中顯示內容大體以下

Verifying archive integrity... All good.
Uncompressing VirtualBox 3.0.8 Guest Additions for Linux installation.........................
VirtualBox 3.0.8 Guest Additions installation
Attempt to remove old DKMS modules...
Done.
Building the VirtualBox Guest Additions kernel module...
Building the shared folder support kernel module...
Building the drm support kernel module...
Installing the VirtualBox Guest Additions...

Could not find X.org or XFree86 on the guest system.  The X Window drivers
will not be installed.

加載該模塊(這一步官方文檔裏沒有說):

sudo modprobe vboxsf

到這裏安裝已經完成,開始使用這個功能:

sudo mkdir /sharedir
sudo mount -t vboxsf shareguest /sharedir

這時候 Ubuntu 裏的 /sharedir 跟 Windows 下的 D:\Share 是同樣的了,能夠建立幾個新文件來驗證一下。

自動加載共享目錄

如今該考慮如何開機自動加載這些目錄裏。若是你跟我同樣,連 apache 的 conf 目錄都要用這種共享的話,顯然直接把那行 mount 命令放在 rc.local 裏是不可取的

按照官網論壇上的帖子應該以下:

編輯 /etc/modules 文件,在結尾添加兩行(這兩行的內容是用 lsmod | grep vbox 獲得的):

vboxsf
vboxguest

編輯 /etc/fstab 文件,在結尾添加一行:

shareguest /sharedir vboxsf defaults 0 0

重啓以後就能夠自動加載。

此 外要注意到一個問題是,共享名跟目錄名不能同樣,不然會在開機的時候提示「/sbin/mount.vboxsf: mounting failed with the error: Protocol error」。我以前都起名叫「share」,結果 mount 正常,開機自動加載的話就報錯,直到看了篇 Tips on running Sun Virtualbox 才恍然大悟——我以前一直覺得是驅動、版本或者是什麼 BUG 致使的。

並且要注意每一個字母,那個「vboxvfs」和「vboxsf」也把我搞混過,結果在 modules 文件裏寫了個「vboxvsf」

fstab 文件裏的那行,跟 crontab 同樣是按空格分紅幾段,能夠參考文件自己的說明,那個「defaults」的位置是設定參數的,具體參數能夠從「sudo mount.vboxsf」得知。比方說目錄加載後全部文件都是 777,綠油油的一片看着眼暈,能夠把「defaults」替換成「fmode=666」,不過也就不能 +x 了,沒辦法,Windows 文件系統自己的缺陷。

Windows 啓動後 VirtualBox 自動後臺運行

建立個 run.bat 文件,內容以下

c:
cd "\Program Files\Sun\VirtualBox\"
VBoxHeadless.exe -startvm sharetest -vrdp=off

再建立個 run.vbs 文件,內容以下

set wscriptObj = CreateObject("Wscript.Shell")
wscriptObj.run "D:\vbox\run.bat",0

注意目錄和盤符換成本身實際的,把 run.vbs 放到開始菜單的啓動項裏就能夠了。

關於虛擬機中的 Web Server

在讀取純靜態文件時可能會出現緩存問題。例如 Apache 的 conf 裏須要加上這麼兩行來修正

EnableMMAP Off
EnableSendfile Off

結語

本文是但願提供一個過渡訪問方案,在 Linux 桌面變得優秀以前,至少能夠毫無障礙的使用 Linux Server 作開發。我最慘痛的一次經歷是,Memcache 誕生不久,據說很好用,可是當時的 Client for PHP 只有 PECL 的,我不知道該怎麼編譯,直到半年後有了 win32 版本我纔開始接觸這東西,對我而言這是個很是大的損失。又好比曾經尋找適合作本地文件 Cache 的東西,聽說 Berkeley DB 有原生 PHP 擴展,比 PHP 自帶的 DBA 要好很多,而這個擴展就在 BDB 源碼包的 php_db4 目錄,要用的話只能本身編,雖然最後得出結論跟 DBA 模塊同樣存在文件鎖的問題不適合 Web 程序使用,但起碼試過了。又好比 ImageMagicK 的命令行下給圖片加漢字,因爲 Windows 的 Shell 不是 UTF-8 的,因此特定長度的漢字會出現亂碼,這也是不大不小的毛病。總之,用 Windows 作 Server 總以爲本身是二等公民。

 

 

轉:http://xu3stones.blog.163.com/blog/static/2059571362012103095659817/

 

1.Guest os安裝加強組件;
2.vbox裏設置分配數據空間,記住空間名稱(注:不要勾選auto-mount,不然VBOX會自動掛載到/media/fs_空間名 這個目錄下,並且是root用戶的,訪問很麻煩)
3.guest os裏掛載共享空間:
         若在建立數據空間的時候您已勾選自動掛載(auto mounting)則在您安裝好加強補丁後,VBOX會自動在/media/下建立一個共享目錄,該目錄的全部者是root,所屬組是vboxsf,因此 你是沒法打開和訪問的,必需要將你,即當前用戶加到vboxsf組下:
              sudo usermod -a -G vboxsf 你的用戶名
              重啓,便可訪問咯。。
              若是你以爲不爽,你能夠用下面這個方法,建立屬於本身的共享目錄:

sudo mkdir /mnt/shared

sudo mount -t vboxsf 空間名稱 /mnt/shared

4.假如不想每一次都手動掛載,能夠在/etc/fstab中添加一項

 空間名稱 /mnt/shared vboxsf defaults 0 0(注:第一列爲數據空間的名字,第二列爲要mount的路徑,後面爲mount的參數。)

相關文章
相關標籤/搜索