losetup(8) loop デバイスの設定と制御を行う

書式

情報を取得する:

losetup loop_device

loop を削除する:

losetup -d loop_device

使用されていない最初 loop デバイスの名前を表示する:

losetup -f

loop デバイスを設定する:

losetup [{-e|-E} encryption] [-o offset] [-p pfd] {-f|loop_device} file

説明

losetup は loop デバイスを通常のファイルやブロックデバイスと接続/切断したり、 loop デバイスへの問い合わせを行うために用いられる。 引き数として loop_device が与えられた場合に限り、対応する loop デバイスの状態が表示される。

暗号化

-E または -e オプションのいずれか 1 つにより、 (暗号化・復号化やその他の目的で使う) 変換関数を指定することができる。 使いたい暗号化機能を指定する 2 つの仕組みがある。 番号で指定する方法と名前で指定する方法である。 暗号化機能を番号で指定する場合、 Linux カーネルがその番号の暗号化機能を知っていることを 確認しておかなければならない。 この暗号化機能は、たぶんカーネルへのパッチで提供される。 常に提供されている標準的な番号は、 0 (暗号化なし) と 1 (XOR 暗号化) である。 cryptoloop モジュールがロードされると (または組み込まれていると)、 このモジュールは番号 18 を使う。 cryptoloop は任意の暗号化タイプの名前を受け取り、 その暗号化を実行可能なモジュールを探す。 (よって、ユーザは -E オプションで 18 以外の番号を指定するか、 -e オプションで名前を指定すればよい。)

オプション

-d
指定した loop デバイスを対応するファイルやデバイスから切り放す。
-E encryption_type
指定された番号のデータ暗号化機能を有効にする。
-e encryption_name
指定された名前のデータ暗号化機能を有効にする。
-f
使用されていない最初の loop デバイスを見つける。 file 引き数が指定されている場合は、そのデバイスを使用する。 指定されていない場合は、loop デバイスの名前を表示する。
-o offset
データの開始地点を指定したファイルやデバイスの offset バイトに移動する。
-p num
パスフレーズを端末からではなく、番号 num のファイルディスクリプタから読み込む。

返り値

losetup は成功すると 0 を返し、失敗すると 0 以外を返す。 losetup に loop デバイスの状態を表示させる場合は、 デバイスが設定されていなければ 1 を、 デバイスの状態を決定できなくするようなエラーが起った場合は 2 を返す。

ファイル

/dev/loop0, /dev/loop1, ...   ループデバイス (major=7)

ローダブルモジュールを用いている場合は、 まず以下のコマンドによってモジュールをロードする必要がある。
# insmod loop.o

暗号化モジュールも必要かも知れない。

# insmod des.o # insmod cryptoloop.o

以下の一連のコマンドは loop デバイスの使用例である。

# dd if=/dev/zero of=/file bs=1k count=100 # losetup -e des /dev/loop0 /file Password: Init (up to 16 hex digits): # mkfs -t ext2 /dev/loop0 100 # mount -t ext2 /dev/loop0 /mnt ... # umount /dev/loop0 # losetup -d /dev/loop0

ローダブルモジュールを用いている場合は、 以下のコマンドによってモジュールを削除することができる。

# rmmod loop

制限

DES 暗号化は非常に遅い。一方 XOR は非常に弱い。