Skip to the content.

loop device

测试:

sudo mount -o loop test.iso /mnt
dd if=/dev/null of=x.ext4 bs=1000M seek=100
mkfs.ext4 -F x.ext4
mkdir -p dir
sudo mount -t ext4 -o loop x.ext4 dir
sudo chown martins3 dir

sysfs 中的东西:

🧀  pwd
/sys/block/loop0/loop

block/loop0/loop🔒 🐶
 grep . *
autoclear:1
backing_file:/home/martins3/x.ext4
dio:0
offset:0
partscan:0
sizelimit:0

0xffffffff83003bdc in loop_init () at drivers/block/loop.c:2261

static const struct blk_mq_ops loop_mq_ops = {
	.queue_rq       = loop_queue_rq,
	.complete	= lo_complete_rq,
};

这个在 mount 过程中,总是出现的:

运行的路线基本

@[
        loop_queue_rq+0
        blk_mq_request_issue_directly+92
        blk_mq_issue_direct+140
        blk_mq_dispatch_queue_requests+296
        blk_mq_flush_plug_list+152
        __blk_flush_plug+248
        blk_finish_plug+64
        __iomap_dio_rw+552
        iomap_dio_rw+24
        ext4_file_write_iter+804
        vfs_write+548
        ksys_write+120
        __arm64_sys_write+36
        invoke_syscall.constprop.0+88
        do_el0_svc+72
        el0_svc+92
        el0t_64_sync_handler+268
        el0t_64_sync+408
]: 45241

loop 可以让 md 是基于 file 的,真神奇啊

简单来说,loop 就是让 mount 一个文件作为盘的,就像是 swap file 一样

原来容量是可以设置的

https://serverfault.com/questions/690192/why-is-my-loop-device-size-0

losetup –set-capacity /dev/loop0 blockdev –getsize64 /dev/loop0

可以主动将设备的容量设置为 0 吗?

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。