使用loop device.

Mar 06, 2015

loop device是一种虚拟设备, 可以关联文件把文件当作块状设备(block device)来使用.

loop device 位于 /dev/loopx. x 可以是 0~n 的数字.

当你的系统(比如ArchLinux)没有/dev/loop0的时候可以运行命令 modprobe loop. 因为比较新的内核中, loop device的支持是一个内核模块.

使用命令losetup /dev/loop0 /home/miku/disk.iso可以将文件disk.isoloop0 关联起来.此时我们就可以把/dev/loop0当作一个硬盘设备来使用了.

我们可以mkfs -t ext3 /dev/loop0来格式化这个文件.

也可以mount /dev/loop0 ./my-mount来挂载这个文件.

losetup -d /dev/loop0 可以取消这个关联.

可以用这个技巧做很多有趣的事情

  1. 学习 MBR 和 GPT 或者 btrfs等格式, 我们可以伪造人一大小的硬盘,并且直接用编辑器查看底层的硬盘数据组织.
  2. 写boot loader并挂载到虚拟机上.
  3. 在没有U盘或其他设备的情况下,制作镜像.