【服务器管理】处理多出来的loop设备
任务需求
某日为了确认服务器磁盘的使用情况,使用df -h
进行查看,发现存在成吨的loop
设备,并且挂载在/snap
目录下(并不清楚是什么东西)
磁盘占用情况
xxx@xxx:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 221G 0 221G 0%
tmpfs 45G 3.0M 45G 1%
/dev/sda4 916G 25G 845G 3%
tmpfs 221G 0 221G 0%
tmpfs 5.0M 4.0K 5.0M 1%
tmpfs 221G 0 221G 0%
/dev/loop0 2.7M 2.7M 0 100% /snap/gnome-system-monitor/169
/dev/loop1 768K 768K 0 100% /snap/gnome-characters/741
/dev/loop3 249M 249M 0 100% /snap/gnome-3-38-2004/99
/dev/loop2 248M 248M 0 100% /snap/gnome-3-38-2004/87
/dev/sdb 3.6T 483G 3.0T 14%
/dev/loop4 2.7M 2.7M 0 100% /snap/gnome-system-monitor/174
/dev/loop5 768K 768K 0 100% /snap/gnome-characters/761
/dev/sda1 285M 6.7M 278M 3%
/dev/loop6 640K 640K 0 100% /snap/gnome-logs/103
/dev/loop7 2.7M 2.7M 0 100% /snap/gnome-calculator/920
/dev/loop8 56M 56M 0 100% /snap/core18/2284
/dev/sda3 605G 186G 388G 33%
/dev/loop10 62M 62M 0 100% /snap/core20/1405
/dev/loop9 66M 66M 0 100% /snap/gtk-common-themes/1519
/dev/loop11 128K 128K 0 100% /snap/bare/5
/dev/loop12 219M 219M 0 100% /snap/gnome-3-34-1804/77
/dev/loop14 56M 56M 0 100% /snap/core18/2344
/dev/loop13 219M 219M 0 100% /snap/gnome-3-34-1804/72
tmpfs 45G 28K 45G 1%
/dev/loop15 66M 66M 0 100% /snap/gtk-common-themes/1515
/dev/loop16 44M 44M 0 100% /snap/snapd/15177
/dev/loop18 640K 640K 0 100% /snap/gnome-logs/106
/dev/loop20 2.5M 2.5M 0 100% /snap/gnome-calculator/884
/dev/loop21 45M 45M 0 100% /snap/snapd/15534
tmpfs 45G 0 45G 0%
/dev/loop19 62M 62M 0 100% /snap/core20/1434
tmpfs 45G 0 45G 0%
tmpfs 45G 0 45G 0%
又使用lsblk
进行了确认,确实有很多
点击查看代码
xxx@xxx:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 2.5M 1 loop /snap/gnome-system-monitor/169
loop1 7:1 0 704K 1 loop /snap/gnome-characters/741
loop2 7:2 0 247.9M 1 loop /snap/gnome-3-38-2004/87
loop3 7:3 0 248.8M 1 loop /snap/gnome-3-38-2004/99
loop4 7:4 0 2.5M 1 loop /snap/gnome-system-monitor/174
loop5 7:5 0 704K 1 loop /snap/gnome-characters/761
loop6 7:6 0 548K 1 loop /snap/gnome-logs/103
loop7 7:7 0 2.6M 1 loop /snap/gnome-calculator/920
loop8 7:8 0 55.5M 1 loop /snap/core18/2284
loop9 7:9 0 65.2M 1 loop /snap/gtk-common-themes/1519
loop10 7:10 0 61.9M 1 loop /snap/core20/1405
loop11 7:11 0 4K 1 loop /snap/bare/5
loop12 7:12 0 219M 1 loop /snap/gnome-3-34-1804/77
loop13 7:13 0 219M 1 loop /snap/gnome-3-34-1804/72
loop14 7:14 0 55.5M 1 loop /snap/core18/2344
loop15 7:15 0 65.1M 1 loop /snap/gtk-common-themes/1515
loop16 7:16 0 43.6M 1 loop /snap/snapd/15177
loop18 7:18 0 548K 1 loop /snap/gnome-logs/106
loop19 7:19 0 61.9M 1 loop /snap/core20/1434
loop20 7:20 0 2.5M 1 loop /snap/gnome-calculator/884
loop21 7:21 0 44.7M 1 loop /snap/snapd/15534
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 285M 0 part
├─sda2 8:2 0 242.2G 0 part
├─sda3 8:3 0 614.7G 0 part
└─sda4 8:4 0 931.3G 0 part
sdb 8:16 0 3.7T 0 disk
虽然完全不清楚都是什么东西,但是看着不是很舒服,尝试处理一下
处理过程
snap
能够确认的一点是,存在这么多loop
必然和snap
这个东西是有关系的,那么可以简单了解一下snap
是个什么:https://docs.snapcraft.io/snaps/metadata
A snap is a squashfs file carrying content and a bit of metadata that tells the system how to manipulate it. When installed the squashfs file is mounted read-only under
/snap/<snap name>/<revision>/
简而言之是一个SquashFS文件系统。然后每次搞文件的时候都会创建一个loop
做挂载,因此产生了这么多loop
设备
广为流传的卸载snapd
直接搜索此问题,最广为流传的方案是直接卸载snapd
。
根据更深一步调研,snapd
是snap
运行所需的守护进程,卸载以后snap
将无法使用。
由于目前完全不熟悉snap
在系统里面意味着什么,也不知道无法使用以后会有什么问题,所以此处没有采用这个方案。
删除snap搞的某些文件
这个方案不能够清除全部的loop
设备,只能一定程度上环节
- 首先切换到
root
用户,省得后面干什么都要加sudo
- 切换到
snap
目录:cd /snap
- 查看哪些是
disable
的:snap list --all
- 删掉
disable
的东西之后就好了一点:snap remove --revision [Rev] [Name]
不看loop
说到底这个问题是不想看到loop
设备,在查看的时候添加参数也可以解决(虽然实际上没什么影响)
-
lsblk
改为lsblk | grep -v '^loop'
,效果就非常好
-
df -h
改为df -x squashfs -h
,效果也很好