点击阅读原文进入 ? 为了挣到10000块,他在VSRC投了一篇稿!
【干货分享】VirutalBox命令行安装虚拟机
鸣 谢
VSRC感谢业界小伙伴——比尔盖饭,投稿精品原创类文章。本文介绍了本地命令行创建和配置虚拟机,远程图形界面安装操作系统。VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将有好礼相送,我们已为您准备好了丰富的奖品!
(活动最终解释权归VSRC所有)
背景介绍
你好,我是比尔,上一次吃盖浇饭是一天前,同样是加班餐。今天主管给我安排了个新任务,要求在公司服务器上安装一个虚拟机,测试一款安全软件。VirtualBox我都玩过无数遍了,难不倒我!
但是当我实际操作时,发现问题来了。原来,公司办公网到IDC服务器之间只开放了TCP/22和TCP/8000端口。其中,22端口是堡垒机专用,而且堡垒机不支持SSH端口转发之类的高级功能。这难不倒高智商的我,开一个VNC使用8000端口就能搞定!但是,操作后才知道,IDC内所有CentOS主机都没有安装图形界面,而且运维也不支持我们自主安装。我想通过VNC上去安装虚拟机的最后念想也破碎了。
当时的情况就是这样的:

没有了图形界面,这可怎么通过VirtualBox安装虚拟机?
策略思路
毕竟盖饭没少吃,像我这样聪明的,总能想出解决办法。我听说VirtualBox支持命令行创建和管理虚拟机,而且虚拟机支持图形化访问,如果我能够:
1、通过命令行创建一个虚拟机;
2、配置虚拟机可以远程图形化访问;
3、设置远程访问端口为8000。
那么,岂不是可以完美实现命令行创建和启动虚拟机,图形界面完成虚拟操作系统的安装?

