玩虛擬機的一般都會給虛擬機設置共享目錄,便于操作和使用。比如我在64位win10系統(tǒng)下,用Virtualbox安裝了Ubuntu 16.04虛擬機,那么我一般都會將win10系統(tǒng)下的一些目錄映射到Ubuntu里面去。以前,我都是通過將共享目錄的信息直接寫入到/etc/fstab文件中來實現(xiàn)自動掛載(關于這一點如何操作,此處不做詳解,大家自行百度一下就知道了,很簡單)。但是,用久了發(fā)現(xiàn)幾個問題:
第一,我需要掛載到虛擬機的目錄位置有好幾個(比如有一個臨時文件的存放目錄tmp,有一個工作項目代碼區(qū)的目錄wrk,還有一個學習資料整理區(qū)的目錄mit等),而且其中有些目錄在不同的分區(qū)下,有的目錄甚至在很深的位置,想要通過單個共享目錄來掛載是不可能的。
第二,用這個辦法自動掛載的所有共享目錄中,一旦有一個或者多個失效(比如改了名字或者移動了位置等),就會導致ubuntu無法啟動,無法進入桌面。對于我這種完美主義者,經(jīng)常會整理電腦里的文件、目錄、層級等,動到共享目錄那也是經(jīng)常的事。有幾次遇到這種情況時,一時之間沒反應過來,還以為是虛擬機掛了,差點直接刪掉重裝。
第三,我有好幾臺電腦都要用到虛擬機,為了方便起見,我就復用了同一個虛擬機的鏡像文件,有需要時直接把整個VDI文件拷來拷去的。而且,我在不同的電腦上所要映射的目錄也不完全一樣(比如在家里的虛擬機我就不需要映射工作項目代碼區(qū)的目錄wrk)。這個時候就很麻煩了,每次一拷貝,就得記得先改好虛擬機的/etc/fstab文件,否則就會導致虛擬機無法啟動,實在是有些麻煩。
為了解決這些問題,我摸索了一套更便捷、更自動化的共享目錄掛載方法,特記錄在此處,便于后續(xù)查閱,并與同道中人分享。這個方法說起來其實也很簡單,就兩個步驟,第一步是實現(xiàn)物理機整個分區(qū)的掛載,第二步是創(chuàng)建出分區(qū)中指定的目錄的軟鏈接。
步驟一、實現(xiàn)物理機整個分區(qū)的掛載
首先,在Virtualbox的設置中添加你索要掛載的物理機分區(qū)為共享目錄,如下圖所示,我添加了【D盤根目錄、E盤根目錄和Onedrive根目錄】這3個目錄作為共享目錄,并將其分別命名為【drv_d/drv_e/drv_o】,你可以自己隨意修改:
![](/d/20211016/e204fc923b602676c75ae55462d3b6a6.gif)
這里要注意,設置共享目錄時,有一個自動掛載的選項【切記不要選中】(如下圖),否則Ubuntu系統(tǒng)啟動時就自動將該目錄掛載到/media目錄下去了,而它掛載時使用的是超級用戶的權限,會造成其他的普通用戶無法訪問,到時還要去折騰用戶權限等一堆的事,很麻煩,還不如自己手動寫兩個命令搞定來的干脆!
![](/d/20211016/9684fc0e114b6d8dabd815941a696a3a.gif)
然后,在虛擬機的/mnt目錄下新建一個共享文件的掛載目錄,到時外部的驅動器根目錄就直接掛載到這個目錄下。我這里將其命名為win10(完整地址就是/mnt/win10,當然,這個目錄的位置隨你自己而定,不做強求的),你自己可以隨便設置【注意,新建目錄時有可能會提示用戶權限不足,需要sudo一下】。并在該目錄下再次新建3個目錄,用于掛載實際的3個共享目錄,我這里同樣分別命名為drv_d/drv_e/drv_o,同樣你也可以自己隨意設置。
leon@Ubuntu:~$ cd /mnt/
leon@Ubuntu:/mnt$ sudo mkdir win10 share
leon@Ubuntu:/mnt$ sudo chown leon *
leon@Ubuntu:/mnt$ sudo chgrp leon *
leon@Ubuntu:/mnt$ cd win10/
leon@Ubuntu:/mnt/win10$ mkdir drv_d drv_e drv_o
接下來,在虛擬機里修改/etc/fstab文件,增加如下的語句:
drv_d /mnt/win10/drv_d vboxsf rw,auto 0 0
drv_e /mnt/win10/drv_e vboxsf rw,auto 0 0
drv_o /mnt/win10/drv_o vboxsf rw,auto 0 0
上面的腳本中,第一個項目是外部物理機共享目錄的名稱,就是圖1中設置的目錄的名稱。第二個項目中的/mnt/win10/drv_d
是你想要將其掛載到ubuntu虛擬機中的掛載地址。后面的其他項目就不做解釋了,具體可以百度。
至此已經(jīng)完成了外部物理機的根目錄自動掛載。重啟之后,ubuntu便會自動將你所選定的所有目錄自動掛載到你指定的地址下,如下圖:
![](/d/20211016/7b6883e5c38fef5bf8b61dfa4304f998.gif)
步驟二、創(chuàng)建軟鏈接文件
上面的步驟完成了根目錄的自動掛載,也就是說,ubuntu一啟動之后,便可以在/mnt/win10目錄下訪問win10系統(tǒng)下的D盤、E盤等根目錄了。
但是,各個實際的共享目錄卻還藏在根目錄底下的某個位置,如果要訪問的話,還得一層層往下找,每次都要輸入一大堆的路徑,挺麻煩的。于是,我們就要創(chuàng)建一些快捷方式來實現(xiàn)便捷的訪問。
做法其實也很簡單,在/mnt/share目錄下(同樣,這個目錄的位置隨你自己而定,不做強求的),根據(jù)你自己的需要,為各個實際的目錄創(chuàng)建軟鏈接文件(ln命令)即可。具體的語法如下:
ln -s /mnt/win10/drv_d/A_Download /mnt/share/tmp
ln -s /mnt/win10/drv_d/B_WorkItem/A_YXProjects/C_HUD_Code/imx6ul /mnt/share/wrk
ln -s /mnt/win10/drv_d/M_MyInstitute /mnt/share/mit
ln -s /mnt/win10/drv_d/S_StudyProject/G_GitArea /mnt/share/git
最后創(chuàng)建出來的效果如下:
leon@Ubuntu:/mnt/share$ ls -l
總用量 0
lrwxrwxrwx 1 leon leon 42 5月 28 10:48 git -> /mnt/win10/drv_d/S_StudyProject/
lrwxrwxrwx 1 leon leon 31 5月 28 10:47 mit -> /mnt/win10/drv_d/M_MyInstitute/
lrwxrwxrwx 1 leon leon 28 5月 28 10:41 tmp -> /mnt/win10/drv_e/A_Download/
lrwxrwxrwx 1 leon leon 59 5月 28 10:47 wrk -> /mnt/win10/drv_e/B_WorkItem/A_Projects/C_Code/imx6ul/
按照上面的方法創(chuàng)建出來的共享目錄及其鏈接文件,存在以下的好處:
1、在虛擬機外部映射的是win10系統(tǒng)的根目錄,就算對于我這種強迫整理癥的患者而言,只要有空隨時都會有整理目錄和文件的欲望,但是想要去整理根目錄卻沒那么容易。所以,從此不用再擔心我某次整理win10系統(tǒng)的目錄會導致虛擬機的共享目錄映射異常。
2、最后創(chuàng)建的訪問通道,是基于/mnt/win10目錄下的根目錄而臨時創(chuàng)建的鏈接文件,一旦有任何需要隨時可以更改,完全不用動到外面的物理機,也不用擔心多個物理機之間的沖突,實在是極其便捷!
總結
以上所述是小編給大家介紹的在Virtualbox下為Ubuntu16.04開機自動掛載共享目錄的最佳方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!