早上起来,打开电脑,看着那个熟悉的灰色圆圈转啊转,鼠标像被胶水粘住了一样,心里是不是咯噔一下?对于很多 Linux 初学者,尤其是从 Windows 转过来或者刚开始折腾 Pop!_OS 的朋友来说,这种“系统卡顿”简直就是一场噩梦。我见过太多人被这个问题折磨得想重装系统,结果重装完还是老样子。
别急,今天咱们不整那些虚头巴脑的理论,就直接干。咱们要把 Pop!_OS 从“卡成 PPT”的边缘拉回来。这篇文章就是给你准备的“急救包”,咱们分三步走:先搞定最头疼的 Nvidia 驱动问题,再学学怎么把驱动“退”回到能用版本,最后给系统做个大扫除,把那些垃圾文件全扔出去。
先别慌,搞清楚你的显卡到底怎么回事
在动手之前,你得先知道你的电脑里装着什么。很多人一看到卡顿就想着“重装驱动”,结果装完更卡了。为什么?因为可能根本就不是驱动的问题,或者是装错了版本。
Pop!_OS 对 Nvidia 的支持其实做得相当不错,尤其是它自带的 ISO 镜像里就集成了专有驱动。但问题往往出在“更新”上。Linux 的内核(Kernel)和驱动(Driver)就像是 shoes 和 feet,大小得刚好才行。内核一更新,驱动要是没跟上,或者两者版本不匹配,显卡可能就“罢工”了,表现为画面撕裂、卡顿、甚至黑屏。
咱们先用命令看看当前到底是什么情况。打开终端(Terminal),输入以下命令:
lspci | grep -i nvidia
这一行命令会列出你电脑上所有的 Nvidia 显卡信息。比如你可能会看到:
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)
这说明你有一张 GTX 1050 Ti 移动版显卡。别光看这个,还得看看现在系统里装的是不是正确的驱动:
ubuntu-drivers devices
或者更直接一点,用 Pop!_OS 自带的工具:
nvidia-smi
如果这个命令能跑起来,并且能看到你的显卡型号和驱动版本(在右上角),那说明驱动至少是装上的。但如果跑出来一堆错误,或者根本看不到显卡,那就真的有问题了。
驱动装错了?那就降个级试试
这是 most 人遇到的坑:你装了最新的驱动,结果系统崩了或者卡成狗。这时候,第一反应不是去官网下载最新驱动,而是——降级。
为什么?因为 Linux 社区里有个“黄金法则”:除非你有明确需求,否则别用最新的驱动。 最新的驱动往往带着未修复的 bug,而稍微旧一点、稳定一点的版本,反而是经过无数人验证过的“稳如老狗”的选择。
第一步:查看当前安装的驱动版本
dpkg -l | grep nvidia
你会看到一堆以 nvidia- 开头的包,后面跟着一长串版本号。比如:
ii nvidia-driver-535 535.104.05-0ubuntu0.22.04.1
ii nvidia-driver-550 550.54.14-0ubuntu0.22.04.1
假设你现在装的是 550,但系统卡得不行。咱们试试降级到 535。
第二步:安装旧版本驱动
在 Pop!_OS 里,安装驱动其实很简单,不用去 Nvidia 官网下那个 .run 文件(那个太容易出问题,新手千万别碰)。直接用 apt 装:
sudo apt install nvidia-driver-535 nvidia-settings-535 nvidia-prime-535
注意,版本号要根据你刚才 dpkg -l 看到的结果来填。如果你不确定哪个版本稳定,可以去 Arch Wiki 或者 Ubuntu 的 bug 报告里搜一下,看看哪个版本最近被人反馈“不卡了”。
第三步:卸载新版本,清理垃圾
装好旧版本后,记得把新版本卸掉,不然启动时可能会冲突:
sudo apt remove nvidia-driver-550 nvidia-settings-550 nvidia-prime-550
sudo apt autoremove
autoremove 这玩意儿很有用,它会帮你把那些“没人要了”的依赖包也一并清理掉。
第四步:更新 GRUB 并重启
这一步很容易被忽略,但至关重要:
sudo update-initramfs -u
sudo update-grub
sudo reboot
重启后,再输入 nvidia-smi 看看,如果显示的是 535 版本,而且系统流畅多了,那就恭喜你,降级成功。
如果降级没用?那就彻底重装
有时候,驱动可能已经被你之前的各种折腾搞乱了,装哪里都冲突。这时候,最干净的办法就是彻底卸载,然后从头来过。
彻底清理 Nvidia 相关包
sudo apt purge '~nnvidia'
sudo apt autoremove
sudo apt autoclean
~nnvidia 这个过滤条件很厉害,它会匹配所有以 nvidia 开头的包,不管是驱动、工具还是依赖。这一招能帮你把系统里残留的 Nvidia 垃圾全扫光。
重新安装推荐版本
Pop!_OS 有个好东西叫 pop-shop,但用命令行更靠谱。先看看推荐版本:
ubuntu-drivers devices
输出里会有 recommended 字样的包,那就是系统认为最适合你的版本。比如:
driver : nvidia-driver-535 - distro non-free
recommended
那就装它:
sudo apt install nvidia-driver-535 nvidia-settings nvidia-prime
装完后,同样要:
sudo update-initramfs -u
sudo reboot
Pop!_OS 专属神器:COSMIC 合成器优化
Pop!_OS 用的不是普通的 GNOME,而是基于 GNOME 魔改的 COSMIC 桌面环境(或者是基于 GNOME 46 的深度定制版)。这个环境对硬件加速的要求比较高,如果显卡驱动不行,卡顿就会很明显。
咱们可以试试手动关闭一些不必要的特效,看看能不能缓解卡顿。
关闭硬件加速的测试
有时候,驱动本身没问题,是 Pop!_OS 的某个特效和驱动起了冲突。你可以试着在启动时禁用硬件加速:
- 重启电脑,在 GRUB 菜单(启动菜单)出现时,按
e键编辑启动项。 - 找到以
linux开头的那一行,在quiet splash后面加上nomodeset。 - 按
F10启动。
如果加上 nomodeset 后系统变得流畅了,那就说明是显卡驱动在“模式设置”阶段出了问题。这时候,你可能需要尝试内核参数调整,或者换一个内核版本试试。
Pop!_OS 支持多内核,你可以在启动菜单里选择不同的内核版本。比如,从 6.8 换到 6.5 或者 6.1 LTS,有时候旧内核反而更稳定。
系统变卡,除了驱动,还有可能是“垃圾太多”
搞定了驱动,如果还是卡,那大概率是系统里堆满了垃圾文件。Linux 用户有个坏习惯,就是不爱清理。时间一长,APT 缓存、旧内核、日志文件能把硬盘塞满,硬盘满了,系统能快吗?
清理 APT 缓存
这是最简单的一步,但也是最多人忽略的:
sudo apt clean
这个命令会清空 /var/cache/apt/archives/ 目录,也就是你下载安装包时留下的那些 .deb 文件。你可能不知道,这个目录里可能堆积了几个 G 的安装包。清完后,你可以用 du -sh /var/cache/apt 看看还剩多少。
清理旧内核
Pop!_OS 每次内核更新,都会保留旧版本,以防新内核出问题。但这玩意儿留着没用,还占空间:
sudo apt autoremove --purge
这会帮你卸载那些“不再被任何包依赖”的旧内核和驱动。装完后,你可以用 uname -r 看看当前正在用哪个内核,确保别把正在用的给卸了。
清理系统日志
日志文件也是个大户:
sudo journalctl --vacuum-size=100M
这行命令会把系统日志压缩到 100M 以内。如果你觉得 100M 还是太多,可以改成 50M 甚至 20M。默认情况下,journal 可能会占用几个 G 的空间。
清理用户缓存
每个用户的缓存目录里也藏着不少垃圾:
rm -rf ~/.cache/thumbnails/*
rm -rf ~/.cache/pip/*
rm -rf ~/.cache/npm/*
thumbnails 是图片缩略图缓存,pip 和 npm 是 Python 和 Node.js 的包管理器缓存。这些文件夹随着时间推移,会越来越大。
磁盘空间告急?找出谁在偷空间
有时候,你觉得空间不够,但不知道是哪个文件夹占的。这时候,得用工具扫描一下。
使用 ncdu 扫描磁盘
sudo apt install ncdu
sudo ncdu /
ncdu 是个交互式磁盘分析工具,界面像终端里的文件浏览器。你可以用它一步步深入,看看是哪个目录占用了最多的空间。比如,你可能会发现 /home/yourname/.local/share/Trash(回收站)里躺着几百个 G 的垃圾文件,或者 /var/log 里有巨大的日志文件。
清理 Snap 缓存
如果你装了 Snap 包,Snap 的缓存也很占空间:
sudo rm -rf /var/lib/snapd/cache/*
Snap 包每次更新都会保留旧版本,这些旧版本堆在 /var/lib/snapd/snaps/ 里,日积月累,能占几十 G。
一些隐藏的性能优化技巧
除了清理垃圾,还有一些小设置能帮你的 Pop!_OS 跑得更顺。
启用 ZRAM 压缩内存
Pop!_OS 默认已经启用了 ZRAM,但你可以检查一下它是否在正常工作:
cat /proc/swaps
如果看到 /dev/zram0,那就没问题。ZRAM 会把内存的一部分压缩后当虚拟内存用,比直接交换到硬盘快得多。如果你的内存够大(16G 以上),这招效果不明显;但如果只有 8G,这招能救命。
调整 Swappiness 值
Swappiness 控制着系统把数据从内存交换到磁盘的倾向。默认值是 60,对于 SSD 来说,可以适当调低,减少交换频率:
sudo sysctl vm.swappiness=10
为了让这个设置重启后依然生效,可以把它加到 /etc/sysctl.conf 里:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
禁用不必要的启动项
很多软件会把自己加到启动项里,每次开机都自动运行,拖慢速度。你可以用以下命令查看:
ls ~/.config/autostart/
把那些你不需要的 .desktop 文件删掉或者移到别处。比如,你可能根本不需要某个云盘的同步客户端开机就启动。
总结:别怕,一步步来
Pop!_OS 卡顿,十有八九是驱动问题,其次是垃圾文件太多。咱们的解决思路就是:先诊断,再降级,最后清理。
- 诊断:用
lspci和nvidia-smi搞清楚显卡和驱动状态。 - 降级:如果最新驱动不行,就装个稍微旧一点的稳定版本。
- 清理:用
apt clean、autoremove、ncdu等工具把系统里的垃圾扫一遍。
记住,Linux 不像 Windows,它不会“自动变慢”,除非你折腾了太多东西。保持系统干净,选择合适的驱动版本,Pop!_OS 会是你最流畅的桌面体验之一。
最后,送大家一句话:遇事不决,先重启;重启不行,降级驱动;降级不行,清理垃圾。 这三招下来,99% 的卡顿问题都能解决。祝你玩得开心!
