为什么所有快照都被安装并列为Ubuntu 18.04的块设备或分区?


19

从Ubuntu 18.04开始,运行lsblk显示16个快照循环(每个快照2-3次)。问题是,为什么将它们列为lsblk,fdisf-l和blkid的结果?

它从我需要查看的实际磁盘驱动器分区(即/ dev /分区)中造成了很多混乱。我知道这个问题据称存在重复,但是仅询问为什么每个快照都列出三个循环。我想知道为什么首先列出这些快照,并且声称的重复项无法回答这个问题(也许将这些标记为重复项的人可以通过解释为什么是重复项来帮助我)。从技术上讲,它们可以视为文件系统(我既未创建也未要求),但是它们妨碍了我感兴趣的/ dev /分区的信息输出。当fdisk -l输出3时,这将成为问题。 page +列表主要包含快照。

最近(1周旧)Ubuntu安装的输出,而我尚未安装任何快照:

$ lsblk  
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  
loop0    7:0    0  14.5M  1 loop /snap/gnome-logs/37  
loop1    7:1    0   2.3M  1 loop /snap/gnome-calculator/170  
loop2    7:2    0  86.6M  1 loop /snap/core/4486  
loop3    7:3    0  86.6M  1 loop /snap/core/4650  
loop4    7:4    0   1.6M  1 loop /snap/gnome-calculator/154  
loop5    7:5    0  14.5M  1 loop /snap/gnome-logs/34  
loop6    7:6    0   3.3M  1 loop /snap/gnome-system-monitor/36  
loop7    7:7    0   2.3M  1 loop /snap/gnome-calculator/178  
loop8    7:8    0    13M  1 loop /snap/gnome-characters/101  
loop9    7:9    0   3.7M  1 loop /snap/gnome-system-monitor/45  
loop10   7:10   0 139.5M  1 loop /snap/gnome-3-26-1604/64  
loop11   7:11   0   140M  1 loop /snap/gnome-3-26-1604/59   
loop12   7:12   0   3.7M  1 loop /snap/gnome-system-monitor/41  
loop13   7:13   0    21M  1 loop /snap/gnome-logs/25  
loop14   7:14   0  12.2M  1 loop /snap/gnome-characters/69  
loop15   7:15   0    13M  1 loop /snap/gnome-characters/96  
sda      8:0    0 298.1G  0 disk  
├─sda1   8:1    0   512M  0 part /boot/efi  
└─sda2   8:2    0 297.6G  0 part /  
sr0     11:0    1  1024M  0 rom  

(以上文本的补充屏幕截图):
screenshot.jpg

snap list显示了6个结果:

核心
gnome-3-26-1604
gnome-calculator
gnome-characters
gnome-logs
gnome-system-monitor

同时,gnome-disk-utility根本不显示任何快照,只显示了我的HDD和光盘驱动器。

如果将每个已安装的快照列为块设备(每次添加2-3次),效率将不高。我应该期待将来的更新来解决这个问题吗?

编辑:
fdisk-l还转储了很长的列表,其中包含这些“磁盘循环”的16个实例(磁盘/ dev / loop0,磁盘/ dev / loop1等,每个实例的详细信息我都不会在此处显示,因为它太长了)。这不是故意的行为,对吗?
blkid还列出了16个循环,如TYPE =“ squashfs”。至少能parted -l按预期工作,仅使实际磁盘分区不足。

我刚刚进行了测试,安装更多的快照确实为lsblk输出增加了更多。因此,根据可用的快照数量和安装的数量,fdisk,lsblk,blkid可能具有巨大的输出列表。


我认为您对这个问题的实际答案是在以下相关问题上:“快照程序包是squashfs文件系统。访问快照的唯一方法是将其装入。因此,是的,它们将始终被装入。” askubuntu.com/questions/842093/… 天哪,我希望他们不必被骑上
craq

Answers:


10

当您键入命令时

snap list 

您将获得实际安装的快照软件包的输出。原因是在更新snap软件包时,保留了旧版本(请参见snapcraft docu)

