近年来的硬件均支持VT虚拟化技术(Virtualization Technology),在支持硬件虚拟化技术的Ubuntu主机上,直接使用最新版本的VirtualBox即可正常使用。
但是!
如果你也像我一样,主机的硬件比较老旧,CPU根本不支持VT虚拟化技术的话,那么最新版本的VirtualBox将无法使用。
此时,就只能使用旧版的VirtualBox 6.0.24r139119(最后一个支持“软虚拟”的版本)
一、安装VirtualBox
1,命令行
Ubuntu Server只有命令行模式,并没有图形界面。
Ubuntu与Ubuntu Server最直观的区别就在于此,一个有图形界面,一个没有。
系统版本:Ubuntu Server 20.04.2 LTS x64
- 提前下载好VirtualBox 6.0.24r139119安装包和扩展包(Extension Pack)
- 定位到VirtualBox安装包所在目录,输入安装命令
sudo dpkg -i virtualbox-6.0_6.0.24-139119~Ubuntu~eoan_amd64.deb
如果报错:Errors were encountered while processing…
解决它!
sudo apt --fix-broken install
sudo dpkg -i virtualbox-6.0_6.0.24-139119~Ubuntu~eoan_amd64.deb
sudo apt install gcc make perl
sudo rcvboxdrv setup
再检查一下内核与软件版本信息(两个版本数字一致就可以了)
sudo modinfo vboxdrv
vboxmanage -v
- 安装扩展包
sudo VBoxManage extpack install <扩展包名称>
接下来就可以使用VBoxManage命令进行安装、导入、修改或启动、停止虚拟机了
vboxmanage
安装完成!
2,命令行 + 图形界面
此环境就是Server版Ubuntu安装了图形界面,操作相对简单,更容易上手。
系统版本:Ubuntu Server 20.04.1 LTS x64
- 【命令行】安装图形界面
sudo apt install ubuntu-desktop
- sudo 提升权限,让普通用户可以针对此命令使用root权限
- apt 执行操作,也可写为apt-get
- install 安装
- ubuntu-desktop 图形界面的软件名称
- 图形界面下的操作就和Windows一样:打开浏览器,到VirtualBox官网下载对应系统版本的VirtualBox 6.0.24r139119安装包和扩展包(Extension Pack)
https://www.virtualbox.org/wiki/Download_Old_Builds_6_0 - 【命令行】定位到下载的VirtualBox安装包所在目录,输入安装命令
安装包文件名太长,可以输入前面几个关键字后按Tab键自动补全。
sudo dpkg -i virtualbox-6.0_6.0.24-139119~Ubuntu~eoan_amd64.deb
- dpkg -i 安装本地软件包
- virtualbox-6.0… 软件名称
- 【命令行】安装完成后,打开VirtualBox
在图形界面下,终端命令行直接输入软件名称就可以打开软件,效果等同于双击软件图标打开软件。
virtualbox
- 安装扩展包
打开VirtualBox【全局设定 – 扩展】添加下载的扩展包(Extension Pack)
安装完成!
由于是旧版VirtualBox的缘故,此时打开虚拟机可能会报错:
RTR3InitEx failed with rc=-1912 (rc=-1912)……balabala…
这是因为内核里的软件版本信息和安装的软件版本不一样导致的,接下来修复这个问题:
- 查看vboxdrv内核信息
sudo modinfo vboxdrv
- modinfo 用于查看模块信息
- vboxdrv VirtualBox内核模块名称
- 删除内核文件
sudo rm /lib/modules/5.4.0-65-generic/misc/vboxdrv.ko
- rm 删除
- 验证删除是否成功
sudo modinfo vboxdrv
- 重新配置内核文件
sudo /sbin/vboxconfig
- 查看内核与软件版本信息(两个版本数字一致就可以了)
sudo modinfo vboxdrv
vboxmanage -v
- vboxmanage -v 显示VirtualBox版本信息
现在,VirtualBox虚拟机可以正常使用了。
二、配置自启动虚拟机
1,随系统启动
接下来设置我们指定的虚拟机,在Ubuntu Server每次开机或重启时能够自动启动运行!
命令行模式下,无需启动图形界面
- 定位到系统自启动脚本目录
cd /etc/init.d
- cd 定位
- 创建一个名为ConfigVM的自启动脚本文件,文件名可自行更改,但对应的后面都要修改统一。
sudo vi ConfigVM
- vi VIM编辑器,创建/打开文件
- 在ConfigVM自启动文件中输入以下信息:
使用VIM编辑器打开文件时默认是浏览模式,按 “i” 键切换到编辑模式
#! /bin/sh
### BEGIN INIT INFO
# Provides: ConfigVM
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts ConfigVM
# Description: VirtualBox
### END INIT INFO
#设置变量
VMUSER=abc #系统的用户名
VMNAME="RouterOS-6.40.1" #要自启动的VirtualBox中虚拟机的名字
case "$1" in
start)
echo "Starting VirtualBox VM..."
sudo -H -b -u $VMUSER /usr/bin/VBoxManage startvm "$VMNAME" --type headless
;;
stop)
echo "Stop Virtualbox VM..."
sudo -H -u $VMUSER /usr/bin/VBoxManage controlvm "$VMNAME" poweroff
;;
*)
echo "Usage: /etc/init.d/ConfigVM {start|stop}"
exit 1
;;
esac
exit 0
编辑完成后,按ESC然后输入 :x (冒号x)回车,保存退出。 如果输错不想保存的话,按ESC然后输入 :q! (冒号q感叹号)回车退出。
- 设置文件的可执行权限
sudo chmod 755 /etc/init.d/ConfigVM
- chmod 设置权限
- 755 对应权限为: -rwx r-x r-x
- 这里的意思是r为4,w为2,x为1
- 最后把自启动脚本文件导入到开机启动项
cd /etc/init.d
sudo update-rc.d ConfigVM defaults 99 01
- update-rc.d 用来更新系统启动项的命令
- defaults 默认运行级别配置
- 99 (范围0~99)系统启动后,最后启动此脚本,数字越大越靠后
- 01 (范围0~99)系统关闭时,最先关闭此脚本
- 检查
ls -al /etc/rc0.d
此时显示的目录里就会有刚才添加的K01ConfigVM这一项
完成!重启验证!
2,随用户登录图形界面自启动
注意!这种方法只有在系统启动并且用户登录后才会自启动虚拟机。
1.图形界面下,在所有应用程序中找到【启动应用程序首选项】并打开。
- 然后选择【添加】
名称(N):随便写
命令(M):VBoxManage startvm xxxx --type headless
注释(E):填不填都行,随便填
命令这一行是关键,这里填写的命令就是在系统启动时一起运行的命令。
这个命令的意思是:启动VirtualBox中名为xxxx的虚拟机
- VBoxManage 是VirtualBox扩展包的辅助工具
- startvm 启动虚拟机
- xxxx 虚拟机的名字,就是用VirtualBox创建虚拟机时起的名字
- –type headless 让虚拟机在后台运行,不显示前端页面
最后保存即可!