LOSETUP(8)

名前
losetup - 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 は非常に弱い。