linux losetup 命令
Linux losetup 命令用于配置循环设备。
循环设备可以将文件模拟为块设备,从而模拟整个文件系统,使用户能够将其视为硬盘、光驱或软驱等设备,并挂载为目录进行使用。
语法
losetup [-d][-e ][-o ][循环设备代号][文件]
参数说明:
- -d 释放指定的循环设备。
- -e 开启加密功能。
- -o 指定数据偏移量。
使用示例
(1)生成一个空的磁盘镜像文件,例如创建一个1.44M大小的软盘镜像
$ dd if=/dev/zero of=floppy.img bs=512 count=2880
(2)通过 losetup 将镜像文件虚拟为块设备
$ losetup /dev/loop1 floppy.img
(3)挂载该块设备到指定目录
$ mount /dev/loop0 /tmp
完成以上步骤后,即可通过访问/tmp目录来操作floppy.img文件,就像在使用真实的存储设备一样。
(4)卸载 loop 设备
$ umount /tmp $ losetup -d /dev/loop1
完整测试流程如下:
1. 首先生成一个 1G 的空白文件:
# dd if=/dev/zero of=loopfile.img bs=1G count=1 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 69.3471 s, 15.5 MB/s
2. 对该文件进行 ext4 格式化:
# mkfs.ext4 loopfile.img 。。。。
3. 使用 file 命令查看格式化后的文件类型:
# file loopfile.img loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a9dfb4a0-6653-4407-ae05-7044d92c1159 (extents) (large files) (huge files)
4. 准备挂载该文件:
# mkdir /mnt/loopback # mount -o loop loopfile.img /mnt/loopback
mount 命令配合 -o loop 参数可直接挂载 loopback 文件系统。
实际上,该命令等效于以下两条命令:
# losetup /dev/loop0 loopfile.img # mount /dev/loop0 /mnt/loopback
也就是说,mount -o loop 在底层已经自动完成了文件与 /dev/loop0 的绑定。
然而,第一种方法(mount -o loop)并非适用于所有情况。比如当我们需要对某个镜像文件进行分区并挂载其中一个子分区时,就必须采用 losetup 手动绑定的方式:
# losetup /dev/loop1 loopfile.img # fdisk /dev/loop1
6. 卸载挂载点:
# umount /mnt/loopback
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END