Surface Book 2 安装 Ubuntu/Linux 与恢复指南

这是一份恢复优先的指南,用于在 Microsoft Surface Book 2 上安装 Ubuntu、保留 Windows 双启动,并按需添加当前的 linux-surface 内核。本文于 2026-09-01 复核。Surface 固件、Ubuntu 安装程序、软件包名称和项目支持矩阵都会变化;实际操作当天必须重新检查文末的一手来源。

旧 jakeday 清单作为来源记录保存在文末,但已不再是维护中的流程。不要使用其中已废弃的仓库、任意替换镜像源、盲目运行 Boot-Repair、先美化启动主题、固定 DPI 值或含糊的“SS”指令。

更改机器前先确定目标

选择能满足需求且侵入性最低的路线:

需求首选起点停止条件
Windows 仍为主系统,只需 Linux 命令行工具工作负载允许时使用受支持的虚拟机或 WSL必须做硬件直通或内核测试
测试 Ubuntu 硬件兼容性使用校验过的 Ubuntu Live USB,不安装Live 会话无法可靠使用键盘、存储、显示或网络
一般 Ubuntu 桌面先使用 Ubuntu 原生内核必需的 Surface 功能缺失,且当前 linux-surface 矩阵明确其内核可提供该功能
双启动在 Windows 中缩小 Windows 分区,只安装到确认过的未分配空间BitLocker 恢复、备份或分区身份不确定
替换 Windows仅在恢复方案通过测试且明确接受删除 Windows 后进行仍需 Windows 固件/恢复能力或必需应用

不存在对所有机型“全部可用”的承诺。Surface Book 2 的尺寸、处理器、存储和可选 NVIDIA GPU 均有差异;应以具体设备和当前支持矩阵为证据。

关卡 1:在 Windows 中确认设备与加密状态

进入 UEFI 或调整卷大小前,记录型号、CPU 架构、固件版本、磁盘布局、Windows 版本,以及各卷是否由 BitLocker 或设备加密保护。以下 PowerShell 与命令提示符检查只读,且不会打印恢复密钥:

Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, SystemType
Get-CimInstance Win32_Processor | Select-Object Name
Get-CimInstance Win32_BIOS | Select-Object SMBIOSBIOSVersion
Get-Disk | Select-Object Number, FriendlyName, PartitionStyle, Size
Get-Partition | Select-Object DiskNumber, PartitionNumber, DriveLetter, Type, Size
manage-bde -status

输出仍可能包含可识别的磁盘和固件信息,应私下保存。确认键盘底座是否实际含有独立 NVIDIA GPU,不要仅从产品系列名称推断。

按 Microsoft 文档所列的个人账户、组织、打印件或 USB 路线找到匹配的 BitLocker 恢复密钥,并在另一台设备上确认可检索到正确的密钥 ID。切勿把 48 位密钥粘贴到文章、工单、Shell 历史、截图或源码仓库。Microsoft 明确表示无法重建丢失的密钥;若无法取回密钥,应在固件、Secure Boot、启动顺序或分区变更前停止。

关卡 2:创建并测试恢复资产

安装前应全部具备:

  • Windows 与任何现有 Linux 数据的当前文件备份,存放在另一台设备上。
  • 不可替代数据的第二份独立副本。
  • 按 Microsoft 指南制作的 Surface USB 恢复盘或精确机型的 Surface 恢复映像。
  • 使用官方映像制作且已校验的 Ubuntu 安装 USB。
  • 可离线使用的 BitLocker 密钥获取路线和账户恢复方式。
  • 稳定电源、需要时使用可靠的 USB 转接器,最好再准备 USB 键盘和鼠标。

通过打开抽样文件来验证备份;若使用备份系统,应恢复到另一位置进行测试。只看到任务显示“成功”并不等于完成了恢复测试。分别启动每个恢复 USB,确认身份后退出,不要开始重置、重新分区或安装。清楚标记这些盘;Ubuntu 安装期间断开备份磁盘,避免误选。

先在 Windows 下更新固件

Microsoft 支持的 Surface 驱动和固件路线是 Windows Update,官方 Surface 软件包仅作为高级备用方式。连接底座与配件,保持稳定供电,完成全部更新与重启,再记录新的固件版本。固件更新时不要中断,也不要分离底座。

除非有明确文档证明替代方案支持该精确固件,否则应保留 Windows 作为后续 Surface 固件维护入口。不要安装论坛里的固件、在 Surface 型号之间复制固件,也不要同时进行 Windows 固件更新和 Linux 内核或引导程序变更。

区分两组 Surface 按键操作

Microsoft 记录了两种不同操作:

  • 打开 Surface UEFI:关机,按住音量增大,按下并松开电源,继续按住音量增大,直至出现 UEFI。
  • 单次启动已准备的 USB:关机,插入 USB,按住音量减小,按下并松开电源,出现启动提示后松开音量减小。

