【Linux】详细分析/dev/loop的基本知识 | 空间满了的解决方法

本文介绍了当服务器内存满时,如何通过管理/dev/loop设备进行清空和扩增,包括删除不再需要的Snap软件包、扩增文件系统以及创建和操作新的loop设备。还提到Docker容器技术中loop设备的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

服务器一直down机,翻找日志文件一直找不到缘由,最终发现是挂载的内存满了,那本身这个文件就什么用呢?

1. 基本知识

/dev/loop是一种特殊的设备文件,用于将文件系统映射到一个文件上,形成一个虚拟的块设备。通常情况下,它用于挂载镜像文件或压缩的文件系统,例如ISO镜像、磁盘映像或squashfs文件系统

/dev/loop的作用是允许用户将文件系统挂载为一个磁盘分区,这样用户就可以像操作硬盘分区一样来访问其中的文件

  • 创建和管理 loop 设备:在 Linux 中,可以使用 losetup 命令来创建和管理 loop 设备,通过 losetup 命令,可以将文件与 loop 设备进行绑定或解除绑定,并管理 loop 设备的属性。

  • 挂载和卸载文件系统:一旦文件与 loop 设备绑定,就可以像挂载其他块设备一样,使用 mount 命令将文件系统挂载到指定的挂载点上,也可以使用 umount 命令将文件系统卸载

  • 使用 loop 设备创建虚拟磁盘:通过 loop 设备,可以轻松地创建虚拟磁盘。用户可以创建一个空文件,然后将其与 loop 设备绑定,并在其上创建文件系统,从而形成一个虚拟磁盘,用于存储数据。

  • 挂载镜像文件:将镜像文件挂载到文件系统中。例如,可以将 ISO 镜像文件挂载到 /dev/loop 上,以便浏览其内容或执行其中的程序

  • 容器技术:创建容器的根文件系统,Docker 等容器平台会使用 loop 设备来挂载容器镜像。

2. 内存满了

一共有两种方案,要么清空要么扩增

2.1 清空

df -h查看,发现/dev/loop系列的都满了
在这里插入图片描述

自动删除不再需要的 Snap 软件包以及它们的配置文件,并彻底清除 Snap 守护程序 snapd :sudo apt autoremove --purge snapd

在这里插入图片描述

再次查看:

在这里插入图片描述

2.2 扩增

1. 查看挂载文件losetup命令来查看loop设备挂载的哪个文件,相应进行扩增

2. 扩增文件dd if=/dev/loop1 bs=4M count=1024 >> /xx/yy/xx.img,( 4M * 1024 = 4096M )

3. 更新 loop 设备: losetup -c /dev/loop1

4. 更新 loop 设备: losetup -c /dev/loop1

3. 彩蛋

对于从无到有的新增,具体如下:

1. 检查可用设备losetup -a

2. 创建新的loop设备sudo mknod /dev/loop5 b 7 5。(b表示该设备是一个块设备,7表示主设备号,5表示次设备号。主设备号7用于loop设备,而次设备号表示具体的loop设备编号)

3. 将文件与新的loop设备关联sudo losetup /dev/loop5 /path/to/image.img

4. 挂载关联的文件系统sudo mount /dev/loop5 /mnt

如果后续需要使用新的挂载设备,具体如下:

sudo umount /mnt
sudo losetup -d /dev/loop5
sudo rm /dev/loop5
Filesystem Size Used Avail Use% Mounted on udev 32G 0 32G 0% /dev tmpfs 6.3G 7.1M 6.3G 1% /run /dev/nvme0n1p2 468G 449G 0 100% / tmpfs 32G 24M 32G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/loop0 128K 128K 0 100% /snap/bare/5 /dev/loop3 350M 350M 0 100% /snap/gnome-3-38-2004/140 /dev/loop4 56M 56M 0 100% /snap/core18/2846 /dev/loop6 74M 74M 0 100% /snap/core22/1722 /dev/loop10 66M 66M 0 100% /snap/gtk-common-themes/1519 /dev/loop16 350M 350M 0 100% /snap/gnome-3-38-2004/143 /dev/loop7 13M 13M 0 100% /snap/snap-store/1216 /dev/loop8 506M 506M 0 100% /snap/gnome-42-2204/176 /dev/loop15 12M 12M 0 100% /snap/kgraphviewer/23 /dev/loop13 13M 13M 0 100% /snap/snap-store/1113 /dev/loop12 439M 439M 0 100% /snap/kf5-5-110-qt-5-15-11-core22/3 /dev/loop18 64M 64M 0 100% /snap/core20/2434 /dev/loop19 92M 92M 0 100% /snap/gtk-common-themes/1535 /dev/nvme0n1p1 511M 6.1M 505M 2% /boot/efi /dev/sda 1.8T 1.5T 289G 84% /media/Data tmpfs 6.3G 20K 6.3G 1% /run/user/125 /dev/loop21 753M 753M 0 100% /snap/pycharm-community/439 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1002 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1020 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1022 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1018 /dev/loop14 45M 45M 0 100% /snap/snapd/23545 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1013 /dev/loop17 517M 517M 0 100% /snap/gnome-42-2204/202 /dev/loop9 74M 74M 0 100% /snap/core22/1748 /dev/loop20 64M 64M 0 100% /snap/core20/2496 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1016 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1008 /dev/loop5 56M 56M 0 100% /snap/core18/2855 /dev/lo
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值