Go to main content
マニュアルページ セク ション 1M: シ ステム管理コマン ド

印刷ビューの終了

更新: 2016年12月6日
 
 

lofiadm(1M)

名前

lofiadm - lofi を使用してブロックデバイスとして使用可能なファイルを管理する

形式

/usr/sbin/lofiadm [-b 
block_size] [-u user:
group] -a | -r file
 [device]
/usr/sbin/lofiadm -l [-b
 block_size] [-u 
user:group] -a 
file
/usr/sbin/lofiadm -l [-b
 block_size] [-u 
user:group] -r 
file [device]
/usr/sbin/lofiadm -c 
crypto_algorithm [-b block_size] [
-u user:group] 
-a file | -r [
device]
/usr/sbin/lofiadm -c 
crypto_algorithm -l [-b 
block_size] [-u user:
group] -a file
/usr/sbin/lofiadm -c 
crypto_algorithm -l [-b 
block_size] [-u user:
group] -r file [
device]
/usr/sbin/lofiadm -c crypto_algorithm -k raw_key_file [-b 
block_size] [-u user:
group] -a | -r file [device]
/usr/sbin/lofiadm -c crypto_algorithm -T token_key [-b 
block_size] [-u user:
group -a | -r file [device]
/usr/sbin/lofiadm -c crypto_algorithm -T token_key
     -k wrapped_key_file [-b 
block_size] [-u user:
group] -a | -r file [device]
/usr/sbin/lofiadm -c crypto_algorithm -e [-b 
block_size] [-u user:
group] -a file [device]
/usr/sbin/lofiadm -C algorithm [-s segment_size] file
/usr/sbin/lofiadm -d file | device
/usr/sbin/lofiadm -U file
/usr/sbin/lofiadm [ file | device]
/usr/sbin/lofiadm -r device]

説明

lofiadmlofi (ループバックファイルドライバ) を管理します。lofi を使用すると、ファイルをブロックデバイスに関連付けることができます。関連付けられたファイルは、ブロックデバイスからアクセスできます。これはファイルになんらかのファイルシステムのイメージ (CD-ROM イメージなど) が含まれている場合に役立ちます。ファイルシステムのマウント、検査、または修復用の標準のシステムユーティリティーでそのブロックデバイスを使用できるからです。fsck(1M) および mount(1M) を参照してください。

lofiadm を使用して、ファイルをループバックデバイスとして追加したり、そうした関連付けを削除したり、現在の関連付けに関する情報を表示したりします。

通常の読み取り/書き込みループバックデバイスと取り外し可能ループバックデバイスの 2 種類のループバックデバイスを作成できます。これらの相違は次のとおりです。

第 1 に、通常のループバックデバイスからは、その有効期間中にファイルの関連付けを解除することはできません。これに対し、取り外し可能ループバックデバイスからはファイルの関連付けを解除することができ、それによって空のループバックデバイスと見なされるようになります。関連付けを解除したあとで、別のファイルを関連付けることができます。取り外し可能デバイスからファイルの関連付けを解除するには、eject(1) を使用するようにしてください。

第 2 に、通常のループバックデバイスとそれに関連付けられたファイルの間には 1 対 1 のマッピングが存在します。これに対し、1 つのファイルを同時に複数の取り外し可能ループバックデバイスに関連付けることができます。

第 3 に、通常のループバックデバイスは書き込み可能です。取り外し可能ループバックデバイスは読み取り専用です。

さらに、ループバックデバイス (書き込み可能または取り外し可能) の作成時に –l を使用した場合、ラベル付きの書き込み可能または取り外し可能なループバックデバイスを作成できます。/dev/[r]lofi/ x デバイスリンクを取得する代わりに、ラベル付きループバックデバイスの場合、/dev/[r]dsk/cxdx[p|s] x が生成され、そこからディスクイメージファイル上のパーティションまたはスライスにアクセスできます。

利用可能な lofi デバイスの数は、zone.max-lofi rctl により制限されます。これは、大域ゾーンで zonecfg(1M) を使用すると設定できます。zone.max-lofi については、resource-controls(5) を参照してください。

暗号化オプションと圧縮のオプションの両方をコマンド行に指定することはできません。また、暗号化されたファイルをあとで圧縮することも、圧縮されたファイルをあとで暗号化することもできません。

