ループバックデバイス

mount -o loop ...とか普段なんとなくつかっているがまとめ。

ループバックデバイス(Loopback device)とは

一般的なファイルを、あたかもハードディスクなどのブロック型デバイスであるかのように扱うための機能。
パソコン上で、イメージファイルを直接操作したい場合などに使う。

使い方

例えば、
ハードディスクのイメージファイルを任意のディレクトリにマウントすると、
イメージファイル内にあるファイルに対し、通常のファイルと同様の操作が行える。


↓ こんな感じ

ddコマンドでディスクイメージをファイルとして作成。

 $ dd if=/dev/zero of=./disk bs=1M count=1000


作成したファイルをフォーマット

 $ mkfs.ext3 disk


マウント

 # mount -o loop -t ext3 disk /mnt

作成したファイルがディレクトリにマウントされ、通樹のパーティションと同様にアクセスできるようになる。
書き込んだ内容はファイルにイメージとして保存される。


利用可能なループバックデバイスがあるか確認する方法

次のコマンドで現在利用可能なすべてのキャラクタデバイスとブロックデバイスを表示

 $ cat /proc/devices
.
.
.
Block devices:
  1 ramdisk
259 blkext
  7 loop
  8 sd
  9 md
.
.
.

左についている番号はメジャー番号といい、デバイスドライバの識別に使われる。


ループバックデバイスが足りなくなったら

カーネルのオプションにmax_loop=255とかつけたり、
モジュールのオプションをいじったりすればよい。

 # echo 'options loop max_loop=255' >/etc/modprobe.d/loopdev


(参考)
http://itpro.nikkeibp.co.jp/article/Keyword/20080118/291396/
http://www.itmedia.co.jp/help/tips/linux/l0171.html
http://perltips.twinkle.cc/linux/ubuntu/loopbackdevice/eucalyptus
http://d.hatena.ne.jp/KoshianX/20080712/1215867901