最近我的 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-iso
和sudo 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 驱动程序。