大域ゾーンでは、大域ゾーンデバイス、およびシステムのほかの非大域ゾーンにより所有されるすべてのデバイスの両方で lofiadm を使用できます。

オプション

サポートしているオプションは、次のとおりです。

–a | –r file [device]

–a が指定された場合は通常のループバックデバイス、–r が指定された場合は取り外し可能ループバックデバイスとして、file を追加します。

device が指定されていない場合、存在しないデバイスが 1 つ選択されます。

device が指定されている場合、lofiadm はそれを file に割り当てようとします。–a が指定された場合、device は存在してはならず、存在すると lofiadm は失敗します。–r が指定された場合、device が存在し、それが空の取り外し可能ループバックデバイスでないとき、lofiadm は失敗します。

–b block_size

このオプションは、ループバックデバイスの作成時に、ディスクイメージのブロックサイズを指定するために、–a または –r オプションとともに使用する必要があります。

–u user: group

指定したファイルへのアクセスに使用するユーザーとグループ。ユーザーは、ユーザー名または数値のユーザー ID で指定できます。グループは、グループ名または数値のグループ ID で指定できます。–u オプションは –C および –U オプションでサポートされていません。

–C {gzip | gzip-N | lzma}

指定された圧縮アルゴリズムでファイルを圧縮します。

gzip 圧縮アルゴリズムでは、オープンソースの gzip コマンドと同じ圧縮が使用されます。gzip のレベルを値 gzip-N を使用して指定できます。この N は 6 (高速) または 9 (最大圧縮率) です。現在、数値を指定しない gzip は、gzip-6 (gzip コマンドのデフォルトでもある) に相当します。

lzma は、LZMA (Lempel-Ziv-Markov) 圧縮アルゴリズムを表します。

圧縮済みのファイルに書き込むことも、圧縮済みのファイルを読み取り/書き込みでマウントすることもできません。

ファイルに複数のデバイスが現在関連付けられている場合、ファイルによる削除は失敗します。この場合は、デバイスによる削除を使用してください。

–d file | device

関連付けられたブロックデバイスがビジー状態ではない場合は、file または device 名で指定された関連付けを削除し、ブロックデバイスの割り当てを解除します。

–l

このオプションは、ラベル付きループバックデバイスを作成するために、–a または –r オプションとともに使用する必要があります。ラベル付きループバックデバイスを作成する場合、デバイスパスはユーザーが指定することはできません。

–s segment_size

圧縮するファイルの分割に使用するセグメントサイズ。segment_size は整数で、512 の倍数です。

–U file

圧縮済みのファイルを圧縮解除します。

ファイルが暗号化されている場合は、次のオプションを使用します。

–c crypto_algorithm

暗号化アルゴリズムを選択します。アルゴリズムはディスクイメージに格納されていないため、暗号化が有効な場合はアルゴリズムを指定する必要があります。

–e–k–T のいずれも指定されていない場合、lofiadm は 8 文字以上のパスフレーズの入力を求めます。PKCS#5 PBKD2 を利用した対称暗号化鍵の取得には、パスフレーズが使用されます。

–k raw_key_file | wrapped_key_file

raw またはラップされた対称暗号化鍵へのパス。PKCS#11 オブジェクトも –T オプションを使って指定される場合、そのオブジェクトにより鍵がラップされます。–T が指定されていない場合、raw の鍵が使用されます。

–T token_key

暗号化または鍵ファイルのラップ解除に使用される PKCS#11 トークン内の鍵。

–k も指定されている場合、–T でラップを解除する鍵を特定します。この鍵は RSA 秘密鍵である必要があります。

–e

一時的な暗号化鍵を生成します。–e–r とともに使用することはできません。

–r [device]

空の取り外し可能ループバックデバイスを作成します。あとでそのデバイスにファイルを関連付けることができます。

device が指定されていない場合、存在しないデバイスが 1 つ選択されます。

device が指定されている場合、lofiadm はそれを選択しようとします。device は存在してはならず、存在すると lofiadm は失敗します。

オペランド

次のオペランドがサポートされています。

crypto_algorithm

aes-128-cbcaes-192-cbcaes-256-cbcdes3-cbcblowfish-cbc のいずれか。

device

