logo logo
关于我们

技术分享

技术分享 Linux服务器上命令行安装Virtualbox虚拟机

Linux服务器上命令行安装Virtualbox虚拟机

2020-12-27

Linux服务器上命令行安装Virtualbox虚拟机  



假设这种情况,你有一台服务器,但是你只能远程的ssh访问,没办法转发图形界面,但是要怎么在命令行下安装和配置 Virtualbox,并且用无图形化的方法安装虚拟机上的Linux系统呢。本文就是解决这种情况。

1.安装Virtualbox
这个很简单,可以去 Virtualbox的主页上找,有对应的deb包和rpm包等。安装过程略去。

2.新建和配置虚拟机
Virtualbox的命令行工具是vboxmanage,实现了所有的功能,比如新建虚拟机,修改虚拟机参数,添加硬盘,网络等。具体的命令可以参考其英文的 帮助文档。下面会分步骤介绍过程
2.1)建立并注册虚拟机
vboxmanage createvm --name debian_test --ostype Debian_64  --register
虚拟机名字是 debian_test,作为唯一标识,OS为Debian 64位,Virtualbox所支持的os,可以用vboxmanage list ostypes 查看。

2.2)配置虚拟机CPU、内存和使用Host上的VT技术
vboxmanage modifyvm debian_test --memory 2048  #配置实用2GB内存
vboxmanage modifyvm debian_test --cpus 4     #使用4颗CPU
vboxmanage modifyvm debian_test --ioapic on   #启用此项,才能在VM中看到多个CPU,否则就是1颗。
vboxmanage modifyvm debian_test --hwvirtex on  #启用Host上的硬件虚拟化 (可选)
vboxmanage modifyvm debian_test --nestedpaging on  #启用Host上的硬件虚拟化中的nested page特性。(可选)
vboxmanage modifyvm debian_test --hwvirtexexcl on   #VirtualBox是否是在Host上唯一使用的虚拟化软件,如果是,开启。(可选)
 vboxmanage modifyvm debian_test --rtcuseutc on #设置使用utc时间 (可选)

2.3)配置网络(NAT),增加端口转发
vboxmanage modifyvm debian_test --nic1 nat      #将第一个网卡设置成 NAT
vboxmanage modifyvm debian_test --nictype1 virtio  #将第一个网卡的硬件,设置成 virtio
vboxmanage modifyvm debian_test  --natpf1 "guestssh,tcp,127.0.0.1,8822,,22"  #增加端口转发。在VM安装系统和ssh server后,在host上可以通过ssh访问VM,例如 ssh -p 8822 127.0.0.1

2.4) 配置串口
我们需要配置串口,这样在无图形化安装VM上的Linux系统时,可以让安装shell重定向输出到VM的串口上
vboxmanage modifyvm debian_test  --uart1 0x3F8 4  #启用串口1
 vboxmanage modifyvm debian_test  --uartmode1 server /tmp/debian_test_uart1  #将串口,以管道的方式,定向到 Host上的/tmp/debian_test_uart1,此文件可以在host端,用minicom 软件打开,具体见后面的安装VM的系统叙述。

2.5) 配置硬盘
vboxmanage createhd --filename ./debian_test.vdi --size 20480  #新建虚拟硬盘文件,debian_test.vdi,容量为20GB
vboxmanage storagectl debian_test --name debian_test_storage_controller_1 --add sata --bootable on #为VM增加存储控制器,这样才能把虚拟硬盘挂上。
VBoxManage storageattach debian_test --storagectl debian_test_storage_controller_1 --type hdd --port 0 --medium /your/path/to/debian_test.vdi  #将硬盘挂在到控制器的0端口上,注意虚拟硬盘文件需要 绝对路径

3. 安装VM上的Linux系统
3.1)准备工作
下载安装的iso光盘文件,比如,我下载的是   Debian 的debian-6.0.2.1-amd64-netinst.iso
VBoxManage storageattach debian_test --storagectl debian_test_storage_controller_1 --type dvddrive --port 1 --medium /your/path/to/debian-6.0.2.1-amd64-netinst.iso  #挂载光盘

3.2) 启动虚拟机  
VBoxHeadless --startvm debian_test

3.3)控制安装debian installer,将输出定向到串口
这里是比较tricky的地方,核心思想是让安装过程的引导Linux内核参数,增加上  console=ttyS0,115200n8,这样就可以将安装过程中的输出定向到VM上的串口了。通过   vboxmanage controlvm 命令的  keyboardputscancode ,可以给虚拟机发送键盘的scancode,这样就可以直接模拟键盘输入,而不需要在vm上启用vrde(远程桌面)扩展了。

通用的方法是,使用 virtualbox的vrde扩展,使用远程桌面连接到VM上,之后,就像平常那样安装系统就好了。

 
以下步骤只适用于Debian的安装,其他的发行版,要有不同的键盘输入。
   

   
#选择 debian installer的help选项,按键为 3个下箭头,1个回车  
 vboxmanage controlvm debian_test keyboardputscancode 50 50 50 1c  
#选择 debian installer中的special boot parameters for special machines.按键为F6  
vboxmanage controlvm debian_test keyboardputscancode 40  
#此时,需要输入 install console=   ttyS0,115200n8  
 vboxmanage controlvm debian_test keyboardputscancode  17 31 1f 14 1e 26 26 39 2e 18 31 1f 18 26 12  #此为键盘输入 install consolevboxmanage controlvm debian_test keyboardputscancode  0d 14 14 15 2a 1f aa 0b 33 02 02 06 03 0b 0b 31 09 #此为键盘输入 =ttyS0,115200n8 vboxmanage controlvm debian_test keyboardputscancode  1c #输入1个回车

 
3.4)配置minicom,访问VM的串口  
minicom -s  
之后,选择Serial port setup,将Serial Device修改成    unix#/tmp/debian_test_uart1 与之前设置串口定向的管道对应上。
此时,就应该能看到输出了,如果没有,可以按上下键,刷新一下。

3.5)安装VM的系统的ssh服务
在安装过程中,重要的步骤是安装 ssh服务,这样,就可以通过host端ssh访问了。

3.6)安装完毕后,卸载光驱文件。
VBoxManage storageattach debian_test --storagectl debian_test_storage_controller_1 --type dvddrive --port 1 --medium none

4.安装后从Host ssh访问VM
假设此时虚拟机没有运行。  
VBoxHeadless --startvm debian_test --vrde=off  #启动虚拟机,禁止vrde远程桌面
#从host端,ssh 到vm上,virtualbox已经配置了端口转发
ssh -p 8822 127.0.0.1  
之后,就和普通的ssh上服务器一样了。

5.一些常用Virtualbox控制命令
# 重启虚拟机
云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 容灾备份

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698