Linux 中的loop设备

一、loop设备简介

1、概念

        loop设备是使用文件来模拟块设备的一种技术,可以像访问磁盘的方式一样对其进行访问,是一种伪设备

2、使用方式

        首先需要创建一个文件和loop设备连接,为用户提供替代块设备文件的接口,创建的文件通常也有一个完整的文件系统,所以也可以像磁盘一样被挂载

        即创建一个虚拟的磁盘设备,对它的所有读写操作都将被重定向到读写一个普通文件而非操作实际磁盘或分区的轨道和扇区

二、loop设备的创建

1、losetup命令

        losetup命令用来将一个文件或设备虚拟成块设备,也就是将一个文件或设备作为一个磁盘分区来使用,在将这个虚拟块设备挂载到文件系统后,便可以像使用普通磁盘一样来使用了

$ losetup --help

Usage:
 losetup [options] [<loopdev>]
 losetup [options] -f | <loopdev> <file>


-f --- 自动查找未使用的循环设备文件名
loopdev --- 指定的循环设备文件名
file --- 要映射的文件或设备名

        通过下面losetup -a命令可以查看所有的loop设备的状态

$ losetup -a
/dev/loop1: []: (/var/lib/snapd/snaps/gnome-system-monitor_184.snap)
/dev/loop19: []: (/var/lib/snapd/snaps/gnome-characters_795.snap)
/dev/loop27: []: (/var/lib/snapd/snaps/gnome-logs_119.snap)
/dev/loop15: []: (/var/lib/snapd/snaps/snapd_20671.snap)
......
/dev/loop24: []: (/var/lib/snapd/snaps/core22_1122.snap)
/dev/loop14: []: (/var/lib/snapd/snaps/gnome-3-34-1804_90.snap)
/dev/loop5: []: (/var/lib/snapd/snaps/gnome-42-2204_172.snap)

2、创建/卸载loop设备

(1)创建镜像文件

# dd if=/dev/zero of=test.img bs=128M count=1
1+0 records in
1+0 records out
134217728 bytes (128.0MB) copied, 1.138415 seconds, 112.4MB/s

(2)使用losetup将镜像文件虚拟成块设备

# losetup /dev/loop0 test.img 
[181086.884016] loop0: detected capacity change from 0 to 262144

          也可以使用下面自动查找未使用的loop设备命令

# losetup -f test.img 
[181143.406463] loop0: detected capacity change from 0 to 262144

(3)查看刚刚创建的设备

# losetup -a
/dev/loop0: 0 test.img

(4)挂载块设备

# mkfs.ext2 /dev/loop0
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
32768 inodes, 131072 blocks
6553 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
16 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
	8193, 24577, 40961, 57345, 73729

# mount /dev/loop0 /tmp

(5)经过此步骤,就可以通过/tmp目录,像访问真实块设备一样访问test.img

# cd /tmp/
# ls
lost+found

# echo hello > a.txt
# ls
a.txt       lost+found
# cat a.txt 
hello

(6)卸载删除

umount /tmp
losetup -d /dev/loop0

【参考博客】

[1] https://cloud.tencent.com/developer/article/2393236

[2] https://blog.csdn.net/scaleqiao/article/details/46777811

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux loop是一种虚拟设备,可以将一个文件或者一个分区映射为一个块设备。通过这种方式,可以在不需要实际硬件设备的情况下,模拟出一个块设备,从而方便进行各种测试和实验。Linux loop设备通常用于创建虚拟磁盘镜像、挂载ISO镜像文件、创建虚拟磁盘分区等操作。 ### 回答2: Linux loop 又称为 Linux 循环设备,是 Linux 操作系统的一个重要概念。循环设备是一种虚拟的块设备,它让用户可以将一个文件作为磁盘块设备来使用。 Linux loop 的工作方式类似于在物理磁盘上创建分区,但是实际上它是将一个文件“挂载”为磁盘设备。通过使用循环设备,用户可以创建并使用一个独立的文件系统,而无需对物理磁盘进行分区或格式化。 使用 Linux loop 的好处是,它提供了一种灵活且可移植的方法来管理文件系统。用户可以创建一个大小可调整的循环设备,并将其用作磁盘驱动器,然后将文件系统挂载在该循环设备上。 创建一个循环设备的步骤包括:首先,使用`dd`命令创建一个指定大小的文件;然后,使用`losetup`命令将该文件与循环设备关联;最后,使用`mkfs`命令将该循环设备格式化为所需的文件系统。 一旦循环设备创建成功,用户就可以像对待其他磁盘设备一样对待它,包括挂载、卸载、复制文件等等操作。当不再需要使用该设备时,用户可以使用`losetup -d`命令来断开与循环设备之间的关联。 总结来说,Linux loop 是一种将文件作为磁盘设备来使用的机制,它提供了一种灵活且可移植的方法来管理文件系统。通过使用循环设备,用户能够方便地创建、挂载和管理文件系统,而无需对物理磁盘进行分区和格式化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值