Pop OS电脑用久变卡升级后软件打不开新手照着做的系统保养与排错方法
如果你刚把 Pop!_OS 装好,打开终端觉得它像一辆新车;用了几个月,某天点图标转圈转半天,或者升级完某个软件直接闪退,这时候别慌。Linux 桌面不像有些系统那样“越用越需要清理注册表”,它的卡顿通常有迹可循,而且绝大多数时候,一条命令就能把问题定位清楚。下面我按新手能直接照做的顺序,把“变卡”和“升级后打不开”拆成具体场景,配上真实命令和解释。你不需要记住所有东西,遇到哪一步卡住,就停在那一步看输出。
先别急着删文件,看一眼“仪表盘”
电脑变慢,就像家里水管水流变小,可能是水源压力不够,也可能是管道里堵了水垢。在 Pop!_OS 里,我们第一步不是狂删文件,而是看一眼系统现在在忙什么。
打开终端,输入:
top
进来以后界面会不停刷新。按 Shift + P 按 CPU 排序,按 Shift + M 按内存排序。你会看到 %CPU、%MEM、RES 这几列。如果一个叫 systemd-journald 或 tracker-miner-fs 的进程长期占着 80% 以上的 CPU,那大概率是日志膨胀了,或者文件索引程序在后台疯狂扫描硬盘。
内存方面,Pop!_OS 默认会把空闲内存拿来缓存文件,所以 free -h 看起来“已用”很多其实是正常的。真正危险的是 Swap 频繁读写。跑一下:
swapon --show
cat /proc/sys/vm/swappiness
swappiness 默认通常是 60,对 SSD 来说偏高。这个值就像水龙头的流量阀门,数值越大,系统越急着把内存里的东西赶到硬盘上。SSD 一写就慢,整体会开始“顿”。新手可以直接改成 10~20:
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.d/99-pop-os.conf
第一行临时生效,第二行重启后也保持。改完不用重启,立刻就能感觉到响应变顺。
升级后软件打不开,错误信息藏在终端里
很多人一升级就慌,其实 Pop!_OS 的升级分两种:一种是 pop-upgrade 的大版本迁移,另一种是 apt upgrade 的日常包更新。大版本升级后,最容易出现的是“旧依赖被换掉”和“第三方仓库没跟着迁”。
图形界面点软件没反应时,别光盯着图标看。终端直接运行它,错误信息会比弹窗清楚十倍。比如你点 Chrome 没反应,试:
google-chrome
输出里如果出现类似:
error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
这就是缺共享库。装回去:
sudo apt update && sudo apt install -f
sudo apt install libxss1
apt install -f 会尝试修复之前中断的安装,很多升级后“半吊子”的包靠这一步就能恢复正常。
如果是 Flatpak 应用升级后闪退,常见原因是运行时(runtime)版本不匹配。Flatpak 的应用像打包好的集装箱,运行时像码头。码头升级了,旧箱子不一定能靠岸:
flatpak update
flatpak repair
flatpak uninstall --unused
repair 会重新校验运行时和应用的依赖关系,uninstall --unused 只清理已经没被任何应用引用的旧运行时,不会误删你正在用的东西。
Snap 的情况类似,但 Pop!_OS 官方更推荐 Flatpak。如果你之前装过 Snap 版本的软件,升级后也可能因为 snapd 服务没跟上而打不开:
sudo systemctl status snapd
sudo snap refresh
看到 active (running) 再刷新,比盲目重装靠谱。
日志和缓存,看不见的“灰尘”
Pop!_OS 的 systemd 日志默认会一直攒。时间久了,/var/log/journal 可能长到几个 G,甚至触发 systemd-journald 疯狂写入导致卡顿。这就像垃圾桶满了,清洁工还得绕路走。
手动清理一次:
sudo journalctl --vacuum-size=100M
sudo systemctl restart systemd-journald
然后写个自动清理规则,避免以后再堵:
sudo mkdir -p /etc/systemd/journald.conf.d
echo 'SystemMaxUse=100M' | sudo tee /etc/systemd/journald.conf.d/pop-cleanup.conf
sudo systemctl restart systemd-journald
以后日志超过 100M 就会自动淘汰最早的记录,不用你再操心。
用户级缓存也别忽视。很多应用把临时文件堆在 ~/.cache,比如浏览器、Spotify、VS Code 都会在这里留一堆东西。安全清理方式:
du -sh ~/.cache/* | sort -rh | head -20
这会列出占用最大的 20 个缓存目录。看到 thunderbird、chromium、pip、npm 这种,可以针对性删,比如:
rm -rf ~/.cache/thunderbird
rm -rf ~/.cache/pip
rm -rf ~/.cache/npm
别碰 ~/.cache/fontconfig 和 ~/.cache/mozilla 除非你明确知道它在干什么。字体缓存删了会导致字体渲染变慢甚至乱码,Mozilla 的缓存删了浏览器得重新下载大量资源。
Pop!_OS 自己的坑:驱动、桌面和内核
Pop!_OS 和其他 Ubuntu 系发行版最大的不同,是它自带 COSMIC 桌面和 System76 驱动的自动化管理。如果你用的是 NVIDIA 独显版本,升级内核后驱动经常需要重新编译。
检查当前驱动状态:
pop-drivers
这是 System76 专门写的驱动管理器。进去看看 NVIDIA 那一栏是不是显示 Installed 且版本和内核匹配。如果不匹配,选 Install 让它跑一遍 DKMS 编译。很多人升级后显卡驱动挂了,结果桌面渲染变成 CPU 软解,鼠标都拖出残影,其实不是系统老了,是驱动没跟上。
如果你是 AMD 显卡,Pop!_OS 默认用开源 amdgpu 驱动,一般不需要折腾。但如果你之前手动装过 mesa 测试版,升级后反而可能崩:
sudo apt remove --purge mesa-vulkan-drivers
sudo apt install mesa-vulkan-drivers
桌面环境本身也有缓存。COSMIC 的 Wayland session 偶尔会残留锁文件,导致登录后黑屏或图标不刷新:
rm -rf ~/.cache/cosmic
rm -rf ~/.config/cosmic
注销再登录,它会自动重建。别怕,这些只是 UI 偏好,不是你的文档和照片。
很多人不知道 /boot 分区会被旧内核塞满。升级几次后,残留的内核越来越多,启动菜单变长,甚至影响 GRUB 加载速度:
dpkg --list | grep linux-image
sudo apt autoremove --purge
保留最近 1~2 个内核就够。如果 autoremove 不敢删,手动指定:
sudo apt purge linux-image-5.15.0-xx-generic
sudo update-grub
注意版本号一定要和你当前用的不一样。当前内核可以用 uname -r 查看。删错了也没关系,只要不删当前运行的那个,系统还能正常启动。
让系统自己保持干净,比定期大扫除管用
与其每个月大扫除,不如让系统自己保持干净。几个小动作:
- 每周跑一次
sudo apt update && sudo apt upgrade,别攒着半年一起升。大版本跨度越大,依赖冲突概率越高。升级前先用pop-upgrade check看看有没有大版本推送,有就慢慢来。 - 安装软件优先用 Pop!_Shop 或官方源,少加 PPA。PPA 就像在小区里私自接水管,方便但容易和主网冲突,升级时最容易把依赖链搞断。
- 如果你用 VS Code、JetBrains 这类 IDE,它们会在后台建索引。项目文件夹太大时,把
.git、node_modules、build、target加入忽略列表,CPU 占用会明显下降。 - 浏览器标签页超过 20 个,Chrome/Firefox 的内存占用会指数级上升。Pop!_OS 的内存管理再好,也架不住一个标签吃 1G。Firefox 可以装
Auto Tab Discard,Chrome 可以用OneTab,把不看的标签暂时休眠。 - 定期备份。
timeshift是 Pop!_OS 自带的快照工具。在升级前跑一次:
万一升级翻车,恢复只需要 5 分钟。Timeshift 备份的是系统文件,不会动你的文档和照片,可以放心用。timeshift --create --comments "升级前备份"
自启服务和终极方案
如果你已经按上面的步骤排查过,Swap 正常、日志干净、驱动匹配、缓存清过,但系统依然每天越来越慢,那可能不是保养的问题,而是用户态配置积了太多历史包袱。比如多年累积的自启动服务、混乱的 .bashrc、多个桌面环境的冲突。
检查开机自启:
systemctl --user list-unit-files | grep enabled
把不需要的关掉:
systemctl --user disable 服务名
注意这里是 --user,只管你自己的账户,不会影响系统级服务。
如果实在理不清,备份家目录,重装一个干净的 Pop!_OS,再把配置导回去,是最省心的选择。Linux 的好处就是:系统盘和用户数据是分开的,重装不等于丢文件。把 /home/你的用户名 下的 Documents、Pictures、Downloads、.ssh、.gnupg 备份到外接硬盘或云盘,重装后拷回来就行。代码和项目建议用 Git 托管,比手动复制靠谱得多。
电脑用久了变卡,大部分时候不是它“老了”,而是后台某件事一直在偷偷干活。按上面的顺序走一遍,基本能把 90% 的常见问题解决掉。剩下的 10%,往往是硬件寿命到了,那时候再考虑换电池、加内存条,也不迟。
