回环设备-loop

回环设备 (loop device) 是一种特殊的虚拟设备, 它允许将文件视为块设备, 并在其上创建文件系统. 回环设备的作用是将一个文件映射为一个虚拟块设备, 从而使文件可以像硬盘分区或设备一样使用.

回环设备的名称中包含 “loop” 是因为它的实现方式中使用了循环 (loop) 的概念. 当创建回环设备时, 它会在内核中创建一个循环链表, 其中每个节点表示一个回环设备实例. 每个回环设备实例可以与一个文件相关联, 使该文件被视为设备上的数据.

设置一个文件为回环设备

使用 losetup (loop setup) 命令.

将文件与一个回环设备关联

1
losetup /dev/loop0 /path/to/file

解除回环设备的关联

1
losetup -d /dev/loop0
  • -d, --detach

显示当前活动的回环设备

1
losetup -a
  • -a, --all

显示回环设备上的文件系统信息

1
losetup -O ext4 /dev/loop0
  • -O, --output

挂载一个回环设备到一个目录

1
mount /dev/loop0 /mnt

取消挂载:

1
umount /mnt

对一个 loop 设备进行分区操作

注意分区结束后, 需要让系统加载分区表, 以获取分区信息:

1
2
3
4
5
6
$ partprobe /dev/loop1
$ lsblk /dev/loop1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop1 7:1 0 2G 0 loop
├─loop1p1 259:0 0 500M 0 part
└─loop1p2 259:1 0 500M 0 part

创建 loop 设备

若没有 loop 设备存在, 可手动创建:

1
sudo mknod /dev/loop0 b 7 0
  • mknod: 是用于创建字符设备或块设备的命令. 设备文件是在 /dev 目录中表示硬件或虚拟设备的文件
  • /dev/loop0: 是要创建的设备文件的路径
  • b: 这个参数指定要创建一个块设备 (block device)
  • 7: 这是设备的主设备号 (major number). 在 Linux 中, loop 设备的主设备号是 7, 它标识了设备驱动程序
  • 0: 这是设备的次设备号 (minor number). 对于第一个 loop 设备, 次设备号为 0

回环设备-loop
http://example.com/2024/03/08/回环设备-loop/
作者
Jie
发布于
2024年3月8日
许可协议