Ubuntu 24 LTS 安装 VirtualBox和知识点整理
- 2024-11-21 22:04:00
- 丁国栋
- 原创 179
之前用qemu结合kvm来创建和使用虚拟机没有遇到什么特别难以解决的问题,最近却遇到了一个棘手的问题,虚拟机用一小段时间就会自动暂停,且无法恢复,只能强制关闭。这个问题其他网友也有遇到,其中有一个网友的CPU跟我的CPU型号几乎相同,我的CPU型号是 i7-12700KF,网友是 i7-12700。报错如下:
Error unpausing domain: internal error: unable to execute QEMU command 'cont': Resetting the Virtual Machine is required Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 72, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 108, in tmpcb callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn ret = fn(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/share/virt-manager/virtManager/object/domain.py", line 1437, in resume self._backend.resume() File "/usr/lib/python3/dist-packages/libvirt.py", line 2425, in resume raise libvirtError('virDomainResume() failed') libvirt.libvirtError: internal error: unable to execute QEMU command 'cont': Resetting the Virtual Machine is required
为了解决这个问题,我最终决定暂时将 hypervisior 从 KVM 换成 VirtualBox。庆幸的是 VirtualBox可以与kvm共存。
VirtualBox支持多种平台,要在 Ubuntu Linux里安装vbox比较简单,可以参考 https://www.virtualbox.org/wiki/Linux_Downloads 页面的 Debian-based Linux distributions 内容,实际上Ubuntu 24.04 作了一些调整,因此需要了解和注意以下内容。
创建 /etc/apt/sources.list.d/virtualbox.sources
文件,添加以下内容:
#deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian noble contrib Types: deb URIs: https://download.virtualbox.org/virtualbox/debian Suites: noble Components: contrib Signed-By: /usr/share/keyrings/oracle-virtualbox-2016.gpg
注:不同的Ubuntu 版本不同,这个配置文件的格式也不一样。如果Ubuntu Linux版本较早,可以使用第一行即可,其他的删除。
注:如果想安装qemu/kvm,可以执行 sudo apt install qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils
提示:默认 vbox 安装的虚拟机是采用 NAT 网络,这个网络只能允许虚拟机访问Internet和局域网,但反过来不行,为了实现主机访问虚拟机,建议使用 桥接(bridged) 和 仅主机(host-only) 模式;可以添加多个网卡,实现不同的网络互通。
VirtualBox 的网络
VirtualBox 虚拟机的网络模式目前有:NAT、桥接、仅主机和NAT Network等,这里面有一些问题需要我们知道。
- 一个 vbox 虚拟机最多配置4个网卡(网络适配器),每个网卡可以配置不同的模式。
- NAT 网络默认网段是 10.0.2.0/24 ,这个网段的地址目前没有明显的地方可以修改,如果和主机网络冲突了,主机无法通过这个地址访问到虚拟机,而虚拟机可以访问 Internet。
- 测试发现 NAT Network 的 IP也是无法被主机访问到的,而且即使开启了DHCP它默认也没有可用的DHCP无法获得IP地址,因此要想通过主机访问虚拟机,最好使用桥接和仅主机方式。
- 以 RHEL 8.6测试,在安装过程中如果同时启用多个网卡,那么在安装完成后,有一些网卡需要再确认一下ONBOOT是否为yes。
- 仅主机模式下,支持DHCP可以自动获取IP地址等,同时主机上有一个名称为 vboxnet0 的虚拟网卡,其类型为 ethernet,区分于网桥 bridge(名称通常为 virbr0),可以通过命令
nmcli d
查看设备类型。 - 所以基于以上几点,我们在给vbox虚拟机配置网卡时,可以配置桥接模式,或者1个NAT加1个仅主机模式,来保障虚拟机访问Internet和主机和虚拟机的互访。
--