ブロックデバイス device と関連付けられたファイル名を表示します。

引数が指定されていない場合、現在の関連付けのリストを一覧表示します。ファイル名は有効な絶対パス名である必要があります。

ファイルが追加されると、root による読み取りまたは書き込みのためにファイルが開かれます。すべての制限が適用されます (NFS 上のルートアクセスの制限など)。ファイルは、関連付けが削除されるまで開かれたままになります。ブロックデバイスが使用されるまでファイルは実際にアクセスされないため、ブロックデバイスが読み取り専用で開かれた場合はファイルに書き込まれません。

ファイルにアクセスできない場合、ファイル名の前に疑問符 (?) が付いて表示されることがあります。または、現在のコンテキストでパスを取得できない場合、2 つの疑問符 (??) で表示されます。あるいは、デバイスが空の取り外し可能ループバックデバイスの場合、ファイル名はダッシュ (-) で表示されることがあります。

file

file に関連付けられているすべてのブロックデバイスを表示します。

raw_key_file

raw 対称暗号化鍵に使用する、適切な長さ (単位はビット) のファイルへのパス。

token_key

PKCS#11 トークンオブジェクト。書式は次のとおりです。

token_name:manufacturer_id:serial_number:key_label

鍵ラベル以外はすべてオプションであり、空でもかまいません。たとえば、鍵ラベル MylofiKey のみを使ってトークンオブジェクトを指定するには、次のように記述します。

-T :::MylofiKey
wrapped_key_file

–T で指定された RSA 秘密鍵を使ってラップされた対称暗号化鍵を含むファイルへのパス。

使用例 1 既存の CD-ROM イメージのマウント

CD を作成する前に、Solaris がイメージを認識することを確認する必要があります。lofi を使用すればイメージをマウントでき、これが機能するかどうかを確認できます。

この例では、インターネットからダウンロードした Red Hat 6.0 CD の既存の CD-ROM イメージ (sparc.iso) をマウントします。これはインターネットから入手した mkisofs ユーティリティーで作成されました。

次のように lofiadm を使用して、これにブロックデバイスを接続します。


# lofiadm -a /home/mike_s/RH6.0/sparc.iso
/dev/lofi/1

lofiadm はデバイスを選択し、デバイス名を標準出力に表示します。次のコマンドを実行して、lofiadm を再度実行できます。


# lofiadm
Block Device     File                           Options
/dev/lofi/1      /home/mike_s/RH6.0/sparc.iso   -

または、次のコマンドを実行して一方の名前を指定し、もう一方の名前を要求できます。


# lofiadm /dev/lofi/1
/home/mike_s/RH6.0/sparc.iso

mount コマンドを使用してイメージをマウントします。

# mount -F hsfs -o ro /dev/lofi/1 /mnt

Solaris がイメージを認識することを確認します。

# df -k /mnt
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/lofi/1           512418  512418       0   100%    /mnt 
# ls /mnt
./            RedHat/       doc/          ls-lR         rr_moved/ 
../           TRANS.TBL     dosutils/     ls-lR.gz      sbin@ 
.buildlog     bin@          etc@          misc/         tmp/ 
COPYING       boot/         images/       mnt/          usr@ 
README        boot.cat*     kernels/      modules/ 
RPM-PGP-KEY   dev@          lib@          proc/

Solaris は CD-ROM イメージをマウントし、ファイル名を認識できます。イメージが正しく作成されたため、確信をもって CD-ROM を作成できます。

最終ステップとして、イメージのアンマウントおよび切り離しを行います。

# umount /mnt
# lofiadm -d /dev/lofi/1
# lofiadm
Block Device             File             Options

使用例 2 ファイル上の UFS ファイルシステムの作成

UFS ファイルシステムをファイル上に作成すると、特にテストスイートに新しいファイルシステムが必要な場合に便利です。テストスイートのためだけにディスクをパーティションに再分割することは手間がかかりますが、その必要はありません。lofi を使用するとファイルに newfs を実行できます。

ファイルを作成します。

# mkfile 35m /export/home/test

作成したファイルをブロックデバイスに接続します。newfs に必要な文字デバイスも取得するため、newfs は次のようになります。

