我的 Surface Pro 4(m3 处理器 + 128GB 硬盘)已使用近 9 年,配有官方键盘和手写笔。4 年前三星屏出现抖屏问题,更换为 LG 屏后,它成为连接电台和运行业余无线电软件的主力机。今年屏幕上方开胶脱落,粘合后感觉 Windows 系统在夏天发热依然明显。恰逢计划深入学习 Linux,于是决定安装 Arch Linux 继续发挥余热。本文记录详细的安装过程。
🛠️ 一、备份与启动盘准备
-
数据备份
- 系统映像备份: 使用
控制面板 → 备份和还原(Windows 7) → 创建系统映像将系统映像备份到移动硬盘。 - 重要数据备份: 将 Surface Pro 4 上的个人重要文件备份到移动硬盘。
- 系统映像备份: 使用
-
下载镜像
- 从 清华大学开源软件镜像站 下载最新版
archlinux-2025.06.01-x86_64.iso。 - 验证完整性: 使用
sha256sum或gpg工具校验下载 ISO 文件的校验和与签名。
- 从 清华大学开源软件镜像站 下载最新版
-
制作启动 U 盘
- 工具: Rufus。
- 步骤:
- 插入 U 盘(≥8GB)。
- 运行 Rufus。
- 选择下载的 Arch Linux ISO 文件。
- 分区类型: 选择 GPT。
- 目标系统: 选择 UEFI (非 CSM)。
- 点击“开始”。
- 镜像写入模式: 选择 DD 模式 (重要!)。
- 确认操作,等待写入完成。
⚙️ 二、安装 Arch Linux 基础系统
-
关闭 Secure Boot
- 关机状态下,长按 音量+键 并点按电源键开机,进入 UEFI 设置界面。
- 导航至 Security 选项卡。
- 找到
Secure Boot选项,将其关闭。 - 保存更改并退出。
-
从 U 盘启动
- 关机状态下,长按 音量-键 并点按电源键开机。
- 在启动菜单中,选择包含 U 盘名称的 UEFI 启动项。
连接网络 (使用 iwd)
rfkill list # 查看无线设备状态(通常默认已解锁)
iwctl # 进入 iwd 交互式命令行
[iwd]# device list # 列出可用无线网卡(如 wlan0)
[iwd]# station wlan0 scan # 扫描可用 Wi-Fi 网络
[iwd]# station wlan0 get-networks # 列出扫描到的网络
[iwd]# station wlan0 connect "你的Wi-Fi名称" # 连接网络,按提示输入密码
[iwd]# exit # 退出 iwd
ip link show wlan0 # 检查网卡状态(应显示 `UP`)
ping -c 3 www.baidu.com # 测试网络连通性
更新系统时钟
timedatectl set-ntp true # 启用 NTP 时间同步
timedatectl status # 检查时间服务状态和当前时间
优化软件源 (国内用户建议)
# 生成国内镜像源列表(按速度排序,使用 HTTPS)
reflector --country China --latest 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
# 检查生成的镜像列表
cat /etc/pacman.d/mirrorlist
# 更新软件包数据库
pacman -Syy
硬盘分区
注意: 此示例展示最简单的分区方案(EFI 引导分区 + 根分区 + Swap 交换分区)。请根据实际需求和硬盘大小调整。
警告: 分区操作会清除磁盘数据,请务必确认操作对象 (/dev/nvme0n1) 是目标磁盘。
- 输入
lsblk或fdisk -l查看磁盘及分区信息,确认目标磁盘设备(如/dev/nvme0n1)。 - 使用分区工具(推荐
cfdisk的图形界面):cfdisk /dev/nvme0n1 # 更直观的图形界面分区工具 # 或 gdisk /dev/nvme0n1 (GPT 专用) / fdisk /dev/nvme0n1 - 示例分区方案 (128GB SSD):
/dev/nvme0n1p1: EFI 系统分区,大小 512MB-1GB,类型EFI System。/dev/nvme0n1p2: 根分区 (/), 剩余大部分空间 (如 110GB+),类型Linux filesystem。/dev/nvme0n1p3: Swap 交换分区, 大小建议等于或稍大于内存 (如 4GB-8GB),类型Linux swap。
- 分区完成后,写入更改 (
Write) 并退出工具。
格式化分区
# 格式化根分区为 f2fs (需已加载 f2fs 内核模块)
mkfs.f2fs -l ArchRoot -O extra_attr,inode_checksum,sb_checksum /dev/nvme0n1p2
# 初始化 Swap 分区
mkswap -L ArchSwap /dev/nvme0n1p3
# 格式化 EFI 分区为 FAT32
mkfs.fat -F 32 -n ARCHBOOT /dev/nvme0n1p1
挂载分区
# 挂载根分区
mount /dev/nvme0n1p2 /mnt
# 创建 EFI 挂载点并挂载 EFI 分区 (标准路径为 /mnt/boot 或 /mnt/efi)
mkdir -p /mnt/boot/efi # 推荐此路径
mount /dev/nvme0n1p1 /mnt/boot/efi
# 启用 Swap 分区
swapon /dev/nvme0n1p3
# 检查分区挂载情况
lsblk -f
重要提示: 挂载顺序必须为先根分区 (
/mnt),再 EFI 分区 (/mnt/boot/efi)。否则可能导致系统无法启动。
安装基本系统
pacstrap -K /mnt base base-devel linux linux-firmware vim intel-ucode
# `base-devel` 包含编译工具,后续常用。`intel-ucode` 是 Intel CPU 微码更新。
生成 fstab 文件
# 生成 fstab 文件 (使用 UUID)
genfstab -U /mnt >> /mnt/etc/fstab
# 务必检查生成的 /mnt/etc/fstab 文件是否正确!
cat /mnt/etc/fstab
Chroot 到新系统
arch-chroot /mnt
配置基础系统
# 安装必要软件包
pacman -Syu networkmanager bluez bluez-utils vim f2fs-tools xf86-input-wacom
# 网络管理、蓝牙、编辑器、f2fs工具、Surface Pen驱动
# 针对 Surface Pro 4 的 2736×1824 高分辨率设置显示缩放 (可选,也可进桌面后设置)
echo "export GDK_SCALE=2" >> /etc/profile.d/hidpi.sh
echo "export QT_SCALE_FACTOR=2" >> /etc/profile.d/hidpi.sh
chmod +x /etc/profile.d/hidpi.sh
# 安装并启用 IPTSD (Surface 触控驱动)
pacman -S iptsd
systemctl enable iptsd
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置硬件时钟为 UTC 时间
hwclock --systohc --utc
# 本地化设置 (语言环境)
vim /etc/locale.gen # 取消注释 `en_US.UTF-8 UTF-8` 和 `zh_CN.UTF-8 UTF-8`
locale-gen # 生成指定的 locale
echo "LANG=en_US.UTF-8" > /etc/locale.conf # 设置系统默认语言为英文 (建议)
# 或 echo "LANG=zh_CN.UTF-8" > /etc/locale.conf # 设置为中文 (可能导致 TTY 乱码)
# 设置控制台键盘布局和字体 (可选)
vim /etc/vconsole.conf
# 例如:
# KEYMAP=us
# FONT=lat9w-16
# 设置主机名
vim /etc/hostname
# 例如: surface-pro4
# 配置 hosts 文件
vim /etc/hosts
# 添加以下行:
127.0.0.1 localhost
::1 localhost
127.0.1.1 surface-pro4.localdomain surface-pro4 # 将 `surface-pro4` 替换为你的主机名
# 设置 root 密码
passwd
创建普通用户并授予 sudo 权限
# 替换 [yourusername] 为你的用户名
useradd -m -G wheel,users,storage,power,lp,adm,optical [yourusername]
passwd [yourusername] # 设置新用户密码
# 安装 sudo 并配置 wheel 组权限
pacman -S sudo
# 编辑 sudoers 文件 (使用 `visudo` 命令更安全)
EDITOR=vim visudo
# 找到行 `# %wheel ALL=(ALL:ALL) ALL`,取消注释 (删除行首的 `#`)
# 保存退出 (:wq)
安装并配置引导加载程序 (GRUB)
# 安装 GRUB 和相关工具
pacman -S grub efibootmgr os-prober
# 安装 GRUB 到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux --recheck
# (可选) 编辑 GRUB 默认配置 (如 GRUB_CMDLINE_LINUX 参数)
vim /etc/default/grub
# 生成 GRUB 配置文件 (会自动包含 intel-ucode)
grub-mkconfig -o /boot/grub/grub.cfg
# 启用 NetworkManager 服务
systemctl enable NetworkManager
# 生成初始 RAM 磁盘 (initramfs)
mkinitcpio -P
完成安装并重启
# 退出 chroot 环境
exit
# 卸载所有挂载的分区
umount -R /mnt
# 关闭 Swap
swapoff -a
# 重启系统 (移除安装 U 盘)
reboot
🖥️ 三、安装 Surface 专属内核与驱动
📌 关键步骤! 若不安装,触屏、Type Cover 键盘、摄像头、传感器等将无法正常工作或功能受限。
参考 linux-surface 项目。
-
添加 linux-surface 仓库密钥和源
# 导入密钥 curl -s https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo pacman-key --add - sudo pacman-key --finger 56C464BAAC421453 sudo pacman-key --lsign-key 56C464BAAC421453 # 添加仓库到 pacman 配置 echo '[linux-surface]' | sudo tee -a /etc/pacman.conf echo 'Server = https://pkg.surfacelinux.com/arch/' | sudo tee -a /etc/pacman.conf -
安装 Surface 内核和驱动
# 更新仓库并安装 sudo pacman -Syu sudo pacman -S linux-surface linux-surface-headers iptsd # 确保 IPTSD 服务启用 sudo systemctl enable --now iptsd -
安装其他必要固件和驱动
# Marvell WiFi 固件 (Surface Pro 4 需要) sudo pacman -S linux-firmware-marvell # Libcamera 驱动 (摄像头支持) sudo pacman -S libcamera # GStreamer 插件 (便于使用摄像头的应用) sudo pacman -S gst-plugin-libcamera -
验证安装
# 安装 screenfetch 或 neofetch sudo pacman -S screenfetch screenfetch- 在输出信息中,检查 Kernel: 一行是否包含
surface字样 (例如Kernel: 6.x.x-arch1-1-surface),这表明 Surface 内核已成功加载。 - 此时触屏、Type Cover 键盘、触控板、笔等应基本可用。
- 在输出信息中,检查 Kernel: 一行是否包含
⚡ 四、安装桌面环境 (KDE Plasma) 与基本应用
安装图形组件与 KDE Plasma
# 安装 Xorg 基础 (Wayland 会话已包含在 plasma-wayland-session 中)
sudo pacman -S xorg-server xorg-xinit mesa
# 安装完整的 KDE Plasma 桌面及其 Wayland 会话
sudo pacman -S plasma plasma-wayland-session kde-applications sddm
# 安装常用工具
sudo pacman -S konsole kate dolphin
# 安装中文字体
sudo pacman -S noto-fonts-cjk noto-fonts-emoji ttf-wps-fonts wqy-microhei adobe-source-han-sans-cn-fonts
sudo fc-cache -fv # 刷新字体缓存
# 安装 Intel 集成显卡驱动 (通常 mesa 已足够,此包提供 legacy Xorg 配置)
sudo pacman -S xf86-video-intel
# (可选) 设置 KDE Plasma 默认为中文界面 (在 SDDM 登录后,系统设置里更改更安全)
# echo "export LANG=zh_CN.UTF-8" >> /home/[yourusername]/.bashrc # 仅影响该用户的终端和部分应用
# KDE 的系统级语言设置在 `/etc/locale.conf` 的 `LANG`,用户级在系统设置里更改。
# 修复 Surface Type Cover 键盘背光控制
echo "options surface_kbd led_autosuspend=2" | sudo tee /etc/modprobe.d/surface_kbd.conf
sudo mkinitcpio -P # 重新生成 initramfs 使内核模块参数生效
启用必要系统服务
# 启用 SDDM 显示管理器 (登录界面)
sudo systemctl enable sddm
# NetworkManager 在基础安装阶段应已启用,确认一下
sudo systemctl enable --now NetworkManager
# (可选) 启用蓝牙
sudo systemctl enable --now bluetooth
# (可选) 启用 CUPS 打印服务
sudo systemctl enable --now cups
重启进入桌面
sudo reboot
配置中文输入法 (Fcitx5)
- 安装输入法框架和引擎
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki fcitx5-material-color # 框架、中文引擎、词库、皮肤 - 配置环境变量 (针对 Wayland 和 Xorg)
- 编辑用户文件
~/.pam_environment(如果不存在则创建):GTK_IM_MODULE DEFAULT=fcitx QT_IM_MODULE DEFAULT=fcitx XMODIFIERS DEFAULT=\@im=fcitx SDL_IM_MODULE DEFAULT=fcitx GLFW_IM_MODULE=ibus # 某些游戏需要此项 - 或者在
~/.xprofile(仅Xorg) 或~/.config/environment.d/im.conf(推荐,适用于Wayland和Xorg) 中添加:export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
- 编辑用户文件
- 在 KDE 设置中配置 Fcitx5
- 进入
系统设置>区域设置>输入法。 - 取消勾选
可用输入法下的仅使用默认输入法。 - 点击
添加输入法,搜索并添加Fcitx5。 - 点击
配置附加组件,找到Pinyin引擎进行详细设置 (如云拼音、简繁体切换等)。 - 配置
快捷键(如切换输入法、切换简繁体)。 - 重启 Plasma 会话 (注销再登录) 或重启电脑生效。
- 进入
- (可选) 浏览器触控板手势支持
- 对于 Microsoft Edge 或 Google Chrome/Chromium,在启动命令添加参数以启用 Wayland 和 IME 支持:
# 修改桌面快捷方式或命令行启动参数 microsoft-edge-stable --enable-features=UseOzonePlatform,VaapiVideoDecodeLinuxGL --ozone-platform=wayland --enable-wayland-ime google-chrome-stable --enable-features=UseOzonePlatform,VaapiVideoDecodeLinuxGL --ozone-platform=wayland --enable-wayland-ime
- 对于 Microsoft Edge 或 Google Chrome/Chromium,在启动命令添加参数以启用 Wayland 和 IME 支持:
系统维护
- 定期更新系统:
sudo pacman -Syu - 清理未使用的包和缓存:
sudo pacman -Sc # 清理未安装包的缓存 sudo pacman -Qtdq | sudo pacman -Rns - # 删除无依赖的孤立包 (谨慎操作) sudo paccache -rk2 # 保留最近2个版本的已安装包缓存 (需要 paccache, pacman-contrib包提供)
⚠️ 五、风险与注意事项
-
恢复 Windows
- 如需重装 Windows,必须使用官方镜像制作的 U 盘。
- 重装 Windows 会覆盖 Linux 引导。修复方法:使用 Windows 安装盘启动,进入命令提示符执行
bootrec /fixmbr和bootrec /fixboot(可能还需bcdboot),或使用 Linux Live USB 重新安装 GRUB。
-
硬件兼容性限制
- 摄像头: Surface Pro 4 的摄像头在 Linux 下功能受限 (
libcamera提供基础支持),兼容性和稳定性不如 Windows。 - 休眠/睡眠: 从休眠 (
hibernate) 或深度睡眠唤醒可能不稳定。建议:- 优先使用挂起 (
suspend/sleep)。 - 彻底禁用休眠:
sudo systemctl mask sleep.target suspend-then-hibernate.target hibernate.target hybrid-sleep.target
- 优先使用挂起 (
- Windows Hello 红外传感器面部识别: 不支持。
- Surface Pro 4 的合盖/开盖传感器需要 linux-surface 内核的完整支持:
- 确认已安装 linux-surface:
pacman -Qs linux-surface - 如果未安装,安装:
sudo pacman -S linux-surface linux-surface-headers - 检查是否加载了相关模块:
lsmod | grep -E "surface|hid" - 确保以下模块已加载:
surface_aggregator surface_aggregator_registry surface_hid_core - 如果缺少,手动加载:
sudo modprobe surface_aggregator sudo modprobe surface_hid_core - 更新 mkinitcpio.conf:
sudo nano /etc/mkinitcpio.conf - 添加模块:
MODULES=(... surface_aggregator surface_aggregator_registry surface_hid_core ...) - 重新生成 initramfs:
sudo mkinitcpio -P
- 确认已安装 linux-surface:
- 摄像头: Surface Pro 4 的摄像头在 Linux 下功能受限 (
-
建议阅读
- Arch Linux 中文维基百科 (首要参考)
- linux-surface Wiki (Surface 设备特定问题)
💎 未尽事项/高级配置
启用 Secure Boot (复杂,可选)
- 必要性: 增强安全性,但配置繁琐。Surface 设备关闭 Secure Boot 除了开机有红色警示条外不影响主要功能。
- 参考:
- ArchWiki: Unified Extensible Firmware Interface/Secure Boot
- ArchWiki: GRUB - Shim-lock
- 核心步骤:使用
shim-signed(AUR),创建 Machine Owner Key (MOK),签名内核 (linux-surface)、GRUB 模块和 ZFS 模块 (如使用),在 UEFI 中注册 MOK。过程复杂且易出错。
Surface Pen 与触摸屏高级设置
- 文件:
/etc/iptsd.conf - 关键设置: 避免笔悬停时误触发触摸。
## ## Ignore all touch inputs if a stylus is in proximity. ## DisableOnStylus = true # 确保设置为 true - 压感笔记软件推荐: Xournal++
- 更多绘图板软件: 参考 ArchWiki: Graphics tablet
磁盘加密 (LUKS)
- 如需全盘加密,需在分区阶段规划。参考 ArchWiki: Dm-crypt/Encrypting an entire system 和 linux-surface Disk Encryption (涉及 TPM2 + Secure Boot 集成)。