トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-Linuxでのディスクイメージファイルのマウント

技術的雑談-Linuxでのディスクイメージファイルのマウント


 環境

Linux kernel 2.4/2.6
確認したのはRedHat Enterprise Linux

 目的

  • ディスクにイメージファイルを作成し、ファイルシステムとしてマウントしたい

 手段

losetupコマンドを使います。

 手順


Linuxでは「loop device」というものが用意されています。
これはファイルなどがアタッチされることによって使用可能になる擬似デバイスです。
FreeBSDで言うところのvnconfigコマンドのようなものです。(今はmdconfigだっけか?)

linuxのloop deviceは/dev/loop*に0から始まる番号で存在します。

まず、イメージファイルを作成します。
仮にフロッピーと同じ大きさのディスクイメージが必要な場合、ddコマンドなどでその大きさのファイルを確保します。

$ dd if=/dev/zero of=''/some/where/in/filesystem''/test.img bs=1024 count=1440
※ ブロックサイズ、カウントは適当ですが、1.4MBより小さいとmsdosフォーマットはできないようです。

次にloopデバイスに関連付けます。
root権限が必要です。

# losetup /dev/loop0 ''/some/where/in/filesystem''/test.img

RHELの場合、なぁ〜んも言わずにコマンドが帰ってきます。
本当にloop deviceに関連付けられたのか確認しましょう。

# losetup /dev/loop0
/dev/loop0: [0308]:278601 (/some/where/in/filesystem/test.img) オフセット 0, no encryption

これが出てくればOKみたいです。
関連付けがされていない場合は、

# losetup /dev/loop1
loop: デバイス /dev/loop1 の情報を取得できません: そのようなデバイスやアドレスはありません

と表示されます。
ls -l /dev/loop1とやると一応ファイルとしては存在することになっているのですが、losetupからは「無いこと」になっているらしいです。

で、loop deviceにファイルが関連付けられたら、そこにファイルシステムを掘ります。

# mkfs -t vfat /dev/loop0

ここまでいけば後は普通にmountするだけです。

# mount -t vfat /dev/loop0 /mnt/test

ちなみに、普通は自動的に行われるみたいですが、lsmodで「loop」モジュールがロードされていないとダメです。

loop deviceが不要になったら、unmountしてから、

# losetup -d /dev/loop0

でファイルとの関連付けを削除できます。

尚、loop device作成の時に「-e」オプションをつけることでイメージファイルを暗号化したりできるみたいです。
試してないけど。

 履歴

2006/02/02 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2DLinux%A4%C7%A4%CE%A5%C7%A5%A3%A5%B9%A5%AF%A5%A4%A5%E1%A1%BC%A5%B8%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%A5%DE%A5%A6%A5%F3%A5%C8

技術的雑談へ戻る

最終更新日時:最終更新時間:2006年02月02日 14時15分07秒
トップページに戻る