Nice!Let's do it!
操作过程
为了方便你看懂,我记下了实际操作的全过程,如下:
创建和注册虚拟机
我们要创建一个虚拟机,虚拟机的名字叫:Windows2016。创建虚拟机的同时将它注册到VirtualBox控制台。
##创建并注册虚拟机
VBoxManage?createvm?--name?Windows2016?--register
##Virtual?machine?'Windows2016'?is?created?and?registered.
##UUID:?4025526d-d848-4221-b19e-d55977acdb5d
##Settings?file:?'/opt/vms/Windows2016/Windows2016.vbox'
##彻底反注册并删除虚拟机文件!!!注意,慎重!
VBoxManage?unregistervm?--delete?Windows2016?
##0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
虚拟机参数设置
接下来,是对虚拟机的参数做配置,以确保它能启动并被访问。
1、配置虚拟机系统、内存、CPU等参数
操作系统类型,内存,CPU个数等配置至少得设置一下。注意配置CPU数目的前提是启用ioapic。
#?设置虚拟机操作系统类型为Windows2016
VBoxManage?modifyvm?Windows2016?--ostype?Windows2016
#?设置虚拟机内存4GB
VBoxManage?modifyvm?Windows2016?--memory?4096
#?开启虚拟机ioapic后才能设置CPU数目
VBoxManage?modifyvm?Windows2016?--ioapic?on
VBoxManage?modifyvm?Windows2016?--cpus?2
2、创建磁盘文件并绑定
当然,我们的虚拟机还需要一块40GB的磁盘。可以先创建一个虚拟机磁盘文件Windows2016_40G.vdi,然后将它绑定为虚拟机的SATA磁盘。
#?创建一块400GB的磁盘,文件名为:Windows2016_100G.vdi
VBoxManage?createmedium?--filename?
/opt/vms/Windows2016/Windows2016_40G.vdi?--size?40000
##0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
##Medium?created.?UUID:?1c28421e-20ff-4a99-8314-45960a226837
#?设置SATA存储设备,并绑定到磁盘文件Windows2016_100G.vdi
VBoxManage?storagectl?Windows2016?--name?SATA?
--add?sata?--controller?IntelAhci?--bootable?on
VBoxManage?storageattach?Windows2016?--storagectl?SATA?
--port?0?--device?0?--type?hdd?
--medium?/opt/vms/Windows2016/Windows2016_40G.vdi?
3、创建IDE光驱并挂载ISO
接下来为虚拟机创建一个IDE光驱,并挂载上Windows2016的安装文件cn_windows_server_2016_updated_feb_2018_x64_dvd_11636703.iso
#?设置虚拟机IDE光驱,并挂在指定的iso文件
VBoxManage?storagectl?Windows2016?--name?IDE?
--add?ide?--controller?PIIX4?--bootable?on
VBoxManage?storageattach?Windows2016?--storagectl?IDE?
--port?0?--device?0?--type?dvddrive?
--medium?~/cn_windows_server_2016_updated_feb_2018_x64_dvd_11636703.iso
如果你希望安装系统后,在虚拟机内安装VirtualBox增强工具包,可以再设置一个光驱并挂载VBoxGuestAdditions.iso。当然也可以等系统安装完成,直接更换第一个光驱的挂载对象。
#?设置第二个IDE光驱,挂载VirutalBox组件iso?(可选)
VBoxManage?storageattach?Windows2016?--storagectl?IDE?
--port?1?--device?0?--type?dvddrive?
--medium?/usr/share/virtualbox/VBoxGuestAdditions.iso
4、设置虚拟机网络连接
为了让我们的虚拟机开机后可以联网,还需要设置它的网卡参数。本例中,Windows2016虚拟机桥接在CentOS物理机的eth0网卡。
#?设置虚拟机网卡桥接模式,并绑定到系统eth0网卡
VBoxManage?modifyvm?Windows2016?--nic1?bridged?
--nictype1?82545EM?--cableconnected1?on?--bridgeadapter1?eth0
设置VRD端口和参数
好啦,进入最关键一步!VBoxManage可以创建和启动虚拟机,但是启动后,操作系统安装过程需要图形化交互。这就需要我们开启虚拟机的远程控制功能,开启VRDE,并设置端口为我们可以使用的8000。
#?设置虚拟机启动后的图形管理程序监听端口:8000/tcp
VBoxManage?modifyvm?Windows2016?--vrdeport?8000?--vrdeaddress?""
#?启动VRDE允许远程图形界面访问
VBoxManage?modifyvm?Windows2016?--vrde?on
启动虚拟机
好了,是时候启动虚拟机了!因为是在远程SSH的黑窗口里,所以只能以无窗口模式(--type headless)启动。
#?headless方式启动虚拟机
VBoxManage?startvm?Windows2016?--type?headless
#?Waiting?for?VM?"Windows2016"?to?power?on...
#?VM?"Windows2016"?has?been?successfully?started.
RDP远程连接进行安装
等虚拟机启动成功后,会自动加载光驱和硬盘,并进入Windows操作系统安装界面。这时候我们可以通过办公终端的Windows RDP客户端连接VRDE端口,进行系统安装和部署了。
注意,RDP连接时要带上端口号:8000,而不是默认的3389。

没错,你成功看到了虚拟机启动画面,并进入系统安装界面。

接下来可以使用键盘和鼠标完成远程操作系统的安装。