从snapcraft docu引用

然后,对于刚刚更新的快照版本,垃圾回收将删除并清除所有快照文件及其可写区域,这意味着系统上最多将存在两个版本的快照。这样可以节省磁盘空间,而不会影响将快照恢复到以前的已知良好状态的能力。

从您的系统中显式删除快照也将删除代码并清除所有先前版本的数据。

例如,您已经安装了多个版本的gnome-calculator

如果您只需要最新版本,则可以使用

sudo snap remove gnome-calculator --revision <verison to be placed>

使用命令

losetup -a 

向您显示已安装的卡扣(回路设备)

如果要删除双精度字母,请键入

sudo losetup -d /dev/loop<loopnumber>

由于所有旧版本都保存在/ var / lib / snapd / snaps文件中,因此这似乎是快照代码的错误。


1
sudo: remove: command not foundlosetup -d没有改变。
jordy

3
正确的代码sudo snap remove不是sudo remove。请修改您的答案。
jordy

8

从问题的内容中,您的问题是寻找一种方法来控制您尝试查看块设备时所看到的内容,而不是snap如何使用块设备进行操作。

我同意您所引用的fdisk -l和之间的区别parted -l。尽管fdisk显示了块设备的非常详细的输出,但是它显示了太多其他事情,这些都分散了您尝试看到的内容的注意力。

解析度

您可以使用lsblk格式的输出进行过滤。这样可以很好地产生干净的输出,就像您从gnome-disk-utility获得的输出一样。

$ lsblk -o name,mountpoint,label,size,fstype,uuid | egrep -v "^loop"

或者如您在问题中指出的那样:

$ sudo parted -l

对于df您问题中的命令,请使用:

$ df | egrep -v /dev/loop

3
我等了很长时间才有人提出确切的建议,这是lsblk的经过过滤的输出(而不是所有那些评论都将过高的输出视为正常和良好的辩护)。但是,我想避免这样做,只是因为平整而笔直的lsblk速度很快,易于记忆,并且在扣动干扰之前效果很好。我希望它恢复原样。希望,过多的输出只是一个可以解决的错误。
jordy

4
@danthonyd感谢您的感谢。我确信我理解了这个问题,并认为它值得在非盟信息数据库中考虑和回答。这是我长期以来一直在关注的问题。但是,问题不在于快照。问题出在fdisk开发人员身上。他们应该添加一种方法来过滤掉伪设备上的真实设备,以删除过多的输出并使其应用程序更易于管理,例如Gnome-disk-utility。没有人会fdisk用来管理他们的环路设备。(续)...
LD James

4
...(续)他们甚至不需要在fdisk输出中看到它。这就是Lostup和其他应用程序命令的目的。那么,如果您无法使用该工具进行管理,那么何必麻烦您展示它。fdisk设计中的此缺陷使partedlsblk之类的应用程序更加流行和用户友好。
LD James

1
谢谢。我今天将添加| egrep -v "^loop"到所有16.04 lsblk脚本中,以减少转换为18.04那天的维护。(仅供参考,我已经在今天之前对您的答案进行了投票)
WinEunuuchs2Unix

5

我也觉得这很烦人。似乎如果它们没有运行,则不应挂载或列出它们。您可以运行此命令以排除所有环路设备。

$ lsblk -e 7


1

如果使用系统监视器的快照版本,则将看到快照使用的所有文件系统以及所使用的文件系统。

一个简单的“修复”是从应用程序商店中卸载Gnome System Monitor。它是快照版本。

然后使用Synaptic软件包管理器从普通存储库安装Gnome系统监视器。这是普通版本,可以在根分区上安装一堆文件。真好!

当您启动Gnome System Monitor时,您将看到您所期待的一切。


大!这就是我想要的。命令是snap remove gnome-system-monitor(不需要sudo),然后是sudo apt install gnome-system-monitor(这次 sudo)。
PerlDuck

0

要仅显示不包括环回的安装,您还可以简单地执行以下操作:

lsblk -af |grep -sv loop

;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.