Fedora Silverblue 这两年真的太火了,尤其是对于那些不想折腾 rpm-ostree、喜欢原子化更新系统的人来说,它简直是福音。但说实话,刚装完的时候,我一度觉得它有点“飘”——桌面响应偶尔卡顿,GNOME 的动画有时候掉帧,甚至偶尔还会遇到个莫名其妙的依赖冲突。
不过,经过几个月的深度使用和反复调优,我总结出了一些真正能提升体验的“隐藏技巧”。今天就把这些压箱底的经验分享出来,帮你把 Silverblue 从“能用”变成“丝滑”。
1. 优化 GNOME Shell 的性能:别再无视这个了
很多人装了 Silverblue 后,发现 GNOME 的动画在某些场景下会有轻微的卡顿,尤其是在切换窗口或者打开应用时。这通常不是硬件问题,而是 GNOME Shell 的一些默认设置不太适合日常使用。
首先,我们可以检查一下 GNOME Shell 的渲染问题。虽然 Silverblue 本身优化得不错,但有时候某些扩展或者默认配置会导致性能下降。
我们可以用一个简单的命令来查看 GNOME Shell 的当前性能状态:
gnome-shell --version
如果版本比较新,但体验不佳,可以考虑安装 GNOME Tweaks(虽然 Silverblue 默认可能没装)来调整一些动画和特效。不过,在 Silverblue 中,我们更推荐通过修改配置文件来优化,而不是随便装东西。
一个被很多人忽略的技巧是调整 Mutter(GNOME 的窗口管理器)的性能。你可以尝试在终端运行以下命令来查看当前的渲染后端:
gsettings get org.gnome.mutter experimental-features
如果启用了某些实验性功能(比如 overlay-architecture 或者 x11-tiling),可能会导致不稳定。建议先关闭它们,看看性能是否有提升:
gsettings set org.gnome.mutter experimental-features "['allow-tiling']"
当然,这些实验性功能虽然强大,但不一定稳定。如果你追求丝滑,建议只保留 allow-tiling 这个比较稳定的选项,其他全部关闭。
另外,如果你发现某些应用打开时会有明显的延迟,可以尝试禁用 GNOME Shell 的某些效果。比如,禁用“缩放”效果(虽然很多人喜欢这个效果,但它确实会消耗资源):
gsettings set org.gnome.desktop.interface enable-apps-animation false
2. 使用 Flatpak 缓存优化:让应用启动更快
Silverblue 的核心优势是 Flatpak,但 Flatpak 应用启动慢、占用空间大一直是被诟病的问题。其实,我们可以通过一些配置来优化 Flatpak 的性能。
首先,确保你的 Flatpak 是最新版本的。有时候旧版本的 Flatpak 会有性能问题:
flatpak update
然后,你可以尝试清理 Flatpak 的缓存,释放空间并提高启动速度:
flatpak uninstall --unused
这个命令会删除那些不再需要的运行时和扩展,通常能释放好几个 GB 的空间。
还有一个经常被忽视的技巧是 预取(Prefetch)。Flatpak 默认不会预取应用,但你可以手动启用这个功能。不过,更简单的方法是确保你的 Flatpak 仓库是最新的:
flatpak remote-ls --refresh
如果你发现某些特定应用启动特别慢,可以尝试为这个应用单独禁用某些扩展或者调整其权限。比如,如果你经常用 Firefox,可以禁用其不必要的扩展,从而提高启动速度。
3. 调整系统服务:减少后台噪音
Silverblue 的原子化更新虽然安全,但有时候后台服务会占用不少资源。我们可以通过调整 systemd 服务来减少这些开销。
首先,看看哪些服务是占用资源较多的:
systemd-analyze blame
这个命令会列出所有启动时间较长的服务。你可以重点关注那些你不需要的服务。
比如,如果你不需要蓝牙功能,可以禁用蓝牙服务:
systemctl --user disable --now bluetooth.service
同样的,如果你不需要打印服务,也可以禁用它:
systemctl --user disable --now cups.service
另外,GNOME 的搜索功能(Tracker)有时候会占用大量 CPU 和磁盘 I/O。如果你不常用 GNOME 的搜索,可以禁用它:
systemctl --user disable --now tracker-miner-fs.service
systemctl --user disable --now tracker-miner-apps.service
systemctl --user disable --now tracker-extract.service
这样可以让系统更加轻量,响应更快。
4. 优化磁盘性能:ZFS 或 Btrfs 的调优
Silverblue 默认使用 Btrfs 文件系统。Btrfs 本身性能不错,但默认的一些设置可能会导致性能下降,尤其是在 SSD 上。
首先,检查你的 Btrfs 文件系统是否正常挂载了 noatime 和 compress=zstd 等优化选项:
mount | grep btrfs
你应该能看到类似这样的输出:
/dev/sda2 on / type btrfs (rw,noatime,compress=zstd:1,ssd,space_cache=v2,subvolid=5,subvol=/)
如果没有 noatime 或 compress=zstd,你可以手动修改 /etc/fstab 文件来添加这些选项:
sudo vi /etc/fstab
找到你的 Btrfs 分区行,在挂载选项中添加 noatime,compress=zstd,然后重新挂载:
sudo mount -o remount /
另外,Btrfs 的 碎片整理 也会影响性能。你可以使用 btrfs filesystem defrag 命令来整理碎片:
sudo btrfs filesystem defrag -r /
这个命令会对整个根分区进行碎片整理,注意这需要一些时间,但能让系统读写更快。
5. 常见坑点排查:遇到问题别慌
尽管 Silverblue 已经非常稳定,但有些坑点还是需要提前知道的。
坑点一:rpm-ostree 更新失败
这是 Silverblue 用户最常遇到的问题之一。有时候 rpm-ostree upgrade 会失败,提示依赖冲突或者下载中断。
解决方法是先检查一下当前的状态:
rpm-ostree status
如果显示 Deployment count: 1 且没有失败的部署,那可能是网络问题。可以尝试清除缓存并重新更新:
sudo rpm-ostree cleanup --reboot
sudo rpm-ostree upgrade
如果还是有依赖冲突,可以尝试使用 --dry-run 模式来预览哪些包会有冲突:
sudo rpm-ostree upgrade --dry-run
坑点二:Flatpak 应用无法启动
有时候 Flatpak 应用安装后无法启动,通常是权限或者运行时问题。
首先检查一下应用的日志:
flatpak run --command=bash <app-id>
比如,如果你用 Firefox 有问题,可以运行:
flatpak run --command=bash org.mozilla.firefox
然后在里面手动启动应用,看看报错信息。
另外,确保你的 Flatpak 运行时是最新的:
flatpak update
如果还是不行,可以尝试删除并重新安装这个应用:
flatpak uninstall <app-id>
flatpak install <app-id>
坑点三:GNOME 扩展不兼容
Silverblue 使用最新的 GNOME 版本,有些旧版的扩展可能不兼容。如果你发现某些扩展导致系统卡顿或者崩溃,可以尝试禁用它们:
gnome-extensions list
然后禁用有问题的扩展:
gnome-extensions disable <extension-name>@some-domain
或者,更新到最新版本:
gnome-extensions update
总结
Fedora Silverblue 作为一个“开箱即用”的原子化系统,其实已经非常优秀了。但通过上述这些隐藏技巧,你可以让它更加丝滑,减少不必要的卡顿和冲突。
记住,优化是一个持续的过程,不要一次搞太多,每做完一步都测试一下效果。如果你在某个环节遇到问题,欢迎在评论区留言,我们一起讨论!
希望这些技巧能帮到你,让 Silverblue 真正成为你日常使用的主力系统。毕竟,Linux 的魅力就在于此——不断探索,不断进化。