变更前记录当前启动顺序与 Secure Boot 状态。优先使用单次 USB 启动,而不是永久把 USB 放在第一位。每次只改一个设置。不要因为旧教程而删除固件密钥、清除 TPM、设置无法恢复的 UEFI 密码或关闭 Secure Boot。受管理设备必须先取得组织批准。

准备并测试 Ubuntu 介质

从 Ubuntu 下载受支持的映像,按 Canonical 当前校验指南验证签名的校验和,再按当前 Ubuntu 安装指南写入 USB。写入会清空所选 USB,因此先按容量确认设备,并拔除无关存储。

安装前先启动“Try Ubuntu”。Live 会话应测试键盘、触控板、计划使用的两种显示形态、Wi-Fi、需要时的蓝牙、音频、USB、SD 卡、挂起/唤醒、电池报告、触摸/笔和外接显示器。先测试底座连接状态。Live 映像通常使用 Ubuntu 原生内核,因此故障仍有可能由 linux-surface 处理——但只有当前矩阵和设备页面支持这一结论时才成立。若存储或内置键盘不可靠,不要安装。

双启动:安全缩小 Windows

双启动应使用 Windows 磁盘管理缩小 Windows NTFS 卷,并让结果保持为未分配。Microsoft 文档说明了受支持的缩小操作。不要删除、格式化、移动或复用 EFI 系统、Microsoft 保留、Windows 恢复或 OEM 分区。不要套用别台机器猜测的分区号。

缩小前:

  1. 完成 Windows 更新并正常重启。
  2. 再次确认备份和 BitLocker 恢复密钥。
  3. 运行适合该机器的 Windows 文件系统检查并解决错误。
  4. 记录磁盘容量与分区类型的截图或示意图,但不要暴露序列号。
  5. 按实测工作负载决定容量,并为 Windows 保留空闲空间。

如果组织政策要求为某项有文档依据的变更暂停 BitLocker,请使用 Microsoft 流程并立即恢复保护;不要随意解密磁盘或关闭保护。不要从 Linux 写入处于休眠状态的 Windows 文件系统。在 Ubuntu 安装程序中按型号和容量匹配内部磁盘,并只分配主动腾出的空间。若安装器布局与记录不同,取消操作。

先安装原生 Ubuntu

除非其他版本有明确负责人和支持周期,否则优先选择仍受支持的 Ubuntu LTS 及默认桌面。官方 Ubuntu 安装器能正常启动时保持 Secure Boot 开启。使用安装器支持的加密选项前,先阅读 linux-surface 磁盘加密说明:Surface 专用键盘驱动可能需要进入早期启动映像,USB 键盘不能替代经过测试的恢复设计。

首次启动后,从该发行版已配置的官方源更新 Ubuntu。不要机械替换镜像。仅在核对发行版、签名、HTTPS 与所有者后,通过 Ubuntu 支持的配置选择镜像。不要只为修复缩放或输入而安装另一个完整桌面。

采集只读基线:

uname -a
cat /etc/os-release
test -d /sys/firmware/efi && echo UEFI
findmnt -no SOURCE,FSTYPE,OPTIONS /
lsblk -e 7 -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
lspci -nnk
lsusb
mokutil --sb-state
echo "$XDG_SESSION_TYPE"

分享诊断信息前,应遮盖序列号、MAC 地址、主机名、用户名、挂载路径和网络名称。

判断是否确实需要 linux-surface

先试发行版内核是改动最小的路线:当前 Surface Book 2 页面显示,部分功能已由上游驱动提供,另一些仍需要 Surface 专用组件。请检查该当前设备页面与功能矩阵,不要依据截图或旧文章。2026-09-01 复核时,设备页把键盘和触控板归于上游驱动;触摸/笔、平板模式、电池/性能集成、屏幕与底座分离以及独立 GPU 处理则依赖 Surface 专用组件;摄像头未列为可用。细节可能变化。

写明缺失的功能,以及证明需要自定义内核的矩阵条目。如果原生 Ubuntu 已满足需求,就保留它。自定义内核会扩大 Secure Boot、DKMS 模块、NVIDIA 驱动、挂起与更新的测试范围。

仅使用当前签名的 linux-surface 路线

只使用当前 linux-surface Installation and Setup 页面及其 HTTPS 二进制软件包仓库。项目提供已签名软件包和独立的 MOK 注册包。不要使用已废弃的 jakeday/linux-surface 仓库、下载随机内核文件、从复制的命令导入密钥,或把未经检查的网络响应直接管道给特权 Shell。

完全按当前文档添加仓库后,安装前先检查软件包来源。复核当日,文档中的 Ubuntu/Debian 软件包包括 Surface 映像、头文件、iptsd 和独立的 Secure Boot MOK 包。同一页面明确要求 Ubuntu 26.04 用户因当前冲突而省略 libwacom-surface,因此不要跨发行版硬编码该包。