之后的过程,你一定能驾轻就熟轻松搞定,我就不啰嗦了。
备用指令
1、虚拟机关机指令
#?关闭虚拟机
VBoxManage?controlvm?Windows2016?poweroff
##0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
VBoxManage?controlvm?Windows2016?acpipowerbutton
2、安装VirtualBox
#?下载和安装VirtualBox
[root@localhost?~]#?wget?https://download.virtualbox.org/virtualbox/6.0.12/VirtualBox-6.0-6.0.12_133076_el7-1.x86_64.rpm
[root@localhost?~]#?yum?install?VirtualBox-6.0-6.0.12_133076_el7-1.x86_64.rpm
#?下载和安装增强功能扩展包
[root@localhost?~]#?wget?https://download.virtualbox.org/virtualbox/6.0.12/Oracle_VM_VirtualBox_Extension_Pack-6.0.12.vbox-extpack
[root@localhost?~]#?VBoxManage?extpack?install?Oracle_VM_VirtualBox_Extension_Pack-6.0.12.vbox-extpack?
3、VirtualBox常用命令
VBoxManage?-v
##?6.0.12r133076
#?列举虚拟机和正在运行的虚拟机
VBoxManage?list?vms
##?"Windows2016"?{4025526d-d848-4221-b19e-d55977acdb5d}
VBoxManage?list?runningvms
##?"Windows2016"?{4025526d-d848-4221-b19e-d55977acdb5d}
#?查看虚拟机详细配置信息
VBoxManage?showvminfo?Windows2016?
#?Name:????????????????????????Windows2016
#?Groups:??????????????????????/
#?Guest?OS:????????????????????CentOS_64
#?UUID:????????????????????????d5dd4ecb-1921-4ce1-abf6-19727a5af69d
#?Config?file:?????????????????/opt/vms/Windows2016/Win2016.vbox
#?Snapshot?folder:?????????????/opt/vms/Windows2016/Snapshots
#?Log?folder:??????????????????/opt/vms/Windows2016/Logs
#?Hardware?UUID:???????????????d5dd4ecb-1921-4ce1-abf6-19727a5af69d
#?Memory?size??????????????????6144MB
#?Page?Fusion:?????????????????disabled
#?VRAM?size:???????????????????8MB
#?CPU?exec?cap:????????????????100%
#?HPET:????????????????????????disabled
#?CPUProfile:??????????????????host
#?...
注意事项
1)虚拟机安装完成后记得撤下光驱里的ISO挂载对象;
2)VRDE默认没有设置密码,系统安装完成后及时关闭;
3)虚拟机文件的默认目录在~/VirtualBox VMs,可以通过配置文件~/.config/VirtualBox/VirtualBox.xml修改;
4)如果出现如下错误,可能是系统内核版本不够,需要做升级。
WARNING:?The?vboxdrv?kernel?module?is?not?loaded.?Either?there?is?no?module
?????????available?for?the?current?kernel?(3.10.0-957.el7.x86_64)?or?it?failed?to
?????????load.?Please?recompile?the?kernel?module?and?install?it?by
???????????sudo?/sbin/vboxconfig
?????????You?will?not?be?able?to?start?VMs?until?this?problem?is?fixed.
...
The?distribution?packages?containing?the?headers?are?probably:
????kernel-devel?kernel-devel-3.10.0-957.el7.x86_64
This?system?is?currently?not?set?up?to?build?kernel?modules.
Please?install?the?Linux?kernel?"header"?files?matching?the?current?kernel
此时,可以尝试如下指令:
yum install kernel-devel kernel-headers
参考资料
Chapter 8. ? ? ?VBoxManage
VirtualBox ? ? ?Network Settings: Complete Guide
7.8. ? ? ?VBoxManage modifyvm
我是比尔,因为给你准备这篇文档(命令行创建虚拟机,远程图形界面安装操作系统),今天又吃了一顿加班盖浇饭~_~
。
。
精彩原创文章投稿有惊喜!

VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将为您准备的丰富奖金税后1000元现金或等值礼品,上不封顶!如若是安全文章连载,奖金更加丰厚,税后10000元或等值礼品,上不封顶!可点击“阅读原文”了解规则。(最终奖励以文章质量为准。活动最终解释权归VSRC所有)
不知道,大家都喜欢阅读哪些类型的信息安全文章?
不知道,大家都希望我们更新关于哪些主题的干货?
现在起,只要您有任何想法或建议,欢迎直接回复本公众号留言!
精彩留言互动的热心用户,将有机会获得VSRC赠送的精美奖品一份!
同时,我们也会根据大家反馈的建议,选取热门话题,进行原创发布!
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中国经济向世界提供“机遇清单” 7904642
- 2 朱元璋换帅照后明孝陵火了 7808197
- 3 水银体温计将禁产 有网友囤货100支 7714679
- 4 2025这些“经济”持续成长壮大 7617052
- 5 近8000吨车厘子来了 7522996
- 6 老人接孙女从认不出到相拥大哭 7425389
- 7 冯提莫自曝癌症复发并转移 7332354
- 8 喜茶600多家店消失 7238479
- 9 西班牙女员工连续提前到岗被开除 7141094
- 10 寒潮来袭!多地气温将创下半年来新低 7039700







唯品会安全
