实在抱歉,开头第一篇写过一份用xshell或者secureCRT通过局域网建立windows和linux虚拟机之间的共享,互传文件,但是我后来再用,就不好用了,不是说这种方法不可靠,是我的方法可能不可靠,后续我会继续研究把方法补全。(最近发现ubuntu更新到18.04了,我随着也升级了Linux,但是这个方法依然可行,Linux18.04LST可能有自己的共享方法,但是我尝试了一般,无法下载安装辅助软件,而且貌似还要用到phthon2.7,我怕破坏了我的环境就没继续。)
今天我通过搜索把综合实验给出了一份应该100%成功的方案,方法基于以下两个博文:
1. 博文 一,2 博文 二(综合两个方案,虽然大部分的文章都说可以借助图形界面直接点击安装增强Vboxadditions)但是我试过,感觉安装完毕,但是似乎并没有成功。最终还是命令行。其实不依托于xshell或者secureCRT有好处也有坏处。好处是这两个软件操作方便,图形界面好,人性化。坏处是,要实现windows和linux之间的连接通信,有时候不是很现实,主要是依赖内网,桥接的方法,也有人说用host-only或者NAT的方法建立连接,但是host-only基本不可能吧,NAT时好时坏!
1. 首先,我的方案是在windows上用virtualboxz安装的ubuntu 办linux。其他的linux也应该没问题。
2.打开Virtualbox, 点击左上方的“设置”,弹出界面中选择下方的 “共享文件夹”
3.在选择“固定分配”选项,右侧有个“蓝色加号”点击它,添加共享路径。
4. 其实,选择的时候你可以把整个windows的盘符添加上比如E盘(不单单实在E盘里再建一个共享文件夹,因为很多时候你要访问的不只是那个共享文件夹,可能随时调用E盘里的其他数据),不用,共享文件名自己拟定。随便,然后下面的“自动挂载”和“固定分配”选上。
5. 然后启动虚拟机。因为博文一中提到的VBoxadditions版本相对旧了(或者其他原因),现在的是5.X.X版本了,所以参照他说的访问路径也不一样了。在bash中先执行如下命令:
sudo apt-get install build-essential
6. 找到最左上方的菜单栏中的“设备”(如果找不到菜单栏就按右边的Ctrl+c组合键调出来),然后点击“安装增强功能”。之后很多人提到是点击光盘符号,然后弹出一个文件夹,在文件夹的右上方有“RunSoftware”,点击运行就行,但是我这样操作就是毫无反应,虽然能运行,但是无法建立共享。
6. 然后你会看到那个光盘符号在左边的竖排菜单下方。执行如下命令;
mkdir share #这是在当前用户的根目录下建立的一个文件,将来用作和你要共享的windows文件夹(步骤4)建立软链接,为了避免冲突可以采用不同名称不要都用share。
7. 接下来增强包有了,但是功能没有安装。执行如下命令:
cd /media # media在当前用户的家目录(home)下可能没有,在根目录下,所以直接执行cd media命令提示错误。
ls #展开/media文件夹,这时你会发现/media中有一个以“当前用户名”命名的文件夹,比如我的就像上图绿色字体显示的“decen”。同时还有一个sf_share的文件夹,这个文件夹就是最开始我尚未启动linux时在windows中建立的E:/share文件夹,你可以用ls命令展开sf_share这个文件夹,看看里面的文件是不是和你在windows中的一模一样?
cd decen #你要做的就是打开你的这个文件夹
ls # 展开文件夹你会发下“VBox_GAs_5.2.20”文件夹,打开它
cd VBox_GAs_5.2.20 #
ls #展开这个VBox_GAs_5.2.20,你会看到有一个后缀包含.run的“VBoxLinuxAdditions.run”,不管将来版本如何,接下来都运行这个“.run”的可执行文件。不用变更权限。用sudo执行,不然系统提示你权限不够,少用root权限是最安全。
sudo ./VBoxLinuxAdditions.run # 这里安装完以后的提示和点击“RunSoftware”的结果真不一样,不知道怎么回事。
sudo adduser 当前用户的用户名 vboxsf #把你自身添加到vboxsf这个组(group)里。接下来建立链接。因为“sf_你的用户名“的这个文件夹隐藏的很深,所以在当前用户下建立一个文件(步骤6),把它们俩链接起来就不用每次都去执行cd /media 等等了。
sudo mount -t vboxsf share /home/当前用户名/share #比如我的就是 sudo mount -t vboxsf E /home/decen/share,我把整个E盘挂在了,建议在添加共享文件时采用绝对路径正如我的所示,不然有时候会提示“mount.vboxsf: mounting failed with the error: No such file or directory”。如果下次打开没有发现共享,很简单把最后这条命令执行一遍,重新挂载一次。如果你觉得这个比较烦,你可以点击ubuntu系统的左侧的“files”图形链接,然后你可以发现有一个“sf_share(或者你自己建立的widows的链接文件夹)”,点击打开就可以了,但是如果要在命令行中操作,还是得挂载,而这个自动挂载的自动失效,我也搞不明白为什么。不过这种方法还是支持你手动拷贝,粘贴等,实现两个系统文件共享。其实当你用ls 展开/home/当前用户名(这个是你自己用户名)你会发现底下的share文件夹被反显了。还有就是貌似关闭终端以后就要重新挂载,所以系统最好不要关闭,休眠就好了,还有就是发现最新的linux自己共享了windows的某个文件加之后会自主创建一个sf_文件夹名称(windows里的)但是你没有会发现没有权限打开,正如我开头所说,怕破坏环境,没有进一步尝试。
当然这一且你都可以写成脚本,一个命令直接执行了。
接下来你可以随便在在share文件夹中建立任何文件,或者把linux的其他文件夹的文件拷贝到这里,在打开windows的相应盘符,看看里面是不是多了刚刚建立的文件。你也可以把里面的文件拷贝到linux的其他文件建立。