本文主要讲述如何优化配置 U 盘上安装的 Debian/Linux 系统,使其适配各种硬件主机并优化 U 盘上性能。

在高速 U 盘上安装 Linux 系统随身携带使用是很方便的事情,这跟 LiveCD 模式不同,所有的系统配置和文件都是随盘保存,不会随着重启重置,也不会因为更换机器而产生差异。

硬件及系统选择

U 盘硬件直接影响系统性能,主要影响指标为容量以及主控性能。

建议使用 U 盘容量大于等于 128G,不管是文件系统大小还是从用户数据考量,过小的容量很容易造成磁盘满载,而 U 盘满载会导致 IO 等待 GC 处理而卡顿,影响体验和 U 盘寿命。

而 U 盘主控同样影响,尤其是主控的 4K 随机读写性能。市面上大多数 U 盘都是连续读写速度还不错,但是小文件 4K 性能很渣,而操作系统大多数都是受制于 4K 读写性能。这里推荐三星的三款 U 盘,Bar Plus,Fit Plus,Duo Plus,这三款 4K 性能都很优异(4K IO > 10MB/s)。

系统镜像方面,推荐使用最新内核 (5.6 以上)的系统,这样可以支持最新的硬件平台而保证在各个硬件上启动,而且新的内核已知问题更少。这里推荐使用 Debian testing(bullseye),镜像建议使用附带非自由驱动的 firmware-debian-testing-dvd DVD 镜像。

分区及挂载优化

U 盘相对于 SSD,存在天然的短板(读写性能差,没有磨损平衡等),所以选择合适的文件系统并适当配置,可以提升不少性能和寿命优化。

本文推荐 U 盘系统将根 / 和用户目录 /home 独立分区,并且采用 btrfs 文件系统。独立分区可以后期更换系统而保留用户文件数据,使用 btrfs 可以获得一些先进的文件系统特性,但是使用 btrfs 文件系统可能存在不稳定的情况,所以推荐安装的系统都尽量使用最新的内核(越新的内核中 btrfs 已知问题越少)。

在安装完系统后,建议修改 /etc/fstabbtrfs 文件系统的挂载参数如下:

1
defaults,noatime,compress=lzo,ssd_spread,autodefrag

其中:

  • noatime. 默认为 relatime,每次读取文件会更新文件访问时间而增加 IO,修改为 noatime 后可以大幅提升文件系统性能。
  • compress=lzo. 启用文件系统透明压缩(lzo 算法),可以缩小文件系统占用磁盘空间(在 / 上大概可以获得 30% 压缩,在 /home 上大约可以获得 20% 的压缩),提升 IO 吞吐量(因为压缩),而代价仅略微增加 CPU 消耗(btrfs压缩算法有 3 种,默认为zlib,压缩效果好,但是占用 CPU 高,lzo压缩快,CPU 占用低,zstd 在两者之间,但是 grub 目前还不支持 zstd 压缩 )。
  • ssd_spread. 启用 btrfs 为低速 SSD 设备的优化策略。
  • autodefrag. 启用在线整理,可以后台自动优化文件系统布局。

需要注意的是,在系统安装时,默认 btrfs 是不激活透明压缩的,在修改 /etc/fstab 后,透明压缩也只对新生成的文件生效,想要对已有文件进行压缩处理,需要执行如下指令:

1
2
sudo btrfs filesystem defragment -v -r /
sudo btrfs filesystem defragment -v -r /home/

想要粗略知道 btrfs 文件系统大小和占用磁盘大小,可以执行如下指令:

1
2
sudo btrfs filesystem show /
sudo btrfs filesystem show /home

源及驱动安装

针对 Debian testing 系统的更新源建议使用清华大学开源镜像站的源(国内):

1
2
3
4
5
6
7
# /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ testing main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ testing main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ testing-updates main contrib non-free
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ testing-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security testing-security main
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security testing-security main

建议在系统中安装如下额外驱动包,以适配广泛的平台硬件:

1
2
3
4
5
6
sudo apt-get install  \
        firmware-amd-graphics \
        firmware-brcm80211 \
        firmware-iwlwifi \
        firmware-misc-nonfree \
        firmware-realtek