当前加载的 VirtualBox 客户机添加项与安装版本不匹配(7.0.8 R156879)

当前加载的 VirtualBox 客户机添加项与安装版本不匹配(7.0.8 R156879)

最近我的 Ubuntu22.04 VM 出现了问题,所以我决定删除它并安装一个新的。

在此之前,我卸载了 Virtualbox 并安装了较新版本。

卸载后,我手动删除了文件夹中剩余的所有文件C:/Programs/Oracle/Virtualbox

安装 Virtualbox 后我重新启动了我的 PC。

我已经从 iso 安装了 Ubuntu 22.04,它在之前的 VM 上运行良好。

现在,我执行以下操作来安装客户机添加程序(如图所示。我已经犯过几百次了,这是正确的):

sudo apt update
Sudo apt upgrade
sudo apt install -y build-essential linux-headers-$(uname -r)

sudo reboot

从 VirtualBox 设备菜单 -> 单击插入客户机添加 CD

sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
sudo ./VBoxLinuxAdditions.run

在这里我感到震惊,因为在终端中出现了以下警告信息

currently loaded virtualbox guest additions does not match installation version (7.0.8 R156879)

/var/log/vboxadd-setup.log

Building the main Guest Additions 7.0.8 module for kernel 6.5.0-14-generic.
Error building the module.  Build output follows.
make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/6.5.0-14-gen
eric/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j4 modules
make[1]: warning: -j4 forced in submake: resetting jobserver mode.
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:           
make -f ./scripts/Makefile.build obj=/tmp/vbox.0 need-builtin=1 need-modorder=1 
# cmd_mod /tmp/vbox.0/vboxguest.mod
  printf '%s
'   VBoxGuest-linux.o VBoxGuest-common.o common/string/strformatrt.o combined-agnostic.o combined-os-specific.o | awk '!x[$0]++ { print("/tmp/vbox.0/"$0) }' > /tmp/vbox.0/vboxguest.mod
# CC [M]  /tmp/vbox.0/VBoxGuest-linux.o
  gcc-12 -Wp,-MMD,/tmp/vbox.0/.VBoxGuest-linux.o.d -nostdinc -I./arch/x86/inclu
de -I./arch/x86/include/generated  -I./include -I./arch/x86/include/uapi -I./ar
ch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -incl
ude ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./u
buntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -std=gnu11
 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -Wall 
-Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=retu
rn-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -mno-80387 -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-main -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -falign-functions=16 -Wvla -Wno-pointer-sign -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -g -gdwarf-5 -include /tmp/vbox.0/include/VBox/VBoxGuestMangling.h -I./include -I/tmp/vbox.0/ -I/tmp
p/vbox.0/include -I/tmp/vbox.0/r0drv/linux -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DVBOX -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DVBOX_WITH_64_BITS_GUESTS -DRT_ARCH_AMD64  -fsanitize=bounds-strict -fsanitize=shift -fsanitize=bool -fsanitize=enum  -DMODULE  -DKBUILD_BASENAME='"VBoxGuest_common"' -DKBUILD_MODNAME='"vboxguest"' -D__KBUILD_MODNAME=kmod_vboxguest -c -o /tmp/vbox.0/VBoxGuest-common.o /tmp/vbox.0/VBoxGuest-common.c   ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --sls --stackval --static-call --uaccess --prefix=16   --module /tmp/vbox.0/VBoxGuest-common.o
/bin/sh: 1: gcc-12: not found
make[2]: *** [scripts/Makefile.build:251: /tmp/vbox.0/VBoxGuest-common.o] Error 127
make[1]: *** [Makefile:2037: /tmp/vbox.0] Error 2
make: *** [/tmp/vbox.0/Makefile-footer.gmk:133: vboxguest] Error 2

我做错了什么以及如何解决?

答案1

apt install gcc-12

这应该可以解决问题,默认情况下 22.04 有 gcc-11 而 Vbox 工具需要 gcc-12 来编译。

答案2

更新客人增加扩展包

启动 VirtualBox Manager 应用程序。

方案 01:安装客人增加扩展包

更新扩展包:从 VirtualBox Manager 应用程序的菜单栏中选择:文件 > 检查更新...

更新宾客添加内容:启动虚拟机,然后从菜单栏中选择,设备 > 升级访客添加功能……并且您的客户附加组件将被升级,然后您可以挂载 ISO 映像并继续安装。

替代方案02:如果从 GUI 更新不起作用,您可以尝试使用 CLI。在命令行上使用:sudo apt-get install virtualbox-guest-additions-isosudo apt-get install virtualbox-ext-pack。)

要安装访客添加功能,请点击“设备” > “插入 Guest Additions CD 映像...”。然后启动文件浏览器,例如 Nautilus(在 Ubuntu 中)、Thunar(在 Xubuntu 中)。在这里,在侧窗格中,您将看到已安装的新 CD 映像。单击进入文件夹。现在右键单击并选择在此目录中打开终端。然后您应该VBoxLinuxAdditions.run使用 sudo 权限运行脚本,如下所示:sudo ./VBoxLinuxAdditions.run。这将安装客户机附加功能。

接下来您必须注销并重新登录。然后您就可以启动 VirtualBox 机器。

更新01: 方案 03: 来源:4.2.1.2. 更新 Windows 客户机添加项

可以通过再次运行安装程序来更新 Windows Guest Additions。这会用更新的版本替换以前的 Additions 驱动程序。

相关内容