Surface 装 Ubuntu 这件事我从 Pro 4 一路折腾到 Pro 9中间有两次是装完第二天就灰头土脸滚回 Windows 的。不是 Linux 不行是 Surface 这台机器从固件到外设都太微软了——UEFI 是定制的触摸屏走的是私有协议电源管理和普通笔记本完全是两套逻辑。所以网上那些通用的Ubuntu 安装教程你照着做大概率能开机但触屏不灵、笔没反应、合盖睡一觉掉 30% 电。这篇东西不打算复述一遍分区向导怎么点下一步那些内容到处都是。我想讲的是为什么 Surface 装 Linux 会比别的机器多绕几道弯每一道弯背后的原因是什么以及在哪些地方你必须做取舍。适合三类人看——手上有台闲置 Surface 想装 Linux 的、装了但被驱动问题折磨的、以及正在犹豫要不要折腾的。1. Surface 装 Ubuntu 真正的难点在哪先摸清这台机器的脾气先把结论摆在前面Surface 装 Ubuntu安装本身是最简单的一步难的是装完之后让这台机器像个正常电脑一样工作。普通人装 Ubuntu 遇到的问题是显卡驱动、网卡固件Surface 用户遇到的问题是这台机器一半的外设Linux 内核压根不知道它存在。1.1 微软的 UEFI 是定制货别按普通笔记本的思路来绝大多数笔记本的 UEFI 就是一个标准 UEFI 加上一点厂商美化界面你在里面能关 Secure Boot、能调启动顺序、能看硬盘列表。Surface 不是这样。它的固件界面极其简陋只有寥寥几项关闭 Secure Boot、调整启动顺序、开关 TPM、以及一个从 USB 启动的选项。没有内存时序、没有风扇曲线、没有 SATA 模式切换因为 Surface 用 NVMe 直连也不给你这些选项。这个简陋带来的直接后果是很多在其他机器上靠改固件就能绕过去的问题在 Surface 上只能从操作系统层面解决。比如有些机器关掉 Secure Boot 就万事大吉Surface 关掉之后你还得处理启动项优先级的问题——微软会在固件更新时把Windows Boot Manager重新顶到第一位你的 GRUB 就被挤到后面去了表现就是更新完 Windows 之后直接进 Windows连选系统的菜单都没了。还有一个容易被忽略的点Surface 的 EFI 系统分区只有 200MB 左右比很多笔记本默认的 500MB 小不少。Ubuntu 的安装器会把 GRUB 塞进这个分区如果里面已经堆了微软的恢复镜像、固件更新文件空间会很紧张。我见过一次装完后 GRUB 反复安装失败最后查出来就是 ESP 满了。所以分区之前先看看那个分区还剩多少空间。1.2 一张表看清哪些硬件天生能用、哪些注定要折腾Surface 各个部件的 Linux 支持程度差异极大装之前心里得有个数。下面这张表是我基于 Pro 4 到 Pro 9、Laptop 3 到 Laptop 5 的实际体验整理的具体到你的机型可能有出入但大致规律是这样部件开箱可用程度说明NVMe 硬盘完全可用标准 NVMe 协议内核自带驱动内存与 CPU 调度完全可用Intel 平台基本无坑Type Cover 键盘安装阶段就能用走标准 HID插上即识别Type Cover 触控板基本可用手势可能要调部分机型需要额外配置触摸屏分机型新机型需装驱动Pro 8/9 走 IPTS 协议必须装 iptsdSurface Pen基础功能可用压感要内核支持老机型用 Wacom 协议新机型是私有协议Wi-Fi看网卡型号Intel 网卡很稳Marvell 的要固件蓝牙一般可用偶发掉设备摄像头基本不可用这是最大的一块短板人脸识别完全不可用红外摄像头在 Linux 下无驱动休眠与睡眠需要打补丁Modern Standby 是重灾区亮度调节需要内核支持依赖 Surface Aggregator 驱动音量键、电源键需要内核支持同上陀螺仪、自动旋转部分可用走 IIO 子系统你要特别注意人脸识别这一行。Surface Pro 9 的 Windows Hello 靠的是前置红外摄像头加专用安全芯片这套东西在 Linux 下没有任何可用驱动而且短期内也不会有——因为微软没有公开这部分协议社区逆向的难度极高。如果你装 Linux 的目的是想用指纹或者刷脸登录趁早打消这个念头老老实实用密码或者 PIN。1.3 linux-surface 到底补了哪些洞如果你在网上搜过 Surface 装 Linux肯定见过linux-surface这个名字。它是一个社区维护的项目做的事情可以理解为把微软定制硬件的驱动补丁打进内核再打包成可以直接 apt 安装的 deb 包。它主要补三类东西。第一类是专用驱动模块比如surface_aggregator系列模块负责和 Surface 的嵌入式控制器通信亮度、音量键、传感器这些都靠它。第二类是触摸屏支持新机型用的 IPTS 协议在主线内核里没有需要iptsd这个用户态守护进程配合。第三类是电源管理补丁让机器在 S0ix 待机状态下别疯狂掉电。这里要说清楚一个认知装了 linux-surface 内核不等于所有硬件都完美了。它只是把完全不能用变成基本能用摄像头、人脸识别这些还是没戏部分机型的休眠依然有问题。把它当成一个大幅改善体验的补丁集而不是万能药。2. 动手之前准备工作的每一项都值半小时我见过太多人急着插 U 盘开干结果装到一半发现 Windows 的 BitLocker 锁了或者固件版本太老导致新内核起不来。准备工作做扎实能给你省下至少一次重装。2.1 先确认你的机型属于哪一档Surface 产品线跨度很大从 2014 年的 Pro 3 到现在的 Pro 11硬件代际差异带来的支持程度完全不同。我在实际折腾中的经验是把它分成三档好搞档Pro 3 到 Pro 7、Laptop 1 到 Laptop 3。这些机型社区折腾得最久驱动最成熟触摸屏、笔、电源管理基本都能跑通。中等档Pro 7 到 Pro 8、Laptop 4 到 Laptop 5。Intel 11 代之后的平台引入了新的电源管理架构睡眠问题会多一些触摸屏换成了 IPTS 协议需要额外装iptsd。难搞档Pro 9、Pro 10、Pro 11、Laptop Studio 系列。这些机器普遍用上了更封闭的组件摄像头彻底没戏Secure Boot 的处理也更麻烦。还有一条硬性提醒Surface Pro 9 有 ARM 版本用的是高通骁龙 SQ3 芯片。ARM 版装 Ubuntu 是完全另一条路本文讲的所有内容基本不适用——ARM 平台上驱动生态差得更远社区支持也少。你可以在 Windows 里打开设置→系统→关于看系统类型那一栏如果写着基于 ARM64 的处理器那你要找的是完全不同的资料。2.2 镜像、内核与固件包怎么选版本选择上我建议直接上Ubuntu 24.04 LTS 或 22.04 LTS。原因很实际linux-surface 的内核包是跟着主线内核版本走的太老或者太新的发行版都可能遇到依赖不匹配。LTS 版本的软件源稳定、社区踩坑记录多出问题了搜到的答案大概率对得上。镜像从 Ubuntu 官网下载就行选桌面版。下载完一定要校验哈希值尤其是从国内镜像站下载的时候——校验的命令是sha256sum ubuntu-24.04-desktop-amd64.iso然后跟官网公布的 SHA256 对比。这一步花你两分钟但能避免很多装到一半报错的玄学问题我吃过一次亏一张没校验的镜像让我在安装器崩溃界面反复横跳了一个下午。另外装之前最好把Surface 的固件更新到最新。Windows Update 里有个Surface 固件更新的分类把所有更新装完再动手。老固件配上新内核出问题的概率高得多尤其是电源管理这一块。2.3 BitLocker、固件更新与数据备份这三件事如果你跳过任何一件都可能付出惨痛代价。第一处理 BitLocker。现代 Surface 默认开启设备加密改分区表、动 Secure Boot 都会触发恢复模式。你要么进 Windows 把 BitLocker 暂停或关掉要么至少把 48 位恢复密钥抄下来。检查状态可以用管理员权限打开命令提示符manage-bde -status看到保护已开启就说明在加密状态。暂停保护的命令是manage-bde -protectors -disable C: -rebootcount 1这样下次重启后加密自动恢复适合临时改分区的场景。第二备份数据。这句话听着像废话但我要强调的是双系统装完之后Windows 那边的分区被 Ubuntu 安装器误操作的案例真实存在尤其是你手动分区的时候点错挂载点。重要资料拷到移动硬盘或者云端别赌运气。第三关掉 Windows 的快速启动。进控制面板→电源选项→选择电源按钮的功能→更改当前不可用的设置把启用快速启动的勾去掉。快速启动本质上是混合关机会锁住 NTFS 分区Ubuntu 挂载时会报 unclean filesystem。同时养成习惯关机的时候按住 Shift 再点关机这样才是真关机。2.4 启动盘制作的几个细节制作 U 盘启动盘工具用 balenaEtcher 或者 Rufus 都行。这里有两个 Surface 特有的坑。第一个坑是U 盘本身。Surface 的 USB-A 口只有一个新机型甚至只有 Type-C没有额外的供电能力。用那种老式的大块头 USB 3.0 移动硬盘做启动盘很可能因为供电不足导致识别不稳定。用一个普通的 USB 3.0 U 盘容量 8GB 以上就够。第二个坑是U 盘的文件系统。Ubuntu 的 ISO 是混合镜像直接写入 U 盘后会同时带 MBR 和 GPT 结构。有些工具写完之后 U 盘在 Windows 里显示容量只有几 MB这是正常的别以为写坏了。但如果你用某些U 盘启动工具做了特殊处理反而可能导致 Surface 的固件识别不出来。用 Etcher 走默认流程最省心。提示写盘之前把 U 盘里原有的数据备份走写入过程会清空整个 U 盘。3. 从 U 盘启动到系统落地一次完整的装机流程准备工作做完接下来是真正的安装。这一步反而很快主要的判断集中在分区和几个关键选项上。3.1 进 UEFI 与必须调整的几个开关Surface 进入固件设置的方式和别家不一样先完全关机然后按住音量加键不放再按一下电源键等屏幕亮起再松开音量键。进去之后你会看到一个非常简陋的界面。需要动的开关只有三个关闭 Secure Boot。在 Security 选项卡里找到 Secure Boot改成 Disabled。不关的话 Ubuntu 的安装 U 盘根本起不来——微软是签了一部分 Linux 发行版的引导程序但安装介质的 shim 经常不在白名单里。关掉它后面装 linux-surface 内核也省事。调整启动顺序。在 Boot configuration 里把 USB Storage 移到最上面。Surface 的启动顺序有时候会在固件更新后被重置如果改完还是直接进 Windows检查一下这里。确认 TPM 状态。一般不用动但如果你后面打算用 LUKS 全盘加密TPM 的状态会影响配置方式。保持默认即可。改完按电源键退出保存。插上 U 盘再按一次电源开机应该就能看到 GRUB 菜单选 Try or Install Ubuntu 进安装器。3.2 分区双系统共存还是全盘接管这是整个安装过程中最需要想清楚的一步我给两种方案和各自的适用场景。方案一保留 Windows做双系统。适合还在用 Surface 做 Windows 独占工作的场景比如某些行业软件、游戏、或者你就是想留个后路。做法是先在 Windows 里用磁盘管理压缩出空闲空间压缩出多少取决于你的用量——Ubuntu 系统本身加常用软件大约 40GB 起步如果想装开发环境、Docker 镜像建议留 100GB 以上。压缩完之后在 Ubuntu 安装器里选手动分区Something else把空闲空间分成/根分区和 swap 分区。方案二全盘接管清掉 Windows。适合 Surface 已经是备用机的场景。这条路简单很多安装器里选清除整个磁盘并安装 Ubuntu就行。但要注意这么做之后你就彻底失去了 Windows Hello 和 Surface 的固件更新通道后续固件想更新会麻烦很多。手动分区的时候有个细节要留意EFI 系统分区不要格式化只挂载。Surface 的 ESP 里还有 Windows Boot Manager格式化掉之后你连 Windows 都进不去了。正确做法是把那个 200MB 左右的分区挂载为/boot/efi并且取消格式化的勾选。swap 分区的大小如果你打算用休眠功能必须大于等于物理内存。Surface Pro 9 常见配置是 16GB 内存那 swap 就要给 16GB 以上。不打算休眠的话给 4GB 意思一下或者用 swapfile 都行。3.3 安装器里那几步怎么选Ubuntu 的安装向导里有几个选择会影响后续体验不要勾选安装第三方软件和驱动。这一项会尝试安装 NVIDIA 驱动和某些专有固件Surface 是 Intel 核显装了没用还可能引发冲突。网卡固件后面单独处理更干净。不要勾选下载更新。安装过程中联网下载几百兆更新网络一抖就前功尽弃。装完系统进桌面之后再做更新成功率高得多。用户名和密码用纯英文。这个不是迷信中文用户名在某些编译工具和开发框架里会引发路径编码问题cmake、conda这类工具都踩过这个坑。主机名同理别用中文。3.4 第一次开机能做什么、不能做什么安装完成重启如果一切顺利你会进到 Ubuntu 桌面。这时候先别急着折腾驱动花五分钟确认几件事能不能连 Wi-Fi、键盘音量键有没有反应、屏幕亮度能不能调、合盖之后会不会睡死。第一次开机你大概会看到这些现象Wi-Fi 可能连上了但速度不稳、键盘能用但触控板手势不全、亮度是满的但调不了、电源键按下去没反应。这些都是正常的因为你还在用主线内核接下来就是装 linux-surface。反过来如果第一次开机直接黑屏、卡在 GRUB、或者卡在登录界面循环那说明遇到了启动层面的问题先别继续往下走去看第 5 章的排查思路。4. 驱动补全触摸、笔、键盘、电源一个一个啃装完系统只是开始接下来的驱动补全是决定这台 Surface 到底是能开机还是能用的分水岭。4.1 装 linux-surface 内核与配套包linux-surface 官方提供了一套安装脚本和 apt 源。我的建议是先看脚本内容再执行这是对待任何第三方一键脚本的基本素养——毕竟它要往你的内核目录里塞东西。整体流程分三步。第一步是把软件源加进来大致是这样具体命令以官方仓库当前文档为准格式可能随版本调整# 导入签名密钥 curl -sSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \ | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/linux-surface.gpg /dev/null # 添加软件源 echo deb [archamd64] https://pkg.surfacelinux.dev debian main \ | sudo tee /etc/apt/sources.list.d/linux-surface.list sudo apt update第二步是安装内核和配套包sudo apt install linux-image-surface linux-headers-surface libwacom-surface iptsd这几个包各自的作用不一样。linux-image-surface是打过补丁的内核本体linux-headers-surface是头文件如果你后面要编译 DKMS 模块比如 VirtualBox 的增强驱动就必须装libwacom-surface提供触控笔和触摸屏的设备描述文件iptsd是新机型触摸屏的用户态守护进程。第三步是重启然后在 GRUB 里选带 surface 字样的内核条目进系统。进系统后用uname -r确认一下内核版本后缀是-surface就对了。有个坑要提醒每次主线内核升级linux-surface 包不一定会同步跟上。有时候apt upgrade会把你的默认启动项切回主线内核你会突然发现触屏又没了。遇到这种情况检查/boot目录下哪个内核版本存在然后在 GRUB 里手动选回去或者调整 GRUB 默认启动项。4.2 触摸屏和触控笔装完 iptsd 之后新机型的触摸屏应该就能用了。验证方式是开机后用手指点几下屏幕看有没有响应。如果没有先确认服务在跑systemctl status iptsd服务没起来的话看看是不是被 Secure Boot 拦住了——iptsd 需要访问/dev/ipts设备节点如果 Secure Boot 开着而驱动模块没签名就会加载失败。这也是我建议直接关掉 Secure Boot 的原因之一。触控笔的情况复杂一些。老机型Pro 3 到 Pro 6用的是 Wacom 的 AES 协议libwacom-surface装上之后压感基本可用你可以在绘图软件里直接试。新机型Pro 8 之后的笔走的是私有协议功能支持没那么完整压感和侧键可能部分失效。如果你主要用途是笔记和绘图这一点要提前有心理预期。蓝牙配对的笔Surface Pen 的顶部按钮功能需要单独走蓝牙连接配对成功后顶部按钮可以触发截图之类的操作但具体映射要自己配。4.3 Type Cover 与触控板好消息是 Type Cover 键盘从安装阶段就能用因为它走标准 USB HID 协议内核天然支持。坏消息是触控板的多指手势和Palm Rejection防误触在部分机型上不完整。装完 linux-surface 之后你可以在设置→鼠标和触控板里试试双指滚动、三指切换窗口这些手势。如果手势不全或者掌压误触严重可以看一下 libinput 的配置。有个实用的小技巧写代码的时候老是误触可以直接把触控板在输入时自动禁用的选项打开Ubuntu 的设置里有输入时禁用触摸板这一项能省不少事。键盘背光的亮度调节在部分机型上可用快捷键是 Fn 某个功能键具体看你的机型键盘布局。4.4 摄像头与人脸识别这一项建议直接放弃这是我必须泼的一盆冷水。Surface 的摄像头在 Linux 下基本不可用而且这不是配置问题是驱动根本不存在。Surface Pro 9 的摄像头模块走的是微软定制接口社区逆向进展极其有限。前置红外摄像头Windows Hello 用的那个更是完全没戏——它涉及到安全芯片和专用协议属于闭源黑盒。所以你要面对的现实是装了 Ubuntu 之后视频会议得用外接 USB 摄像头登录不能用刷脸。如果你日常开视频会比较多这一点会实实在在影响体验。我自己的做法是常备一个小的 USB 摄像头体积小到可以贴着机身放需要的时候插上。顺便说这也是我建议保留双系统的核心原因之一——遇到必须开摄像头的重要会议切回 Windows 十分钟解决问题比跟驱动死磕划算得多。4.5 电源管理与睡眠耗电这是另一个重灾区。现代 Surface 用的是 Modern StandbyS0ix待机模式也就是合盖之后系统进入低功耗状态但没真正关机。Windows 下这套机制配合驱动调得很顺Linux 下就经常出现合盖一晚上掉 30% 电或者合盖之后再也醒不过来。linux-surface 内核在这方面做了不少工作装完之后睡眠耗电会明显改善。你可以用下面的命令看看待机状态cat /sys/power/mem_sleep显示s2idle说明是 S0ix 待机。如果耗电依然严重有两个方向可以试一是把休眠hibernate配起来用真实休眠代替待机代价是每次唤醒慢几秒二是装powertop看看谁在偷偷唤醒系统sudo apt install powertop sudo powertop在 WakeUp 标签页里能看到唤醒源统计很多时候是某个 USB 设备或者网卡在反复唤醒。找到之后可以针对性禁掉。5. 踩坑实录我重装三次才搞明白的几个问题下面这些坑都是我实际撞过的写出来是为了让你少走一遍。5.1 关机变重启、睡眠醒不过来现象点关机机器重启了或者合盖睡一觉打开盖子屏幕黑的只能长按电源键强关。排查思路先确认是不是内核问题。在 GRUB 里切回主线内核试试如果主线内核正常而 surface 内核有问题那就是补丁的兼容性问题可以考虑换一个内核版本或者等社区更新。如果是两个内核都有问题那大概率是固件版本太老——回到 Windows 把 Surface 固件更新到最新再回来试。修复方案音量键和电源键的行为其实是靠surface_aggregator_registry模块驱动的。如果这个模块没加载系统就收不到电源键事件表现就是按了没反应。用lsmod | grep surface看看模块在不在不在的话检查 Secure Boot 状态和模块签名。5.2 Wi-Fi 断流、蓝牙掉设备现象Wi-Fi 连接正常但速度忽快忽慢或者隔一段时间就断一次蓝牙耳机用着用着就断了。根因这两个问题经常是同一个原因——Wi-Fi 和蓝牙共用同一块无线网卡互相干扰。Surface 上常见的 Intel AX 系列网卡如果电源管理策略太激进会让网卡在空闲时进入低功耗状态唤醒不及时就表现为断流。修复方案关掉网卡的省电模式。先找到网卡名iw dev然后用 NetworkManager 配置# 找到连接名 nmcli connection show # 关闭该连接的省电 nmcli connection modify 你的连接名 wifi.powersave 2 # 重连生效 nmcli connection down 你的连接名 nmcli connection up 你的连接名wifi.powersave的值2 表示禁用省电3 表示启用。禁用之后耗电会稍微增加但稳定性提升明显我觉得值。5.3 Secure Boot 与固件更新把启动项搞没了现象Windows 更新完或者手动更新了 Surface 固件重启直接进 WindowsGRUB 菜单消失了。根因Surface 的固件在更新后会把Windows Boot Manager重置为第一启动项。这不是 Linux 的问题是固件的行为。修复方案进固件设置把启动顺序调回来。如果调不回来说明 EFI 分区里的 GRUB 条目被删了需要在 Ubuntu 的 Live USB 里用efibootmgr重新添加sudo efibootmgr -v # 查看当前启动项 sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L Ubuntu -l \EFI\ubuntu\grubx64.efi执行完再重启GRUB 应该就回来了。预防的办法是关掉 Windows 的自动固件更新每次更新完手动检查一遍启动顺序。5.4 亮度、音量键、自动旋转现象屏幕亮度固定在最大值调不了音量键按了没反应屏幕转了但画面不跟着转。根因这三个功能都依赖surface_aggregator系列模块。如果模块没加载系统就得不到这些硬件事件。另外亮度调节还需要 i915 显卡驱动配合 Surface 的专有背光接口。修复方案先用lsmod | grep surface_aggregator确认模块加载情况。如果没加载检查内核是不是 surface 版本、Secure Boot 是不是关的。加载了还不行的话看dmesg | grep -i surface的输出一般能找到具体哪个模块初始化失败。自动旋转需要额外的用户态程序支持Ubuntu 上可以装iio-sensor-proxysudo apt install iio-sensor-proxy装完重启屏幕旋转应该就能自动跟随了。不过说实话这个功能在笔记本形态下用得不多装不上也不影响主力使用。5.5 时间差 8 小时、环境变量写坏、SSH 连不上这三个问题看起来不相关但都是装完系统之后大概率会撞上的。时间差 8 小时是最经典的Windows 把硬件时钟当本地时间用Linux 默认当成 UTC双系统切换一次就差 8 小时。修复一条命令timedatectl set-local-rtc 1 --adjust-system-clock这会让 Linux 也把硬件时钟当本地时间读两边就一致了。代价是如果你以后装别的 Linux 发行版或者服务器环境可能会有点混乱。环境变量写坏是新手最容易犯的错。往~/.bashrc或者~/.profile里加 PATH 的时候少写一个冒号、或者引用了不存在的路径可能导致登录界面无限循环——因为桌面环境读不到正确的 PATH。这时候按Ctrl Alt F3切到 tty 登录用nano ~/.bashrc把错误行注释掉再Ctrl Alt F1切回图形界面。记住这个救命快捷键组合能省一次重装。SSH 连不上通常不是网络问题而是 Ubuntu 桌面版默认不装 SSH 服务端。装了之后还要确认服务起来了sudo apt install openssh-server sudo systemctl enable --now ssh sudo systemctl status ssh如果还连不上检查防火墙sudo ufw status以及是不是连错了 IP——Surface 用 Wi-Fi 的时候 IP 会变用ip addr确认一下。6. 装完之后让它真的能当生产力工具用驱动搞定之后这台 Surface 才算真正可用。最后聊几个让它顺手起来的配置。6.1 中文输入法与字体中文输入法我推荐fcitx5 搜狗输入法或者fcitx5 拼音。搜狗的词库确实好一些但它在某些版本上依赖比较旧可能跟系统的 fcitx5 版本打架。稳妥起见先装 fcitx5 自带的中文引擎sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5装完在设置→区域和语言里把输入法框架改成 fcitx5然后配置里加上拼音。有个细节要注意环境变量必须配对否则在某些应用里打不出中文。在~/.pam_environment或者/etc/environment里加GTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx字体方面Ubuntu 默认的中文字体渲染偏细长时间看代码注释会累。装一套思源黑体和等宽字体替换一下观感会好很多。终端里我个人的偏好是等宽字体里字符间距稍微宽一点的那种长时间盯着不费眼。6.2 终端、编辑器和常用开发环境Surface 的屏幕小、分辨率高默认终端字体渲染会偏小。第一件事是把 GNOME 的字体缩放调到 1.25 或者 1.5不然你会一直眯着眼看。终端我用 GNOME Terminal 加上一点配置就够重点是字体和配色。编辑器看个人习惯VS Code 的话直接去官网下 deb 包安装sudo apt install ./code_*.deb如果要跑容器和本地服务Docker 的安装走官方源比较稳装完记得把自己的用户加进 docker 组不然每条命令都要加 sudosudo usermod -aG docker $USER这条命令执行完要重新登录才生效。另外Surface 的固态硬盘容量通常不大Docker 镜像默认放在/var/lib/docker如果根分区小建议把镜像目录挪到别的位置或者定期docker system prune清理。Python 环境我建议用 conda 或者 venv 隔离别直接往系统 Python 里装包。系统 Python 被污染之后很多依赖它的系统工具会莫名其妙挂掉这个坑非常隐蔽排查起来很痛苦。6.3 内核升级与长期维护最后说说长期维护。Surface 装 Ubuntu 最大的长期风险是内核升级把驱动搞崩。我的做法是把 linux-surface 相关包标记为手动安装避免apt autoremove把它们清掉每次apt upgrade之前先看一眼要升级的内核版本如果是主线内核大版本跳跃先查一下 linux-surface 仓库有没有跟进没跟进的话就暂时按住不升sudo apt-mark hold linux-image-surface linux-headers-surfacehold之后这些包就不会被自动升级覆盖。等社区发了兼容版本再unhold然后手动升级。这招听起来保守但能避免你某天早上打开电脑发现触屏和笔全废了。还有个小习惯值得养成在/boot里至少留两个可用的内核版本GRUB 菜单里能选。万一新内核起不来重启选旧内核就能进系统不用抱着 U 盘救火。Ubuntu 默认保留两三个版本别手贱去清理/boot。我个人在实际使用中的体会是Surface 跑 Ubuntu 最舒服的状态是把它当成一台带触摸屏的普通笔记本——键盘鼠标是主力触屏和笔是锦上添花。抱着要完全复刻 Windows 体验的心态去折腾最后大概率会失望把它当成一台独立的 Linux 机器来对待接受它没有摄像头、没有人脸识别、睡眠偶尔抽风反而会觉得这东西挺香的。毕竟一块 3:2 比例的高分屏加上一块好键盘写代码的体验是真的舒服。