• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在Virtualbox下为Ubuntu16.04开机自动挂载共享目录的最佳方法

    玩虚拟机的一般都会给虚拟机设置共享目录,便于操作和使用。比如我在64位win10系统下,用Virtualbox安装了Ubuntu 16.04虚拟机,那么我一般都会将win10系统下的一些目录映射到Ubuntu里面去。以前,我都是通过将共享目录的信息直接写入到/etc/fstab文件中来实现自动挂载(关于这一点如何操作,此处不做详解,大家自行百度一下就知道了,很简单)。但是,用久了发现几个问题:

    第一,我需要挂载到虚拟机的目录位置有好几个(比如有一个临时文件的存放目录tmp,有一个工作项目代码区的目录wrk,还有一个学习资料整理区的目录mit等),而且其中有些目录在不同的分区下,有的目录甚至在很深的位置,想要通过单个共享目录来挂载是不可能的。

    第二,用这个办法自动挂载的所有共享目录中,一旦有一个或者多个失效(比如改了名字或者移动了位置等),就会导致ubuntu无法启动,无法进入桌面。对于我这种完美主义者,经常会整理电脑里的文件、目录、层级等,动到共享目录那也是经常的事。有几次遇到这种情况时,一时之间没反应过来,还以为是虚拟机挂了,差点直接删掉重装。

    第三,我有好几台电脑都要用到虚拟机,为了方便起见,我就复用了同一个虚拟机的镜像文件,有需要时直接把整个VDI文件拷来拷去的。而且,我在不同的电脑上所要映射的目录也不完全一样(比如在家里的虚拟机我就不需要映射工作项目代码区的目录wrk)。这个时候就很麻烦了,每次一拷贝,就得记得先改好虚拟机的/etc/fstab文件,否则就会导致虚拟机无法启动,实在是有些麻烦。

    为了解决这些问题,我摸索了一套更便捷、更自动化的共享目录挂载方法,特记录在此处,便于后续查阅,并与同道中人分享。这个方法说起来其实也很简单,就两个步骤,第一步是实现物理机整个分区的挂载,第二步是创建出分区中指定的目录的软链接。

    步骤一、实现物理机整个分区的挂载

    首先,在Virtualbox的设置中添加你索要挂载的物理机分区为共享目录,如下图所示,我添加了【D盘根目录、E盘根目录和Onedrive根目录】这3个目录作为共享目录,并将其分别命名为【drv_d/drv_e/drv_o】,你可以自己随意修改:



    这里要注意,设置共享目录时,有一个自动挂载的选项【切记不要选中】(如下图),否则Ubuntu系统启动时就自动将该目录挂载到/media目录下去了,而它挂载时使用的是超级用户的权限,会造成其他的普通用户无法访问,到时还要去折腾用户权限等一堆的事,很麻烦,还不如自己手动写两个命令搞定来的干脆!



    然后,在虚拟机的/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虚拟机中的挂载地址。后面的其他项目就不做解释了,具体可以百度。

    至此已经完成了外部物理机的根目录自动挂载。重启之后,ubuntu便会自动将你所选定的所有目录自动挂载到你指定的地址下,如下图:


    步骤二、创建软链接文件

    上面的步骤完成了根目录的自动挂载,也就是说,ubuntu一启动之后,便可以在/mnt/win10目录下访问win10系统下的D盘、E盘等根目录了。

    但是,各个实际的共享目录却还藏在根目录底下的某个位置,如果要访问的话,还得一层层往下找,每次都要输入一大堆的路径,挺麻烦的。于是,我们就要创建一些快捷方式来实现便捷的访问。

    做法其实也很简单,在/mnt/share目录下(同样,这个目录的位置随你自己而定,不做强求的),根据你自己的需要,为各个实际的目录创建软链接文件(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

    最后创建出来的效果如下:

    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/

    按照上面的方法创建出来的共享目录及其链接文件,存在以下的好处:

    1、在虚拟机外部映射的是win10系统的根目录,就算对于我这种强迫整理症的患者而言,只要有空随时都会有整理目录和文件的欲望,但是想要去整理根目录却没那么容易。所以,从此不用再担心我某次整理win10系统的目录会导致虚拟机的共享目录映射异常。

    2、最后创建的访问通道,是基于/mnt/win10目录下的根目录而临时创建的链接文件,一旦有任何需要随时可以更改,完全不用动到外面的物理机,也不用担心多个物理机之间的冲突,实在是极其便捷!

    总结

    以上所述是小编给大家介绍的在Virtualbox下为Ubuntu16.04开机自动挂载共享目录的最佳方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    上一篇:Docker同时安装MySQL和MariaDB的方法步骤
    下一篇:ubuntu14.04安装jdk1.8的教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在Virtualbox下为Ubuntu16.04开机自动挂载共享目录的最佳方法 在,Virtualbox,下为,Ubuntu16.04,