sudo apt update
apt-cache policy linux-image-surface linux-headers-surface iptsd linux-surface-secureboot-mok
sudo apt install linux-image-surface linux-headers-surface iptsd
sudo apt install linux-surface-secureboot-mok
sudo update-grub

确认前阅读 APT 显示的来源、软件包清单、磁盘变化与移除计划。来源异常、软件包名与实时官方页面不同、APT 建议移除 Ubuntu 原生内核,或 /boot 空间不足时都应停止。保留发行版内核作为回滚入口。libwacom-surface 等发行版特定软件包,仅在当前页面明确适用时安装。

保留 Secure Boot,并理解 MOK 注册

Ubuntu 使用签名启动链和 MOK 管理额外受信任密钥。linux-surface 软件包安装项目的公共证书,使其签名内核可以被接受。这是一项信任决定:确认该证书和软件包来自当前项目路线,阅读软件包屏幕说明,并仅在下次本机重启时注册预期密钥。

不要公开或复用临时注册凭据。不要把关闭验证、关闭 Secure Boot、删除全部固件密钥或清除 TPM 当作常规排错。如果 MokManager 没有显示预期证书、键盘布局不确定,或 Windows 立即要求一个拿不到的恢复密钥,应停止并回到 Ubuntu 原生内核或已记录的 UEFI 状态。内核模块签名是另一个问题:NVIDIA 或其他树外模块也必须兼容当前内核,并获 Secure Boot 策略接受。

重启前准备明确回滚路径

首次重启进入 Surface 内核前,确认原生内核仍已安装,并出现在 GRUB 高级选项中。确保本地操作、恢复介质、供电和充足回滚时间。首次启动不要远程进行。

启动后应验证,而非假设:

uname -r
mokutil --sb-state
dpkg-query -W linux-image-surface linux-headers-surface iptsd linux-surface-secureboot-mok
systemctl --no-pager --full status iptsd
journalctl -b -p warning..alert --no-pager
journalctl -b -k --no-pager

若新内核失败,通过 GRUB 高级菜单启动已知可用的 Ubuntu 内核,并保留失败启动的日志。在确认故障属于固件选择、引导程序、内核、initramfs、加密解锁还是文件系统损坏前,不要盲目运行 Boot-Repair 或编辑 EFI 文件。

分项验证 Surface Book 2 功能

每次变更内核、固件、NVIDIA 或桌面会话后,用矩阵记录通过/失败证据:

功能安全测试边界
键盘与触控板在非特权编辑器输入;测试点击、滚动、睡眠和唤醒登录或加密解锁时丢失输入即停止
触摸与笔测试校准、边缘、旋转、需要时的压感,以及挂起/恢复iptsd 与 Surface 内核支持依赖版本
屏幕/底座分离关闭 GPU 和存储使用者后,用受支持的分离服务写入、更新或使用 dGPU 时绝不强制分离
NVIDIA dGPU确认 PCI 设备与驱动,再运行有界应用测试列出 GPU 不代表电源控制、卸载与分离安全
供电与电池跨多个循环比较两块电池、交流状态、空闲耗电、挂起和唤醒过热、鼓包、突然掉电或唤醒失败即停止
摄像头除非当前矩阵和精确测试栈另有结论,否则视为不支持不要承诺可用于通话或身份验证
Wi-Fi 与蓝牙测试所需网络/安全模式和同时连接的设备不要削弱网络安全来掩盖驱动限制

dGPU 和分离工具有各自的项目文档。只在硬件匹配且基础系统稳定后安装。dGPU 正在使用、底座连接存储已挂载,或固件/软件包操作进行时,绝不能分离底座。

Wayland、X11、HiDPI 与输入法

echo "$XDG_SESSION_TYPE" 记录当前会话。当 Wayland 是 Ubuntu 默认值时先测试它;若 NVIDIA、屏幕共享、笔或旧应用问题可在 X11 中复现,则对比 X11 会话。不要依据旧修复全局强制某个显示栈。

通过桌面的“显示”设置选择整数或分数缩放。固定 DPI 256 无法适配 13.5 英寸与 15 英寸机型、外接显示器或不同桌面。接受某个比例前,检查登录界面、菜单、浏览器缩放、终端、外接屏、触摸坐标和性能。

多语言文字应先使用 Ubuntu 支持的输入源界面。只使用一个有明确管理方式的输入法框架;不要因为历史笔记写了 fcitx 就安装它或 Fcitx 5,也不要在没有测试需求时与 IBus 并行运行。在普通应用和锁屏界面验证组合输入,但不要把真实密码输入测试字段。

更新与可复现记录

