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

CSDN 2024-07-11 15:07:11 阅读 58

目录

前言1. 基本知识2. 内存满了2.1 清空2.2 扩增

3. 彩蛋

前言

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

1. 基本知识

<code>/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 :<code>sudo apt autoremove --purge snapd

在这里插入图片描述

再次查看:

在这里插入图片描述

2.2 扩增

1. 查看挂载文件:<code>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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。