Xshell 和 Virtualbox

下面将展示如何用 Xshell 来连接和控制(通过 vboxmanage)Virtualbox

Xshell 是运行在 Windows 10 上,虚拟机中运行 CentOS 7

  1. 首先,编写控制虚拟机启动/保存状态的批处理命令

启动脚本

# 进入 d: 盘;进入虚拟机安装目录;
# 执行启动虚拟机的命令; headless 表示无GUI界面
d:
cd Tools\Oracle\VirtualBox
VBoxManage.exe startvm "CentOS" --type headless

保存状态脚本

d:
cd Tools\Oracle\VirtualBox
VBoxManage.exe controlvm "CentOS" savestate

将脚本保存在 C:\Users\username\Documents\NetSarang Computer\6\Xshell\Sessions\vms 下

Xshell 和 Virtualbox_第1张图片
图片.png

关于 Vboxmanage 的其他命令

# 列出所有虚拟机 
$ VBoxManage.exe list vms
"CentOS" {c31642b9-c1db-4948-9c4f-677a67b64177}


# 列出正在运行的虚拟机
$ VBoxManage.exe list runningvms
"CentOS" {c31642b9-c1db-4948-9c4f-677a67b64177}

# 显示虚拟机的信息
VBoxManage.exe showvminfo "CentOS"

# 启动虚拟机,无GUI界面
VBoxManage.exe startvm "CentOS" --type headless

VBoxManage.exe controlvm poweroff
VBoxManage.exe controlvm savestate

通过 ssh 连接虚拟机(这里使用的虚拟网卡是 host-noly 模式)

Xshell 和 Virtualbox_第2张图片
打开 Xshell 会话
Xshell 和 Virtualbox_第3张图片
成功连接到虚拟机

使用 Virtulbox 保存状态后再恢复,有时会出现无法和虚拟机连接的情况;从虚拟机 ping 物理机后又恢复正常。

这里写一个服务,使虚拟机不断地 ping 物理机

ping 物理机的脚本

➜  ~ cat startup-scripts/ping-vbox.sh 
#!/bin/bash
ping 192.168.56.1 &> /dev/null

➜  ~ chmod +x startup-scripts/ping-vbox.sh 

服务脚本

➜  ~ sudo cat /etc/systemd/system/ping-vbox.service
[Unit]
Description="Active Connect for VirtualBox"
[Service]
ExecStart=/home/admin/startup-scripts/ping-vbox.sh
[Install]
RequiredBy=multi-user.target

# start 运行服务
# enable 开机自动运行服务
➜  ~ sudo systemctl daemon-reload  
➜  ~ sudo systemctl start ping-vbox 
➜  ~ sudo systemctl enable ping-vbox
Xshell 和 Virtualbox_第4张图片
服务正常运行

在 xshell 中通过批处理文件控制虚拟机开关

[C:\~]$ vms\CentOS-start.bat
[C:\~]$ vms\CentOS-saveState.bat

你可能感兴趣的:(Xshell 和 Virtualbox)