我有一台蓝天 PD70SND-G,刚从中国运来。安装了 Debian 12 Bookworm。我正在尝试安装和使用 VirtualBox。我需要访问 VirtualBox 计算机上的数据。
在添加到 /etc/apt/sources.list 后,我尝试从官方 Debian 存储库进行安装,但出现依赖错误(见下文)。因此,我访问 VirtualBox.org 下载了 Debian 12 的软件包文件并安装了它。VirtualBox Manager 似乎运行良好,但当我尝试启动计算机时,出现有关未安装内核驱动程序的错误(见下文)。以及“未签名”内核模块的错误。MOK 签名文件是在让 NVIDIA GPU 在激活安全启动的情况下工作时创建的。
该机器是Ubuntu 22.04,在Windows 10主机上创建。
请帮忙。
关于系统:
Info Center -> About this System:
Operating System: Debian GNU/Linux 12
KDE Plasma Version: 5.27.5 KDE
Frameworks Version: 5.103.0
Qt Version: 5.15.8
Kernel Version: 6.1.0-17-amd64 (64-bit)
Graphics Platform: X11
Processors: 32 × Intel® Core™ i9-14900HX
Memory: 62.5 GiB of RAM
Graphics Processor: Mesa Intel® Graphics
Manufacturer: Notebook
Product Name: > PD5x_7xSNC_SND_SNE
System Version: Not Applicable
$ neofetch
_,met$$$$$gg. user@Computer-Name
,g$$$$$$$$$$$$$$$P. -------------------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64
,$$P' `$$$. Host: PD5x_7xSNC_SND_SNE
',$$P ,ggs. `$$b: Kernel: 6.1.0-18-amd64
`d$$' ,$P"' . $$$ Uptime: 7 mins
$$P d$' , $$P Packages: 2984 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.15
$$; Y$b._ _,d$P' Resolution: 1920x1080
Y$$. `.`"Y$$$$P"' DE: Plasma 5.27.5
`$$b "-.__ WM: KWin
`Y$$ Theme: [Plasma], Breeze [GTK2/3]
`Y$$. Icons: [Plasma], breeze [GTK2/3]
`$$b. Terminal: konsole
`Y$$b. CPU: Intel i9-14900HX (32) @ 2.200GHz
`"Y$b._ GPU: NVIDIA GeForce RTX 4060 Max-Q / Mobile
`""" GPU: Intel Raptor Lake-S UHD Graphics
Memory: 2373MiB / 64000MiB
尝试从官方 Debian 12 存储库安装 VirtualBox:
$ sudo apt install fasttrack-archive-keyring
Append to /etc/apt/sources.list:
deb https://fasttrack.debian.net/debian-fasttrack/ bullseye-fasttrack main contrib
deb https://fasttrack.debian.net/debian-fasttrack/ bullseye-backports-staging main contrib
$ sudo apt update
$ aptitude search virtualbox
p boinc-virtualbox - metapackage for virtualbox-savvy projects
p virtualbox - x86 virtualization solution - base binaries
p virtualbox-dbgsym - debug symbols for virtualbox
p virtualbox-dkms - x86 virtualization solution - kernel module sources for dkms
p virtualbox-ext-pack - extra capabilities for VirtualBox, downloader.
p virtualbox-guest-additions-iso - guest additions iso image for VirtualBox
v virtualbox-guest-modules -
p virtualbox-guest-utils - x86 virtualization solution - non-X11 guest utilities
p virtualbox-guest-utils-dbgsym - debug symbols for virtualbox-guest-utils
p virtualbox-guest-x11 - x86 virtualization solution - X11 guest utilities
p virtualbox-guest-x11-dbgsym - debug symbols for virtualbox-guest-x11
v virtualbox-modules -
p virtualbox-qt - x86 virtualization solution - Qt based user interface
p virtualbox-qt-dbgsym - debug symbols for virtualbox-qt
p virtualbox-source - x86 virtualization solution - kernel module source
$ sudo apt install virtualbox
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
virtualbox : Depends: python3 (< 3.10) but 3.11.2-1+b1 is to be installed
Depends: python3.9 but it is not installable
Depends: libgsoap-2.8.104 but it is not installable
Depends: libssl1.1 (>= 1.1.1) but it is not installable
Depends: libvpx6 (>= 1.6.0) but it is not installable
Recommends: virtualbox-qt (= 7.0.12-dfsg-1~fto11+1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
尝试从下载的存储库文件安装 VirtualBox:
$ sudo apt install .../virtualbox-7.0_7.0.14-161095~Debian~bookworm_amd64.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'virtualbox-7.0' instead of '.../virtualbox-7.0_7.0.14-161095~Debian~bookworm_amd64.deb'
Recommended packages:
linux-image
The following NEW packages will be installed:
virtualbox-7.0
0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B/92.4 MB of archives.
After this operation, 218 MB of additional disk space will be used.
Get:1 .../virtualbox-7.0_7.0.14-161095~Debian~bookworm_amd64.deb virtualbox-7.0 amd64 7.0.14-161095~Debian~bookworm [92.4 MB]
Preconfiguring packages ...
Selecting previously unselected package virtualbox-7.0.
(Reading database ... 343483 files and directories currently installed.)
Preparing to unpack .../virtualbox-7.0_7.0.14-161095~Debian~bookworm_amd64.deb ...
Unpacking virtualbox-7.0 (7.0.14-161095~Debian~bookworm) ...
Setting up virtualbox-7.0 (7.0.14-161095~Debian~bookworm) ...
addgroup: The group `vboxusers' already exists as a system group. Exiting.
vboxdrv.sh: failed: Unable to sign vboxdrv.ko.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root. If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1) ...
Processing triggers for shared-mime-info (2.2-1) ...
Processing triggers for mailcap (3.70+nmu1) ...
N: Download is performed unsandboxed as root as file '.../virtualbox-7.0_7.0.14-161095~Debian~bookworm_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
通知中心记录的错误消息:
VM Name: Ubuntu 22.04
The virtual machine 'Ubuntu 22.04' has terminated unexpectedly during startup with exit code 1 (0x1).
Result Code:
NS_ERROR_FAILURE (0X80004005)
Component:
MachineWrap
Interface:
IMachine {300763af-5d6b-46e6-aa96-273eac15538a}
弹出窗口中的错误消息:
VirtualBox - Error in suplibOsInit
Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing
‘/sbin/vboxconfig’
as root.
If you system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.
where: sublibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.
运行给出的命令的结果:
$ sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Signing VirtualBox kernel modules.
vboxdrv.sh: failed: Unable to sign vboxdrv.ko.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root. If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
脚本:sign-virtualbox
#!/bin/bash
for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
echo "Signing $modfile"
/usr/lib/linux-kbuild-6.1/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der "$modfile"
# /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der "$modfile"
done
如您所见,没有vboxpci
模块:
$ sudo KBUILD_SIGN_PIN=[passcode] sign-virtualbox
Signing /lib/modules/6.1.0-18-amd64/misc/vboxdrv.ko
Signing /lib/modules/6.1.0-18-amd64/misc/vboxnetadp.ko
Signing /lib/modules/6.1.0-18-amd64/misc/vboxnetflt.ko
附加信息:
$ sudo modinfo vboxdrv
filename: /lib/modules/6.1.0-18-amd64/misc/vboxdrv.ko
version: 7.0.14 r161095 (0x00330004)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle and/or its affiliates
srcversion: 152A8CB5D422DE621E72BD6
depends:
retpoline: Y
name: vboxdrv
vermagic: 6.1.0-18-amd64 SMP preempt mod_unload modversions
parm: force_async_tsc:force the asynchronous TSC mode (int)
$ sudo modinfo vboxnetadp
filename: /lib/modules/6.1.0-18-amd64/misc/vboxnetadp.ko
version: 7.0.14 r161095 ((0xA2CDe001U))
license: GPL
description: Oracle VM VirtualBox Network Adapter Driver
author: Oracle and/or its affiliates
srcversion: DE548A71E9FEE840BC241DC
depends: vboxdrv
retpoline: Y
name: vboxnetadp
vermagic: 6.1.0-18-amd64 SMP preempt mod_unload modversions
$ sudo modinfo vboxnetflt
filename: /lib/modules/6.1.0-18-amd64/misc/vboxnetflt.ko
version: 7.0.14 r161095 ((0xA2CDe001U))
license: GPL
description: Oracle VM VirtualBox Network Filter Driver
author: Oracle and/or its affiliates
srcversion: 5B4916269D291622038DB48
depends: vboxdrv
retpoline: Y
name: vboxnetflt
vermagic: 6.1.0-18-amd64 SMP preempt mod_unload modversions
/sbin/rcvboxdrv
在我的研究中,我发现在安装过程中创建了一个用于启动内核模块的脚本。这实际上是一个到 的符号链接/usr/lib/virtualbox/vboxdrv.sh
。 https://www.virtualbox.org/manual/ch02.html#install-linux-prereq我输入命令:
输出中有一条错误消息,指示签署
vboxdrv
模块失败:(非常有帮助,甲骨文!)
然后,我分析了脚本 (vboxdrv.sh),发现抛出错误消息的行 (805) 通过将其管道传输为 null 来掩盖命令的实际错误输出。我删除了这个和产生的消息(抱歉,我没有实际输出的副本,我很高兴找到解决方案。)告诉我它缺少密码!
修复:
2>/dev/null
从 的第 805 行删除vboxdrv.sh
,然后重新运行脚本:感谢您的时间。