用 VirtualBox 安装 OpenWrt 等 Linux 系统,无法启动的解决办法
最近新买了台联想小新 Pro 14 2023 锐龙版,因为有 32GB 的运行内存,所以想安装虚拟机以充分发挥。一开始使用 Hyper-V 来安装可以正常使用,但是后面想使用 VirtualBox来安装,竟然无法启动!!!
电脑型号:联想 小新 Pro 14 2023 锐龙版
操作系统:Windows 11 专业版 22631.2715
处理器:AMD Ryzen 7 7840HS with Radeon 780M Graphics
VirtualBox版本: 7.0.12 r159484
问题描述:无论安装什么 Linux 系统,均无法启动,出现包括但不限于以下的情况:
-
启动后命令行卡在了"freeing initrd memory",无法进行任何操作
-
启动后黑屏,只在左上角显示一个光标,无法进行任何操作
-
安装 OpenWrt 的话,启动后反复重启进入引导页面
-
[ 0.631376] RIP: 0010:amd_cpuid4+0x195/0x2f0
[ 0.631867] Code: c1 e0 0a 81 e3 ff 03 00 00 81 e2 ff 0f 00 00 48 8b 7d b0 c1 e3 0c 09 d3 89 f2 81 e6 ff 03 00 00 c1 e2 16 83 c6 01 09 d3 31 d2 <f7> f1 41 89 1f 31 d2 f7 f6 83 e8 01 89 07 48 8b 45 d0 65 48 2b 04
[ 0.634190] RSP: 0018:ffffbb78800a3ce8 EFLAGS: 00010246
[ 0.635039] RAX: 0000000000000000 RBX: 00000000ffffffff RCX: 0000000000000000
[ 0.635806] RDX: 0000000000000000 RSI: 0000000000000400 RDI: ffffbb78800a3d60
[ 0.636577] RBP: ffffbb78800a3d48 R08: 0000000000000000 R09: 0000000000000000
[ 0.637366] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000003
[ 0.638138] R13: ffffbb78800a3d08 R14: ffffbb78800a3d58 R15: ffffbb78800a3d5c
[ 0.638883] FS: 0000000000000000(0000) GS:ffffa05759a00000(0000) knlGS:0000000000000000
[ 0.639795] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.640471] CR2: 00007f2946fc1e24 CR3: 0000000108010000 CR4: 00000000000506f0
搜索发现,早在 VirtualBox 6.0 就已经支持与 Hyper-V 共存^3^,应该不是软件的问题。
也是尝试了网上的很多方法:
- 换用 VMWare Workstation Pro虚拟机软件安装 Linux
- 换用 Hyper-V 虚拟机软件安装 Linux
- 卸载 VirtualBox 7.0,并全新安装 VirtualBox 6.0
- 更新主板 BIOS 版本
- 将虚拟机显存从 16MB 改成 128MB,分配两个虚拟 CPU 核心^4^
- 使用
.\vboxmanage.exe modifyvm "虚拟机名称" --nested-hw-virt on
命令开启 VT-x/AMD-v^5^ - 使用
bcdedit /set hypervisorlaunchtype off
命令禁用 Windows 操作系统的 Hypervisor(虚拟机监视程序)^5^ - 虚拟机设置里关闭声音和网络连接
- 虚拟机设置里显卡控制器修改为"VBoxVGA"、"VBoxSVGA"、"VMSVGA"、"空"
- 虚拟机设置里关闭或启用 3D 加速
- 虚拟机设置里主板芯片组修改为"ICH9"或"PIIX3"
- 禁用
Windows 安全中心 - 设备安全性 - 内核隔离 - 内存完整性
^5^ - 启用或关闭 Windows 功能中,取消勾选
Containers
、Hyper-V
、Virtual Machine Platform
、Windows Hypervisor Platform
、Windows Sandbox
、Windows Server Containers
、Windows Subsystem for Linux 2 (WSL2)
^5^ - 运行
netsh winsock reset
命令 - ......
以上办法在我的电脑上均无法解决!
解决办法:
-
进入命令行终端,然后使用
cd
命令切换到 VirtualBox 的安装目录(例如:"C:\Program Files\Oracle\VirtualBox"
) -
运行
.\vboxmanage.exe list vms
命令列出当前可用的虚拟机,类似如下格式:"虚拟机名称" {虚拟机UUID}
-
运行
.\vboxmanage.exe setextradata "虚拟机名称" VBoxInternal/CPUM/HostCPUID/80000006/edx 0x02009140
命令^6^ ^7^("虚拟机名称"需要自行替换成你的虚拟机的名称)
- 重新启动虚拟机,看看是否能够正常启动
这样,我便能在 Windows 系统下同时使用 Hyper-V、Windows 沙盒、VMVare、VirtualBox、WSL2