每个维护窗口只改变一层:Windows 中的 Surface 固件、Ubuntu 软件包、linux-surface 内核、NVIDIA/DKMS 模块或桌面设置。每次内核更新前,确认 /boot 空间、已知可用的原生内核、恢复介质和本地访问。更新后重复启动、输入、存储、网络、供电、挂起与 Secure Boot 检查。

私下维护清单,包含:

  • Surface 型号与尺寸、CPU、是否有 dGPU 和固件版本。
  • Ubuntu 发行版、原生与 Surface 内核软件包版本及来源。
  • Secure Boot 状态和预期注册证书指纹——绝不记录凭据或恢复密钥。
  • Wayland/X11 会话、图形驱动、iptsd 版本和矩阵复核日期。
  • 分区示意图、备份/恢复测试日期和 Windows 恢复介质测试日期。
  • 测试结果、回归、相关启动 ID 和实际回滚动作。

恢复与卸载

选择最小且可逆的恢复方式:

  1. 桌面或输入回归:选择之前的会话,或启动 Ubuntu 原生内核。
  2. Surface 内核回归:保留日志,启动原生内核,并遵循当前 linux-surface 移除说明。不要移除正在运行的内核。
  3. MOK 问题:针对具体已注册证书遵循 Ubuntu 与 linux-surface 密钥管理说明。绝不重置全部固件密钥。
  4. Ubuntu 引导程序问题:先用 Ubuntu Live 介质检查磁盘、EFI 条目、文件系统与日志,只修复已证实失败的层。
  5. Windows 启动或 BitLocker 问题:使用匹配的恢复密钥和 Microsoft Windows/Surface 恢复工具。官方恢复可用时避免手工重建 EFI。
  6. 移除双启动:先证明 Windows 可独立启动,再次备份,用 Microsoft 工具恢复 Windows 启动路径,最后才在 Windows 磁盘管理中回收已确认的 Linux 空间。

Surface 恢复映像可能擦除设备。执行前阅读所选恢复动作并确认备份。两套系统完成多次冷启动与挂起/恢复循环前,保留全部证据。

停止并升级处理

遇到以下任一情况应立即停止:

  • 具体型号、目标磁盘、分区或加密所有者不确定。
  • 无法从另一台设备检索并匹配 BitLocker 恢复密钥。
  • 备份未通过抽样恢复,或恢复介质无法启动。
  • UEFI 由组织管理、固件密码未知,或政策禁止变更。
  • 安装器建议擦除磁盘、EFI/恢复分区,或超出计划空间。
  • 官方 linux-surface 页面、仓库来源、签名或软件包事务与复核计划不一致。
  • 原生内核或 Windows 恢复路径将被移除。
  • 出现过热、电池鼓包、重复 I/O 错误、文件系统损坏,或加密解锁时输入不可靠。
  • 必需的摄像头、dGPU、分离、挂起或外接显示工作流未通过验收。

根据失败层级,把经过脱敏的型号/固件/软件包清单和日志提交给 Microsoft、Ubuntu、linux-surface 项目或组织管理员。

已复核的一手来源

历史来源归档

以下惰性文本是 2019 年源导出中的完整可见正文。它逐字节保留,包括开头换行、结尾换行,以及六个带行尾空格的行。没有规范化或遮盖任何文字、URL 或空白。这只是来源记录,并非当前说明;不要执行其中命令或跟随其中链接。


0, Install Xubuntu

1, Adjust the fonts and icons 

Settings->Apperance->Fonts->DPI->256

Panel

Window Manager

Desktop

2, Change the fonts of grub bootloader

Bootloader(/boot/default/grub)

3, Change the apt source list

/etc/apt/source.list(cn.ubuntu.com->mirrors.aliyun.com)

update && upgrade

4, Kernel

Use the jakeday’s kernel for surface. You can get more information from link below. 

[https://github.com/jakeday/linux-surface#instructions](https://github.com/jakeday/linux-surface#instructions)

5, 3rd party

Enable 3rd party installing. Reboot to UEFI (hold power and volume minus simultaneously and release power button once boot up) and navigate the *Boot* menu. In the security settings, choose Microsoft & 3rd party instead. 

6, Signing

For more information, please move to the link below. 

[https://github.com/jakeday/linux-surface/blob/master/SIGNING.md](https://github.com/jakeday/linux-surface/blob/master/SIGNING.md)

7, repair and beautify the boot menu

boot-repair

For customized theme and beautifying stuff, follow this link. 

[https://github.com/timobaehr/Surface-Boot-Themes/tree/surface_book](https://github.com/timobaehr/Surface-Boot-Themes/tree/surface_book)

8, Language Support and Input Method

fcitx

9, Additional drivers

Try to enable the GPU support. 

10, Synchronize settings with Windows

Horizontal scrolling and reverse scrolling direction

Add panel docker

11, Install ubuntu-desktop

 12, Install SS

Leave a Reply