2011年1月3日 星期一

Shared folders on Virtualbox

Virtualbox終於邁入4.0了!這個版本比先前3.2.x的版本多了比較視覺化的功能,也開始支援guest MacOSX了!對於USB 2.0的支援變成需要下載額外套件來安裝才行。令我印象比較深刻的是 4.0在shared folders多了automatic mounting的功能,可以讓她自動掛載在/mnt(Solaris)或是/media(Linux)上,對於許多linux不熟的下一步工程師而言,這可是個美好的功能。 本文的目的也是為了紀錄做一個guest端automatic mounting的筆記,只不過我希望透過寫在/etc/fstab裡使其開機可以掛載。我堅信唯有透過撰寫設定檔,才能增加對於該功能的了解。

在shared folders的設定裡有兩個選項:Read-only跟Auto-mount。使用automatic mounting需注意使用者必須有加入vboxsf群組才行。
在Linux guests裡,auto-mount會掛載在/media底下,並且以sf_開頭。舉例來說,一個名稱為DATA的共享資料夾,在Linux裡掛載到/media/sf_DATA,在Solaris上掛載到/mnt/sf_DATA, 在windows裡則會自動多一個磁碟機。

手動或許是一個更好的方法,因為我希望他掛載在我指定的位置上。假設在Linux跟Solaris上使用者的uid=gid=1000,且我想分享的資料夾名稱是MacOSX:

  1. For Solaris guests:
  2. pfexec mount -F vboxfs -o uid=1000,gid=1000 MacOSX /export/home/maxsolar/MacOSX
  3. For Linux guests:
  4. mount -t vboxsf -o uid=1000,gid=1000 MacOSX /home/maxsolar/MacOSX
  5. For Windows guests:
  6. net use Z: \\vboxsvr\MacOSX
三種作業系統所定義的filesystem名稱都不一樣阿,特別是Solaris跟Linux特別容易敲錯,需要小心。

如果寫成設定檔使其開機時就可以自動掛載的情形又是如何呢?

  1. For Linux guests:
  2. 修改/etc/fstab,並新增一行:
    MacOSX /home/maxsolar/MacOSX vboxsf uid=1000,gid=1000 0 0
  3. For Solaris guests:
  4. 修改/etc/vfstab,並新增一行:
    MacOSX - /export/home/maxsolar/MacOSX  vboxfs - yes uid=1000,gid=1000
    Solaris的vfstab相當於Linux的fstab,但是格式有所不同,這七個欄位分別是:
    Device to mount, Device to fsck, Mount point, FS type, Fsck pass, Mount at boot, Options
    但是開機的時候卻會失敗。我找到了Jim Laurent的部落格, 發現他找到了問題所在:Solaris先處理vfstab這個檔案之後才掛載/export底下的ZFS檔案系統,因此把掛載點改成其他非/export的目錄即可成功開機,例如上例需改成:
    MacOSX - /MacOSX  vboxfs - yes uid=1000,gid=1000
    就可以成功開機。不過我還是不喜歡這種感覺,我討厭被限制!幸好Unix/Linux為了達到目的可以有多種方法,我可以新增一個session讓他登入的時候執行,也可以寫在開機之後的script裡。 最簡單的方式就是寫在login shell裡吧!新增一行到/etc/profile裡就可以達到相同目的:
    pfexec mount -F vboxfs -o uid=1000,gid=1000 MacOSX /export/home/maxsolar/MacOSX
  5. For Windows guests:
  6. 什麼事也不用做,輸入net use那行指令就可以永遠使用該磁碟機當作掛載目錄。

這個版本允許使用者建立Mac OS X的虛擬機器耶!只是不知道在guest Mac OS X下該如何設定,即使官方網站的End-user document也沒有寫。不過如果是以上三個作業系統,他的詳細設定則可以從shared folders頁面找到更多詳細設定。

沒有留言: