使用virtualbox建立的虚拟机,如何实现与windows系统的目录映射

背景


在使用vagrant虚拟机管理工具时,发现使用vagrant确实好用。只需要配置简单的一些东西,就能够实现PHP开发环境的所有东西,以及一些好用功能,比如静态IP设置、目录映射关系。
于是在这种巨大效益之下, 开始研究其实现的基本原理。

了解虚拟机网卡信息


首先了解下NAT网络、host-only网络、bridge网络的基本原理。

  1. NAT网络地址转换
    即虚拟机本身不作为一台真正的电脑出现,而是通过宿主机连接公网。这种网络连接方式是虚拟机默认的网络连接方式,其网络地址一般是10.0.2.15。
    注意:
    宿主机不能通过ping 10.0.0.15的方式连接虚拟机。不过可以使用网络端口转发的方式实现ping通虚拟机,在 虚拟机的NAT模式下如何访问虚拟机服务器 这篇文章中笔者做了说明,这里不再赘述。
    nat模式.png
  2. Bridge网络桥接
    虚拟机作为一台有独立身份的电脑出现,拥有独立的IP地址,虚拟机通过该IP连接网络。宿主机能够通过该地址与虚拟机建立连接。
    注意:
    宿主机能够访问该IP的同时,在同一网络的其它用户也可以通过该IP访问虚拟机。这个IP也有规定,必须在当前网段。具体配置信息笔者在 Ubuntu下静态IP设置 这篇文章中讲解到了,不再赘述。
  3. host-only模式
    host-only模式与前两者区分开来,其能够被宿主机访问,不能够被其他网络访问,可以说是私有的网络,其IP是设置也有具体的规定,一会我们在详述。
    注意:
    这种方式是不能连接公网的,同时IP的设置也比较麻烦。

特别提醒:
当设置以上三种网络时,需要首先将虚拟机设置为网络连接方式。如下图:

桥接模式

妙用多张网卡


笔者安装了Ubuntu16.04,具体安装步骤笔者不再赘述,接下来图文分析,如何设置与vargrant相同的开发环境。

第一步 默认连接方式不做改动,连接外网的保证

妙用多张网卡1.png

第二步 开启第二块网卡,配置host-only模式,使其能够配置静态IP

host-only网卡.png

当开启之后,宿主机会默认开启一个虚拟网卡,如下图所示:

window上的网卡.png

注意:
这个虚拟机的IP我们需要记住,因为我们随后要用到:

host-only地址.png

第三步 在虚拟机中配置第二块网卡

当使用ifocnfig时,发现第二块网卡没生效,竟然没有IP地址:

配置第二块网卡.png

显然,在开启之前我们已经配置好了,但是没出现是咋回事?
列位看官,不要惊慌,因为 HOST-ONLY 的第二块网卡,我们没进行任何配置,所以我们需要自己进行配置,这里会使用到上述我们提到过宿主机中虚拟网卡的IP192.168.56.1

第四步 配置第二块网卡的IP地址

Ubuntu16.04将网卡名称设置成了enp0s3,而不是之前的我们常用的eth0了,这就很恶心了,我特么怎么知道第二块网卡名字是多少?
笔者查询了半天,依然没有查询到,于是,退而求其次,改成我们熟悉的eth0,请看下面详细步骤。

  1. 修改相关的配置文件
sudo vim /etc/default/grub
  1. 找到GRUB_CMDLINE_LINUX=”” ,将其修改为如下格式:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  1. 更新配置信息
sudo grub-mkconfig -o /boot/grub/grub.cfg
  1. 重启电脑
sudo reboot
  1. 卧槽,怎么连第一块网卡都没了?


    网卡在哪里.png

    看官休怒,因为咱们还没配置相关网卡的信息,说明还在沿用之前的网卡信息。那就需要我们进行相关配置信息修改。

  2. 打开网卡配置文件sudo vim /etc/network/interfaces
    将其修改如下:

source /etc/network/interfaces.d/*
auto lo
# 第一块网卡, 使用NAT
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
# 第二块网卡,使用HOST-ONLY
auto eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0

与宿主机的第二块网卡IP地址保持一致

  1. 重启网络/etc/init.d/networking restart
成了.png
测试1.png

测试2.png

配置宿主机与虚拟机的目录映射


第一步 安装VirtualBox的增强工具包(必须)

安装增强功能.png
Paste_Image.png

第二步 设置共享目录

Paste_Image.png
Paste_Image.png

第三步 虚拟机中挂载目录

sudo su
midir -p /data/www
cd /mnt/
mkdir cdrom
mount /dev/cdrom /mnt/cdrom
cd cdrom
./VBoxLinuxAdditions.run
mount -t vboxsf www /data/www/

www目录是上一步中我们配置的共享目录,/data/www目录是我们在虚拟机中建立的目录

错误1:
Failed to set up service vboxadd

Paste_Image.png

查看错误日志:

vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: Please check that you have gcc, make, the header files for your Linux kernel and possibly perl installed.

显然,这是Linux缺少了一点东西,gcc、make、kernel-package、kernel-common、perl等,那我们就行依次的安装。

错误1解决:
安装确实的依赖信息,执行如下命令

apt-get install gcc make kernel-package kernel-common perl

又报错了,如下所示:

wbl@ubuntu:~$ sudo apt-get install gcc make linux-kernel perl
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

不知道是哪里在占用dkpg命令,这里不知道咋回事,可能是安装时报错然后被占用了吧,那么简单粗暴,使用reboot重启。

Paste_Image.png

经过漫长的等待,终于下载好了。那么接下来我们重新执行上面的命令,看看直接成功,还是会报其它的错误。

又报了其他错误,如下图所示,不过最后显示skipping跳过,可能这个错误不是致命错误。

Paste_Image.png

在摸索中继续尝试,使用最后一条命令,将宿主机目录映射到虚拟机目录。

mount -t vboxsf www /data/www

成了!!!


Paste_Image.png

错误2:
注意,当重启之后,挂载的目录需要进行重新设置。但vagrant不需要,那么就去寻找其原因。
笔者找到了通过/etc/rc.local设置自动挂载的方法。但在重启时,自动挂载命令会显示无法执行,如图所示。

Paste_Image.png

这个就纳闷了,然后查了N多资料,始终没解决,但笔者又找到了自动挂载另一种解决方案。

错误2解决

Paste_Image.png

当点击自动加载时,会自动创建一个共享文件夹,如sf_www,。

Paste_Image.png
Paste_Image.png

无法改变其权限,那么就给当前用户加入vboxsf属组,命令如下:

# 可以为当前用户和`www-data`服务器默认用户加入此用户组。
sudo usermod -aG vboxsf <your username>

总结


学习,让你更有自信!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,127评论 2 34
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,118评论 9 467
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 冬 致忙碌了一年的人 夜 晚灯下茉莉飘香 想 念念不忘是一种习惯 家 情到深时融冰化雪 勿挂。安好。
    杨文才阅读 560评论 0 0
  • 却始终没有办法,再次回忆起那时的种种 曾经关于梦想,我许过什么愿望?竟变成了未知 人们对于深埋心底的种子,一旦有一...
    伊索煜言阅读 178评论 0 1