Installing SerenityOS on My Old ThinkPad T60

Installing SerenityOS on My Old ThinkPad T60

在我的旧款 ThinkPad T60 上安装 SerenityOS

2026-06-28

I recently had the urge to play around with SerenityOS on real hardware. Since the project is slightly catered towards older machines, I figured my ThinkPad T60 was a perfect candidate for running on bare metal. The following is a loose guide for those interested in doing the same. Take note that I built SerenityOS on a separate device running Fedora, so the instructions below are based on that.

最近,我突发奇想,想在真实的硬件上体验一下 SerenityOS。由于该项目在一定程度上针对老旧机器进行了优化,我觉得我的 ThinkPad T60 是运行裸机的绝佳候选设备。以下是为有兴趣尝试的朋友准备的一份简易指南。请注意,我是通过另一台运行 Fedora 的设备来构建 SerenityOS 的,因此下方的说明均基于此环境。

Initial Setup

初始设置

First we need to grab all the packages required to run and build of SerenityOS image: 首先,我们需要获取运行和构建 SerenityOS 镜像所需的所有软件包:

sudo dnf install texinfo binutils-devel curl cmake mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja-build patch ccache rsync @development-tools @c-development @virtualization

Now we clone the project: 现在克隆项目:

git clone https://github.com/SerenityOS/serenity.git
cd serenity

Next we build the cross-toolchain: 接下来构建交叉工具链:

Meta/serenity.sh image x86_64

Then we can create our bootable image (soon to be flashed to our SSD): 然后我们可以创建可启动镜像(稍后将其烧录到 SSD 中):

cd Build/x86_64 && ninja grub-image

Now plug in your SSD of choice, find it’s destination and flash this created image to it: 现在插入你选择的 SSD,找到其设备路径,并将创建好的镜像烧录进去:

sudo dd if=grub_disk_image of=/dev/sdX bs=64M status=progress && sync

Insert the recently flashed SSD into the laptop and that should be it! 将烧录好的 SSD 插入笔记本电脑,这样就大功告成了!

BIOS Settings

BIOS 设置

Also be sure to set your default Serial ATA (SATA) settings in your BIOS to “Compatibility” and not AHCI. That tripped me up at first… 另外,请务必确保将 BIOS 中的默认串行 ATA (SATA) 设置为“Compatibility”(兼容模式),而不是 AHCI。这一点起初让我栽了个跟头……

Our First Boot

首次启动

Things never run perfectly the first time, do they? I booted up the T60 and was greeted with the following: 事情总不会第一次就运行得完美无缺,对吧?我启动了 T60,结果看到了以下画面:

StorageManagement: Detected 1 storage devices
Device: block3:0 (ata, 1 partitions)
Partition: 1, block100:0 (UUID {00000000-0000-0000-0000-000000000000})
KERNEL PANIC! :^(
StorageManagement: Couldn't find a suitable device to boot

Uh oh… I had to do some internet sleuthing to figure out what the heck was happening here. Eventually I came to the conclusion that I need to tweak the details found in the project’s Meta/grub-mbr.cfg file. 糟糕……我不得不上网搜索一番,弄清楚到底发生了什么。最终我得出结论:我需要修改项目中 Meta/grub-mbr.cfg 文件里的配置细节。

So this: 将原本的:

menuentry 'SerenityOS (normal)' {
    root=hd0,1
    multiboot /boot/Kernel root="lun0:0:0;part0"
}

need to be changed to: 修改为:

menuentry 'SerenityOS (normal)' {
    root=hd0,1
    multiboot /boot/Kernel root="block100:0"
}

Then I needed to rebuild and reflash to the T60: 然后我需要重新构建并再次烧录到 T60:

rm Build/x86_64/grub_disk_image
cd Build/x86_64
ninja grub-image

Booting Again…

再次启动……

It’s alive! We got a successful boot! SerenityOS running on my T60. Isn’t it beautiful? Things are pretty straight forward once you understand the whole process. Hopefully this inspires you to give SerenityOS a test run as well! 它活过来了!我们成功启动了!SerenityOS 正在我的 T60 上运行。是不是很美?一旦你理解了整个流程,事情就变得非常简单了。希望这篇文章能激励你也去试用一下 SerenityOS!