为了尽可能的节约资源,决定在命令行下安装VirtualBox。

原料: Centos7 主机一台 12C 16G

安装必要的软件包并下载VirtualBox安装包以及扩展模块

yum update -y
yum groupinstall -y "Development Tools"
yum install -y kernel-devel
mkdir /VBox
cd /VBox
wget https://download.virtualbox.org/virtualbox/6.1.34/VirtualBox-6.1-6.1.34_150636_el7-2.x86_64.rpm
wget https://download.virtualbox.org/virtualbox/6.1.34/Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack

1、安装VBox、创建运行VBox的用户(用户组在安装过程中会自动创建)

yum install -y /VBox/VirtualBox-6.1-6.1.34_150636_el7-2.x86_64.rpm
# VBox 运行账号需要在vboxusers用户组下 在安装过程会有相应的提示。 不同版本的VBox可能会提示不同的用户组,需要注意一下
# 创建用户并设定密码,这个很重要
useradd vboxuser -g vboxusers
passwd vboxuser

2、安装扩展模块

VBoxManage extpack install /VBox/Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack

注意,如果扩展包安装失败,注意看是否内核版本错误。

在经过 yum update 后,内核可能会升级 ,对应的 kernel-devel kernel-headers等版本可能是最新的,这就会导致报错,提示安装相应的软件包。

可以通过rpm -qa| grep kernel 来看一下kernel软件包是否安装齐全

如图,安装的都是升级后3.10-1160.66.1相关包,但是正在运行的是却是3.10.0-957,所以直接安装VBox扩展会失败。

CentOS 7 命令行下安装VirtualBox_VirtualBox

两个方法:1、安装正在运行的内核版本的软件包 2、重启机器,在启动页面使用新内核。

3、配置VirtualBox web service

VirtualBox web service是VBox提供的网络访问API,配置这个API的目的主要是为了方便通过上文​​https://blog.51cto.com/quietguoguo/5323466​​ 通过RemoteBox进行管理。

默认情况VirtualBox web service需要18083端口进行范围,所以要提前对防火墙进行配置。

为方便了解运行状态,需要创建VirtualBox web service的日志目录,该目录的所有者与上文创建的VBox用户、用户组保持一致

mkdir -p /var/log/vbox
chown vboxuser:vboxusers /var/log/vbox

创建配置文件

/etc/default/virtualbox

该文件中可以使用IP地址来替代主机名

VBOXWEB_USER="vboxuser"
VBOXWEB_TIMEOUT=0
VBOXWEB_LOGFILE="/var/log/vbox/vboxweb.log"
VBOXWEB_HOST="192.168.0.10"

使服务生效并启用

systemctl enable vboxweb-service
systemctl start vboxweb-service


以上配置完成后即可使用RemoteBox进行连接,设定好IP username password即可,其余操作与在本地操作VBox几乎一样。


4、(可选操作)配置虚拟机随宿主机开机自启

创建配置文件,并配置相应的文件目录权限

cat > /etc/default/vb-autostart-perms << EOF
default_policy = allow
EOF

chmod 0644 /etc/default/vb-autostart-perms
chown vboxuser:vboxusers /etc/default/vb-autostart-perms
mkdir -p /var/lib/virtualbox-autostart
chmod 1777 /var/lib/virtualbox-autostart
chown vboxuser:vboxusers /var/lib/virtualbox-autostart

echo 'VBOXAUTOSTART_DB="/var/lib/virtualbox-autostart"' >> /etc/default/virtualbox
echo 'VBOXAUTOSTART_CONFIG="/etc/default/vb-autostart-perms"' >> /etc/default/virtualbox

systemctl enable vboxautostart-service
systemctl start vboxautostart-service
systemctl restart vboxweb-service

经过以上配置还需要在RemoteBox进行相应的配置

CentOS 7 命令行下安装VirtualBox_命令行_02

CentOS 7 命令行下安装VirtualBox_VirtualBox_03