# lofiadm -a /export/home/test
/dev/lofi/1
# newfs /dev/rlofi/1
newfs: construct a new file system /dev/rlofi/1: (y/n)? y
/dev/rlofi/1:   71638 sectors in 119 cylinders of 1 tracks, 602 sectors
        35.0MB in 8 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 9664, 19296, 28928, 38560, 48192, 57824, 67456,

ufs はファイル全体を使用できない場合があります。ファイルシステムをマウントおよび使用します。

# mount /dev/lofi/1 /mnt
# df -k /mnt
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/lofi/1            33455       9   30101     1%    /mnt
# ls /mnt
./           ../          lost+found/
# umount /mnt
# lofiadm -d /dev/lofi/1
使用例 3 UNIX ファイル上の PC (FAT) ファイルシステムの作成

次に示す一連のコマンドは、FAT ファイルシステムを UNIX ファイル上に作成します。ファイルは lofiadm によって作成されたブロックデバイスに関連付けられています。

# mkfile 10M /export/test/testfs
# lofiadm -a /export/test/testfs
/dev/lofi/1
Note use of rlofi, not lofi, in following command.
# mkfs -F pcfs -o nofdisk,size=20480 /dev/rlofi/1
Construct a new FAT file system on /dev/rlofi/1: (y/n)? y
# mount -F pcfs /dev/lofi/1 /mnt
# cd /mnt
# df -k .
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/lofi/1            10142       0   10142     0%    /mnt
使用例 4 既存の CD-ROM イメージの圧縮

次の例では、既存の CD-ROM イメージ (solaris.iso) を圧縮し、イメージが圧縮されたことを確認してから、圧縮を解除します。

# lofiadm -C gzip /export/home/solaris.iso

次のように lofiadm を使用して、これにブロックデバイスを接続します。

# lofiadm -a /export/home/solaris.iso
  /dev/lofi/1

マップされたイメージが圧縮されたかどうかを確認します。

# lofiadm
Block Device      File                            Options
/dev/lofi/1       /export/home/solaris.iso        Compressed(gzip)
/dev/lofi/2       /export/home/regular.iso        -

圧縮されたイメージをマップ解除して、圧縮を解除します。

# lofiadm -d /dev/lofi/1
# lofiadm -U /export/home/solaris.iso
使用例 5 暗号化 UFS ファイルシステムをファイル上に作成する

この例は、前述の UFS ファイルシステムの作成例に似ています。

ファイルを作成します。

# mkfile 35m /export/home/test

ファイルをブロックデバイスに接続して、ファイルイメージの暗号化を指定します。このコマンドの結果、文字デバイスが取得されます。この文字デバイスは、あとで newfs により使用されます。

# lofiadm -c aes-256-cbc -a /export/home/secrets
Enter passphrase: My-M0th3r;l0v3s_m3+4lw4ys!           (not echoed)
Re-enter passphrase: My-M0th3r;l0v3s_m3+4lw4ys!        (not echoed)
/dev/lofi/1

# newfs /dev/rlofi/1
newfs: construct a new file system /dev/rlofi/1: (y/n)? y
/dev/rlofi/1:   71638 sectors in 119 cylinders of 1 tracks, 602 sectors
       35.0MB in 8 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 9664, 19296, 28928, 38560, 48192, 57824, 67456,

マップされたファイルシステムは、暗号化が有効であることを示します。

# lofiadm
Block Device    File                     Options
/dev/lofi/1     /export/home/secrets     Encrypted

ファイルシステムをマウントおよび使用します。

# mount /dev/lofi/1 /mnt
# cp moms_secret_*_recipe /mnt
# ls /mnt
./           moms_secret_cookie_recipe    moms_secret_soup_recipe
../          moms_secret_fudge_recipe     moms_secret_stuffing_recipe
lost+found/  moms_secret_meatloaf_recipe  moms_secret_waffle_recipe
# umount /mnt
# lofiadm -d /dev/lofi/1

以後、不正な鍵または不正な暗号化アルゴリズムを使用してファイルシステムをマップしようとしても失敗します。

# lofiadm -c blowfish-cbc -a /export/home/secrets
Enter passphrase: mommy                                (not echoed)
Re-enter passphrase: mommy                             (not echoed)
lofiadm: could not map file /root/lofi: Invalid argument
# lofiadm
Block Device    File                    Options
#

