今天遇到一个奇怪的问题,滚动更新以后,

pacman -Syyu

虚拟机无法正常启动了。虚拟机启动以后一直显示Starting virtual machine ...并且卡在20%不动了。

centos虚拟机卡在进度条 虚拟机启动卡在进度条_centos虚拟机卡在进度条

原因分析

我怀疑是更新系统后,某个配置被重置了导致virtualbox没有权限了。经过一系列的测试,我猜测可能是因为内核升级导致的问题。
我查了一下我的内核是:
Kernel: 5.18.1-arch1-1

解决办法

我查了一下当前的virtualbox6.1仅支持到Kernel: 5.17

方法一:等待virtualbox更新

等待virtualbox更新,官方支持Kernel: 5.18就行了。可惜我没有时间等啊,急等使用。

方法二:降低内核版本

安装linux-lts内核

这不是本文的重点,我就执行了以下命令就搞定了。

#安装lts内核
pacman -S linux-lts
pacman -S linux-lts-headers
#生成启动菜单
grub-mkconfig -o /boot/grub/grub.cfg

然后重启电脑,选择linux-lts启动。
详细教程可以参考
https://www.whxsdn.com/news/342.html

重启安装virtualbox

pacman -R virtualbox
pacman -R virtualbox-host-modules-arch
pacman -R virtualbox-host-dkms
#重启安装这次VIRTUALBOX-HOST-MODULES选择virtualbox-host-dkms
pacman -S virtualbox

如下:

# pacman -S virtualbox                               [11:37:52]
正在解析依赖关系...
:: 有 2 个软件包可提供 VIRTUALBOX-HOST-MODULES :
:: 软件仓库 community
   1) virtualbox-host-dkms  2) virtualbox-host-modules-arch

输入某个数字 ( 默认=1 ): 1
正在查找软件包冲突...

软件包 (2) virtualbox-host-dkms-6.1.34-4  virtualbox-6.1.34-4

全部安装大小:  172.65 MiB

:: 进行安装吗? [Y/n]

安装完成后,重启电脑问题解决 了。

失败的尝试过程

  1. 卸载重新安装virtualbox无法解决
pacman -R virtualbox
pacman -S virtualbox

问题依旧。

  1. 新建一个虚拟机,问题依旧。
    我原本怀疑是虚拟机系统问题,在新建全新虚拟机也遇到这个问题了。
  2. 使用root权限使用虚拟机软件。
    测试结果,root无法打开virtualbox,打开了是黑屏的。
  3. 重新安装pacman -S virtualbox-host-modules-arch 实测不行的。
  4. 卸载并使用virtualbox-host-dkms重新安装
#卸载virtualbox
pacman -R virtualbox
#卸载virtualbox-host-modules-arch
pacman -R virtualbox-host-modules-arch
#重新安装
pacman -S virtualbox

执行结果如下:

pacman -S virtualbox                                                                             [10:18:30]
正在解析依赖关系...
:: 有 2 个软件包可提供 VIRTUALBOX-HOST-MODULES :
:: 软件仓库 community
   1) virtualbox-host-dkms  2) virtualbox-host-modules-arch

输入某个数字 ( 默认=1 ): 1
正在查找软件包冲突...

软件包 (3) dkms-3.0.3-1  virtualbox-host-dkms-6.1.34-4  virtualbox-6.1.34-4

下载大小:        0.73 MiB
全部安装大小:  172.75 MiB

:: 进行安装吗? [Y/n] y
:: 正在获取软件包......

启动报这个错了。

centos虚拟机卡在进度条 虚拟机启动卡在进度条_重启_02


5. 继续卸载重新安装virtualbox-host-modules-arch

pacman -R virtualbox
pacman -R virtualbox-host-dkms

安装

我的这个页面
https://archlinux.org/packages/core/x86_64/linux/

找到

centos虚拟机卡在进度条 虚拟机启动卡在进度条_virtualbox_03


所以就安装一下

pacman -S linux-headers 5.18.1.arch1-1

发现这个命令不存在,我搜索了一下。

pacman -Ss linux-headers

执行结果如下:

pacman -Ss linux-headers                                                                         [10:39:22]
core/linux-headers 5.18.1.arch1-1
    Headers and scripts for building modules for the Linux kernel
archlinuxcn/linux-mbp-headers 5.5.13-1
    Headers and scripts for building modules for the Linux for MBP kernel

后来才发现直接这样安装就行了。

pacman -S linux-headers

执行结果如下:

# pacman -S linux-headers                                                                          [10:42:12]
正在解析依赖关系...
正在查找软件包冲突...

软件包 (2) pahole-1.23-1  linux-headers-5.18.1.arch1-1

下载大小:       26.28 MiB
全部安装大小:  142.57 MiB

:: 进行安装吗? [Y/n]

失败的解决办法

pacman -S linux-headers
pacman -R virtualbox
pacman -R virtualbox-host-modules-arch
#重启安装这次VIRTUALBOX-HOST-MODULES选择virtualbox-host-dkms
pacman -S virtualbox

执行结果如下:

# pacman -S virtualbox                                                                             [10:45:25]
正在解析依赖关系...
:: 有 2 个软件包可提供 VIRTUALBOX-HOST-MODULES :
:: 软件仓库 community
   1) virtualbox-host-dkms  2) virtualbox-host-modules-arch

输入某个数字 ( 默认=1 ): 1
正在查找软件包冲突...

软件包 (2) virtualbox-host-dkms-6.1.34-4  virtualbox-6.1.34-4

全部安装大小:  172.65 MiB

:: 进行安装吗? [Y/n] y

以下是探索过程不用看,仅供参考!!!