在Gnome磁盘实用工具中可见的小型快照循环设备,或者Snap Ubuntu Core的功能是什么?

我刚刚意识到使用gnome-disk-utility(3.18.3.1)时,我的16.04安装中出现了几个小型循环设备。
详细来说:
- 78 MB 循环设备(/var/lib/snapd/sn_ntu-core_352.snap -> /dev/loop0) - 76 MB 循环设备(/var/lib/snapd/sn_ntu-core_216.snap -> /dev/loop1) - 79 MB 循环设备(/var/lib/snapd/sn_ntu-core_423.snap -> /dev/loop2) - 705 KB 循环设备(/var/lib/snapd/snaps/tpad_12.snap -> /dev/loop3) - 684 KB 循环设备(/var/lib/snapd/snaps/tpad_11.snap -> /dev/loop5) - 705 KB 循环设备(/var/lib/snapd/snaps/tpad_13.snap -> /dev/loop6)
显示gnome-disk-utility的图像。

enter image description here

我的问题如下:
- 这些循环设备有什么用途? - 这在16.04中是预期的行为吗? - 我可以删除它们吗?如果可以,如何删除(只需卸载)? - 删除下面提到的2个已安装的snaps(tpad和ubuntu-core)是否存在风险?
更新
已安装的snaps
根据snap list命令,我确实安装了以下内容:
- tpad(1.8.1) - ubuntu-core(16.04.1)
我记得我曾经尝试过使用snaps,但我不确定是否安装了这两个snaps,或者它们是预先/自动安装的。
tpad是一个带有类似GUI界面的终端文本编辑器,我手动安装了它,但由于我不使用它,我现在通过sudo snap remove tpad命令将其删除了。结果是指向tpad的2个循环设备在gnome-disk-utility中消失了。
所以 - 在当前的情况下,我仍然安装了一个名为ubuntu-core的snap,但我不知道它是用来做什么的。这个特定snap的摘要是:
The ubuntu-core OS snap

这可能是一个错误。 - d a i s y
2可能是这个错误。Snapd留下了所有那些丑陋的循环设备。而且在每个df命令中都有它们。 - Pablo Bianchi
@PabloBianchi 即使我卸载了Snap软件包,它们是否会占用实际的硬盘空间? - a06e
@PabloBianchi 这个错误被标记为WONTFIX。真可惜,因为它非常糟糕(被忽视且处于破旧状态)。 - Erik Bennett
4个回答

每个单独的快照都是一个只读的squashfs文件系统镜像。为了访问这些镜像中的文件,snapd会将安装的每个快照版本挂载到/snap目录下。
因此,挂载的循环设备列表实际上包括您已安装的快照,并且是snapd正常运行的一部分。您不应该尝试删除它们。如果您真的不希望它们存在,那么您可以删除相应的快照。
各种工具旨在显示所有挂载的文件系统,包括回环设备,这就是为什么您会看到它们。我见过的第一个常见守护程序是以这种方式维护大量和可变的回环挂载点的,这确实影响了这些工具的用户界面。也许最终我们会看到这些工具默认隐藏回环挂载点。

你可以通过执行命令来删除旧的核心文件。
sudo snap remove core --revision <number>

手动。

很抱歉,这种方式无法解决这个问题! - Ads20000
如何列出标签<number>df中的"/dev/loop2"是编号2吗? - Peter Krauss
我成功的方法是删除随着时间增长而变得庞大的快照缓存。这导致了所有不必要的循环设备的移除。删除快照缓存的命令是sudo apt purge snapd更多信息可以在这里找到 - https://unix.stackexchange.com/questions/590319/is-it-safe-to-delete-these-snaps - pyronic

如果您不使用 Snaps,那么可以像卸载其他软件一样将其卸载。 Ubuntu Core 是其他 Snaps 运行所需的 Snap。 在“gnome-disk-utility”中看到 Snaps 的可见性可能是不希望的,但这是 Snaps 工作方式的副作用。

6snap ubuntu-core无法使用sudo snap remove ubuntu-core命令移除 -> 错误:无法移除"ubuntu-core":snap "ubuntu-core"不可移除。我已经删除了snapd软件包,因为我将不再使用snap,但磁盘工具中的3个snap循环设备仍然存在。 - dufte
以上可能是一个已经修复的错误:我刚刚从Ubuntu 19.04(服务器)的新安装中删除了snapd,并且core快照也因此被删除。 - zwol

两种使用脚本的方法:
最好和简单的方法:
sudo fdisk -l | sed -e '/ \/dev\/loop/,+5d'

而且还有一种有趣的极客方式(用于学习sed、IFS等):
# Copies output to var x: 
x=`sudo fdisk -l`

# Tranform new lines in @@@
y=`sed ':a;N;s/\n/@@@/g' <<< "$x"`

# Inform linux the new separator
IFS='@@@'
         
fo=0  # A beautiful flag to "found" dev/sda

for a in $y
  do
  if [[  "$a" == *"/dev/sda"* || $fo == 1  ]]; then
    fo=1  # Yes, we found
    echo -e "$a"
  fi
  done
# Just do add a line separator above:
echo ''