暗号化なしでファイルシステムのマップを試みると成功します。ただし、ファイルシステムをマウントして使用しようとしても失敗します。

# lofiadm -a /export/home/secrets
/dev/lofi/1
# lofiadm
Block Device    File                     Options
/dev/lofi/1     /export/home/secrets     -
# mount /dev/lofi/1 /mnt
mount: /dev/lofi/1 is not this fstype
#
使用例 6 取り外し可能ループバックデバイスを操作する

次の例は、空の取り外し可能ループバックデバイスを作成し、ファイルを関連付けたあと、デバイスからそのファイルの関連付けを解除する方法を示しています。

lofiadm を使用して、空の取り外し可能ループバックデバイスを作成します。

# lofiadm -r
/dev/lofi/1

デバイスが作成されたことを確認します。

# lofiadm
Block Device      File                       Options
/dev/lofi/1       -                          Removable,Readonly

lofiadm を使用して、デバイスにファイルを関連付けます。

# lofiadm -r /export/home/solaris.iso /dev/lofi/1
/dev/lofi/1

関連付けが成功したことを確認します。

# lofiadm
Block Device      File                            Options
/dev/lofi/1       /export/home/solaris.iso        Removable,Readonly

eject を使用して、デバイスからファイルの関連付けを解除します。

# eject /dev/lofi/1

関連付け解除が成功したことを確認します。

# lofiadm
Block Device      File                            Options
/dev/lofi/1       -                               Removable,Readonly
使用例 7 ラベル付きループバックデバイスの使用

次の例は、ラベル付きの書き込み可能ループバックデバイスを作成する方法を示しています。

lofiadm を使用して、ラベル付きループバックデバイスを作成します。

# lofiadm -la /export/home/disk_image
/dev/dsk/c0d1p0

関連付けが成功したことを確認します。

# lofiadm
Block Device      File                            Options
/dev/dsk/c0d1p0   /export/home/disk_image         Labeled
使用例 8 指定したユーザーとグループでの lofi デバイスの作成

次の例は、指定したユーザーとグループでの lofi デバイスの作成方法を示しています。lofiadm を使用して、admin:staff によって所有されているファイル上にループバックデバイスを作成します。

# lofiadm -u admin:staff -a /export/home/disk_image

lofiadm を使用して、admin:staff によって所有されているファイル上にラベル付きループバックデバイスを作成します。

# lofiadm -u admin:staff -la /export/home/disk_image

環境変数

lofiadm の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生した。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

eject(1)fsck(1M)mount(1M)mount_ufs(1M)newfs(1M)zonecfg(1M)attributes(5)resource-controls(5)lofi(7D)lofs(7FS)

マウントされたファイルシステムを持つディスクデバイスに直接アクセスしないのと同様に、lofi ファイルドライバを使用する場合を除き、ブロックデバイスに関連付けられているファイルにアクセスしないようにしてください。また、そのようなアクセスを防止するために、適切なアクセス権をファイルに設定することもお勧めします。

lofiadm の機能およびこの機能を使用できるユーザーは、/dev/lofictl のアクセス権によって制御されます。読み取りアクセス権は、すべての関連付けの表示などのクエリー操作を可能にします。書き込みアクセス権は、関連付けの追加などの状態変更操作の実行に必要です。出荷時の /dev/lofictl は、root によって所有され、グループ sys に所属し、モード 0644 に設定されているため、すべてのユーザーがクエリー操作を実行できますが、変更操作はルートのみに可能です。管理者は、ユーザーに書き込みアクセスを与えて、関連付けの追加または削除を許可することができますが、これはセキュリティーホールになる可能性が非常に高いため、信頼できるグループにのみ与えるようにしてください。

ファイルシステムイメージをマウントする場合は、適切なマウントオプションを使用するように注意してください。特に、出所が不明な UFS イメージには、nosuid マウントオプションが適切な場合があります。また、UFS に loggingforcedirectio を使用する場合のように、いくつかのオプションは役に立たなかったり適切でなかったりすることがあります。互換性を保つために、raw デバイスもブロックデバイスと一緒にエクスポートされます。たとえば、newfs(1M) にはこれが必要です。

lofiadm (引数なし) の出力は、将来のリリースで変更される可能性があります。