SerenityOS 如何安装到 VirtualBox:转换 GRUB 磁盘镜像并配置 PAE/NX 等设置
2026/9/10 5:29:41 网站建设 项目流程

SerenityOS 如何安装到 VirtualBox:转换 GRUB 磁盘镜像并配置 PAE/NX 等设置

【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity

本文解决一个具体问题:把 SerenityOS 装进 VirtualBox 虚拟机并成功引导。SerenityOS 目前没有提供预构建的安装镜像,必须先从源码构建出带 GRUB2 的磁盘镜像,再把它转换成 VirtualBox 可用的 VDI 格式,最后按文档要求调整虚拟机设置(包括开启 PAE/NX)。以下操作依据 VirtualBox 安装指南、裸机安装指南 和 构建说明 编写,虚拟机创建步骤基于 VirtualBox v6.1.12 编写,其他版本界面可能略有出入。

需要注意:文档在开头明确提示,当前 Serenity 在 VirtualBox 中运行仍存在已知问题,VirtualBox 指南 的 NOTICE 一节会随官方 issue 更新问题清单,文中不工作的部分会在下文逐处标出。

前置条件:构建 GRUB 磁盘镜像

VirtualBox 使用的磁盘镜像不能直接用为 QEMU 构建的那个镜像,用它启动会立即停止并显示FATAL: No bootable medium found! System halted.。必须先按 BareMetalInstallation.md 的说明构建 GRUB 镜像。

构建镜像前,先在构建机上装好 BuildInstructions.md 列出的依赖(Debian/Ubuntu 示例):

sudo apt install build-essential cmake curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs ninja-build qemu-system-gui qemu-system-x86 qemu-utils ccache rsync unzip texinfo libssl-dev zlib1g-dev

编译工具链要求:支持 C++26 特性的 GCC 14 或 Clang 17+,CMake 3.25.0 或更新版本。

然后按构建说明完成构建,进行到并包含运行ninja install这一步为止,对应命令为:

Meta/serenity.sh image <arch>

其中<arch>替换为要构建的目标架构,脚本支持 x86_64、aarch64 和 riscv64,缺省时使用宿主机架构。

系统构建完成后,运行以下命令生成带 GRUB2、可在真实 PC 上启动的磁盘镜像文件:

  • legacy BIOS 系统:ninja grub-image,生成grub_disk_image
  • UEFI 系统:ninja grub-uefi-image,生成grub_uefi_disk_image

该命令要求已安装partedgrub2(Arch Linux 上是grub)。

跳过裸机安装指南的最后一步(用dd把镜像写入真实磁盘的命令)——那一步只适用于往实体硬盘写镜像,VirtualBox 场景不需要。

把磁盘镜像转换成 VirtualBox VDI

得到grub_disk_image(或grub_uefi_disk_image)后,有两种转换方式,任选其一:

有 QEMU 的情况下:

qemu-img convert -O vdi /path/to/grub_disk_image /path/to/output/serenityos.vdi

只有 VirtualBox 的情况下:

VBoxManage convertfromraw --format VDI /path/to/grub_disk_image /path/to/output/serenityos.vdi

两条命令中的/path/to/grub_disk_image替换为上一步实际生成的镜像文件路径,/path/to/output/serenityos.vdi是转换输出的 VDI 路径。

转换完成后,给磁盘镜像设置一个固定标识,否则之后更新磁盘镜像时标识会不再对应:

VBoxManage internalcommands sethduuid serenityos.vdi 19850209-0000-0000-0000-000000000000

Windows 上的注意点:如果 QEMU 或 VirtualBox 不在 PATH 环境变量里,命令必须在该工具的安装目录下执行,并在命令前加./

创建虚拟机

在 VirtualBox 中新建虚拟机,按以下步骤操作:

  1. 打开Create Virtual Machine对话框,切换到Expert Mode
  2. 虚拟机名称和存放位置可任意。
  3. TypeOtherVersionOther/Unknown (64-bit)
  4. Serenity 最少需要 512 MiB 内存,Memory size设置为 512 MiB 或以上,文档推荐 1 GiB。
  5. Hard disk选择Use an existing virtual hard disk file,点击下拉框旁的文件夹图标打开Hard Disk Selector
  6. Add,浏览到上一步转换好的 VDI 文件所在位置,添加后点Choose
  7. Create

创建界面参考图(文档示例):

必须调整的启动设置

默认配置的虚拟机无法引导 Serenity。打开虚拟机的Settings,做以下调整:

必做设置:

  1. SystemProcessor选项卡:勾选Enable PAE/NX
  2. Audio:将Audio Controller设为SoundBlaster 16

必须核对的设置:

  • Storage:点击Controller,控制器类型必须是AHCI (SATA)NVMe。文档明确说明其他类型"guaranteed not to work",因为 Serenity 当前不支持它们。
  • NetworkAdvanced:确认Adapter Type不是Intel PRO/1000 MT Desktop (82540EM)。虽然这是 Serenity 当前唯一支持的网卡类型,但它目前不工作于 VirtualBox,所以这里要换用其他型号。

当前状态下(以文档为准):VirtualBox 中的音频和网络均不工作,以上音频设置只是文档要求的必改项,不代表能出声。

启动验证与常见故障

按上述配置启动虚拟机后,应看到 GRUB 菜单;选择一项后系统继续引导。遇到以下现象时按对应项排查:

  • GRUB 菜单选完后只剩闪烁的光标:这是 VirtualBox 指南 单列的故障,检查两点:
    • Settings>System>Processor中是否已启用 PAE/NX;
    • 若使用的是 64-bit 磁盘镜像,确认Settings>GeneralVersionOther/Unknown (64-bit)而不是Other/Unknown
  • Your computer does not support PAE. Halting!:Troubleshooting.md 指出 VirtualBox 环境下即 PAE/NX 未启用,回到上一步勾选。
  • Your computer does not support long mode (64-bit mode). Halting!:说明 VirtualBox 未使用 x64 虚拟化模式(对应条目见 Troubleshooting.md),同时检查虚拟机 Version 是否选对 64-bit。
  • 使用 BIOS 版镜像(grub_disk_image)时引导位置不对:可能需要在 GRUB 引导菜单中调整root=启动参数使其指向正确分区,详见 boot_device_addressing 手册。
  • NVMe 磁盘初始化失败:裸机指南提到可尝试nvme_poll启动参数。

可选配置:串口调试与显存

以下两项不是启动必需,来自 VirtualBox 指南 的附加配置:

  • 串口调试Serial Ports中启用端口 1,Port Mode推荐设为Raw FilePath/Address指向输出文件位置(必须包含文件名)。
  • 显存:默认 16 MB 显存足够使用默认分辨率,但不足以覆盖所有支持分辨率;若要使用 2560x1080,至少需要提供 22 MB 显存。

完成以上步骤后,虚拟机即可在 VirtualBox 中引导 SerenityOS。需要留意的边界:音频和网络在 VirtualBox 中暂不工作,整体仍受官方 issue 跟踪的已知问题清单约束,后续行为以 VirtualBox 指南 的更新为准。

【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询