问题, 如果在文件系统之上再创一个文件系统?
例如在ext3的文件系统上创建一个xfs的文件系统,可以通过回环设备loop, 我们经常通过 mount -o loop
来 mount一个iso文件
但mount 的选项总是ro的
1 | mount: /mnt: WARNING: device write-protected, mounted read-only. |
不仅如此, 先在当前文件系统dd出一个文件, 再绑定到loop设备上,然后mount 到某个目录后, 可以进行读写
访问
1 | [root@ha1 ~]# dd if=/dev/urandom of=file bs=1M count=2 |
绑定loop设备和挂载是由mount 一个命令完成的。
手动绑定loop
1 | [root@ha1 ~]# losetup -f |
这样只是将文件绑定了loop设备,需要再挂载到文件目录mount /dev/loop0 /mnt
1 | [root@ha1 ~]# ls /mnt/ |
losetup -f 可以返回第一个未被使用的loop设备名
创建loop设备
有的系统默认创建了 loop0 .. loop7 的块设备,有的则是在需要的时候创建,比如mount iso的时候发现没有loop设备,则会创建
- 手动创建loop设备通过
mknode
创建
1 | mknode /dev/loop0 b 7 0 |
- 如果8个loop0 .. loop8 设备都占用了, 可以再创建loop8
1 | $sudo mknod /dev/loop8 b 7 8 |
ps: /dev/loop* 是块设备