对于利用vagrant在virtualBox上安装虚拟机来说,有两种方法,第一种是在线安装,第二种是离线本地安装,这两种方法网上都有,我在这里介绍一下,另外,安装的过程中我遇到了一个问题,就是虚拟机装好之后没过多久,dev/sda1就满了,有40g的空间,什么都没做就满了,确实有些奇怪,这里也附带问题分析和解决方案。
首先,安装virtualbox和vagrant这两个软件,去官网下载,无脑点击下一步,这里就一笔带过,大家都会,附带安装网址:
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
点击Win+R,输入cmd,打开命令行窗口,不出意外会直接进入C:\Users\用户名
目录下,输入vagrant
并按回车(这里假设已经安装好virtualBox和vagrant两款软件)会出现下面的图片:表明vagrant安装成功
接下来输入指令:vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
初始化centos/7,输入完这条指令会在当前目录下生成两个文件:
根据提示,继续输入指令:vagrant up
开启虚拟机
出现了Rsyncing folder: /cygdrive/c/Users/用户名/ => /vagrant
的时候说明已经开启虚拟机了(这条指令也相当于同步文件夹,他会将/c/Users/用户名/目录挂载到虚拟机上的目录:/vagrant,这也是后面dev/sda1爆满的原因,后面详解),这个时候Ctrl+c终止当前命令,然后输入vagrant ssh
登录虚拟机,这个时候就算安装完成了。
登陆之后可以看看存储空间,这个时候可以看到上面那张图片,/dev/sda1占比22%,本身不正常,因为刚刚安装的虚拟机,无操作过了一个小时,空间就爆满,这个过程中,他自己在一点点的挤占空间。
这里可以看到上面图片,占比/dev/sda1已经43%了
这里可以看出来占比96%,即将爆满,再等会就不能装任何软件了。原因是在打开cmd命令行的时候,准备安装centos/7,这里要注意一点,最好找一个空的文件目录,开始安装,因为安装完成后,他会将本目录下所有的东西全部同步到虚拟机根目录下的/vagrant目录下面。我一开始就在C/User/用户名
目录下安装的,由于这里有很多文件,尤其是有个文件夹Appdata文件夹,大概20多G,算上其他文件,全部都同步到了/vagrant目录下面了,如下图:
这就导致了开启虚拟机的时候风扇飞速运转,其实后台在偷偷同步C/User/用户名
下的所有文件,导致了没过多久,我的虚拟机硬盘文件直接飙升到36.5G,安装的时候分配的空间40G。
这个时候有两种解决方案,第一种:
删除根目录下的vagrant文件夹及以下目录:sudo rm -rf vagrant
然后在使用命令:df -h
可以看出来,失去的空间,他回来了
然后关闭虚拟机,并找到C:\Users\用户名\.vagrant.d\boxes\centos7\0\virtualbox
目录下有个Vagrantfile
文件
打开,:
Vagrant.configure("2") do |config|
config.vm.base_mac = "5254004d77d3"
config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
将第三行的"."
更换为"./backup"
然后去C/User/用户名
同级目录下新建一个backup
文件夹,第三句话原来的意思是将当前目录全部文件同步到虚拟机根目录下的vagrant目录中,这就导致了存储空间爆满,更改成一个空的文件夹,当然,前提是当前目录下要有这个文件夹,所以要去新建backup文件夹,别的名字也可以,Vagrantfile文件内改成对应的名字就行。
然后退出虚拟机,在命令行终端输入:vagrant reload
重新加载,然后vagrant up
最后vagrant ssh
第二种解决方案就是,全部删掉,重新安装,这个时候选择一刻空白的文件夹里面进行安装,就不会出现同步当前目录下所有文件的尴尬局面了,什么都没有,也就不用同步,也不用改Vagrantfile文件。
下面就进行离线安装本地镜像操作,来一遍,这样比较方便快捷,提前备好镜像,不会因为网络出现安装问题。
一般来说,安装完vagrant
之后,在cmd
中打开一个目录,在当前目录下使用vagrant
命令,会在当前目录下生成一个文件夹:.vagrant.d
然后所有的相关文件如 boxes
都会放在这里,比如在线安装的时候,下载的镜像也在.vagrant.d
这个文件夹里。为了防止后续C盘吃紧,我们可以把这个文件夹放到别的盘目录下面,当然需要修改环境变量(下面是我的地址):
变量名: VAGRANT_HOME
变量值: F:\VagrantFile\VagrantRep\.vagrant.d
将C盘user下的用户名目录下的.vagrant.d文件直接拷贝到上面的目录下面,需要在virtualBox上设置全局变量,虚拟机的地址,这个地址是放vmdk文件的,就是虚拟机的硬盘地址,也最好放到别的盘目录下面,设置好之后再去设置全局变量的那个目录下打开cmd,这样的话安装centos/7镜像就在这个目录下面了。
保存好了需要重启电脑
vagrant box add centos/7 CentOS-7.box
后面的 CentOS-7.box就是镜像文件,如果在别的目录,就要放完整的目录。
输入指令:vagrant box list
查看virtualbox添加的镜像列表。
之后需要初始化一下:vagrant init centos/7
init之后会出现一个文件Vagrantfile并且在上一层目录会出现一个文件夹.vagrant.d
是因为之前在环境变量VAGRANT_HOME
设置好了
然后根据命令行指示输入:vagrant up
virtualbox中出现虚拟机,并且之前设置的全局变量位置里出现了vmdk虚拟机硬盘文件。
最后:vagrant ssh
登录
最后记得去vagrantfile
里面修改ip地址192.168.56.10
,根据cmd
命令行中ipconfig
中的对应网关192.168.56.1
记得退出登录exit;
然后vagrant reload
重新登陆之后,修改可以远程登录:
su权限进入目录:vim /etc/ssh/sshd_config
(vim需要自己安装,可以使用vi)
修改这两条:
PermitRootLogin yes
PasswordAuthentication yes
重启sshd systemctl restart sshd