You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于lsblk显示多个snapd和core20挂载版本的疑问及清理咨询

关于lsblk显示多个snapd和core20挂载版本的疑问及清理咨询

嗨,我来帮你理清这个Snap旧版本挂载和清理的问题~

首先得说下为什么你会看到多个loop挂载:Snap的机制就是每个版本会单独以squashfs镜像的形式存储,当前在用的版本会通过current软链接指向,旧版本暂时保留是为了方便回滚,或者有些依赖它的应用还没更新。不过确实这些旧挂载会在lsblk里显示,看着有点烦,也占点资源。

针对你的两个问题,我分点说:

能不能阻止旧版本挂载?

其实那些被标记为disabled的旧版本理论上不会被自动挂载,但有时候可能因为系统残留或者某些小bug还挂着。如果遇到这种情况,你可以先手动卸载挂载点,比如:

sudo umount /snap/core20/1782

不过手动卸载只是临时的,最好的办法是直接移除旧版本,这样它们就再也不会被挂载了——毕竟留着不用的版本也没意义。

能不能手动删除旧的/snap/core20/1782这类目录?

绝对不建议手动删! 这些目录不是普通的文件目录,是Snap挂载的squashfs镜像设备。手动删除会破坏Snap的内部依赖关系,轻则导致Snap命令出错,重则影响所有基于Snap的应用运行,甚至没法回滚到稳定版本。一定要用Snap官方提供的命令来清理,安全又彻底。

正确的清理操作步骤

  1. 先查看所有已安装的Snap版本,找出那些标记为disabled的旧版本:
snap list --all

输出里会明确显示每个Snap包的所有版本状态,你要找的core20/1782和snapd/17954应该会标着disabled。

  1. 单独移除某个旧版本,比如移除core20的1782:
sudo snap remove core20 --revision=1782

同理,移除snapd的17954:

sudo snap remove snapd --revision=17954
  1. 要是想一次性清理所有未使用的旧版本,可以用这条命令自动处理:
sudo snap remove --purge $(snap list --all | awk '/disabled/{print $1,"--revision=" $3}')

它会自动筛选出所有disabled的版本并彻底移除。

额外小技巧:减少默认保留的旧版本数量

Snap默认会保留2个旧版本,如果你想进一步精简,可以修改配置让它只保留1个:

sudo snap set system refresh.retain=1

这样以后更新Snap时,只会留下最近的一个旧版本,减少空间占用和多余挂载。

操作前记得确认下这些disabled版本确实没被任何应用依赖(一般来说disabled就是没在使用的),放心操作就行~

备注:内容来源于stack exchange,提问作者loptap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:59:29