【服务器管理】处理多出来的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
根据更深一步调研,snapdsnap运行所需的守护进程,卸载以后snap将无法使用。
由于目前完全不熟悉snap在系统里面意味着什么,也不知道无法使用以后会有什么问题,所以此处没有采用这个方案。

删除snap搞的某些文件

这个方案不能够清除全部的loop设备,只能一定程度上环节

  1. 首先切换到root用户,省得后面干什么都要加sudo
  2. 切换到snap目录:cd /snap
  3. 查看哪些是disable的:snap list --all
  4. 删掉disable的东西之后就好了一点:snap remove --revision [Rev] [Name]

不看loop

说到底这个问题是不想看到loop设备,在查看的时候添加参数也可以解决(虽然实际上没什么影响)

  1. lsblk改为lsblk | grep -v '^loop',效果就非常好

  2. df -h改为 df -x squashfs -h,效果也很好

posted @ 2022-04-28 21:28  TheError  阅读(482)  评论(0编辑  收藏  举报