Solaris 2.x への移行

ファイルシステム管理コマンドの使用

SunOS 5.6 ソフトウェアで変更されたファイルシステム管理コマンドは次のとおりです。

ファイルシステムのマウントと autofs

マウント機能で大幅に変更されたのは、自動マウント autofs です。autofs プログラムは、たとえば cd(1)ls(1) を使用してディレクトリにアクセスするときに、自動的にそのディレクトリをマウントします。この機能にはファイル階層、CD-ROM とフロッピーディスクのファイルシステムなどが含まれます。

システムが実行レベル 3 に入ると、自動的に autofs が起動します。また、ユーザがシェルコマンド行から autofs を起動することもできます。

autofsmaps で指定されるファイルシステムと連係して動作します。これらのマップは NIS、NIS+、またはローカルファイルとして管理されます。autofs マップは特定のファイルに対していくつかのリモートのマウントポイントを指定できます。このようにして、サーバの 1 つがダウンしても、autofs は別のシステムからマウントを実行できます。それぞれのサーバに重み係数を割り当てて、マップの資源にどのサーバが適しているかを指定することができます。

autofs で一部のファイル階層をマウントできますが、マウントコマンドでもファイル階層をマウントできます。ディスクレスシステムは、/(ルート)、/usr/usr/kvm についてのエントリを /etc/vfstab ファイルの中に持っていなければなりません。共用ファイルシステムは常に使用できるようにしておく必要があるので、/usr/share のマウントに autofs を使用しないでください。

次の例では、mount コマンドを使用して /etc/vfstab ファイルに登録されているファイルシステムを手作業でマウントする方法を示します。

  1. マウントポイントを作成したいディレクトリに変更します。

  2. マウントポイントディレクトリを作成します。

  3. マウントポイントまたはブロック型デバイスのどちらかを指定します。 通常は、マウントポイントを指定する方が簡単です。その他の情報は、/etc/vfstab から読み込まれます。

  4. root になって、マウントコマンドを入力し、マウントポイントまたはブロック型デバイスのどちらかを指定します。

    通常は、マウントポイントを指定する方が簡単です。その他の情報は、/etc/vfstab から読み込まれます。


    # mount mount-point
    

    ファイルシステムがマウントされました。

    mount にオプションを指定して、または指定しないで各種のファイルシステムをマウントする方法については、Solaris のシステム管理を参照してください。

mount コマンドの変更

mount マウントコマンドの名前と書式の一部は、表 9-13 に示すように異なります。

表 9-13 mount コマンドの相違

SunOS 4.x 

SunOS 5.6 

mount

mount

mount -a

mountall

umount

umount

umount -a

umountall

exportfs

share

exportfs -u

unshare

showmount -a

dfmounts

showmount -e

dfshares

これらのコマンドの変更の詳細については、付録 A 「コマンドリファレンス」 を参照してください。

/cdrom/floppy の自動マウント

このリリースでは、取り外し可能な媒体がドライブに挿入されると、CD-ROM とフロッピーディスクのファイルシステムは、自動的に /cdrom/floppy にマウントされます。これらのファイルシステムは、ボリュームマネージャのデーモン vold(1M) で管理されているため、ユーザが自分でこれらのデバイスをマウントすることはできません。詳細については、「ボリュームマネージャの使用」 を参照してください。

/etc/vfstab ファイルのファイルシステム指定

SunOS 5.6 システムでは、システム起動時にマウントしたいファイルシステムを、/etc/fstab ファイルではなく、ユーザの /etc/fstab に指定する必要があります。/etc/vfstab の書式は /etc/fstab の書式とは異なります。/etc/vfstab ファイルの詳細については、/etc/vfstab ファイル」 を参照してください。

ファイルシステムの監視

表 9-14 はファイルとディレクトリの監視コマンドを示します。

表 9-14 ファイルとディレクトリ監視コマンド

コマンド 

提供される情報 

変更 (該当する場合) 

ls

ファイルの大きさ、作成日、パーミッション、所有者 

なし 

du

ディレクトリの合計サイズと内容 

なし 

df

ファイルシステム、ディレクトリ、またはマウントされた資源で占められるディスク空間。使用済みと未使用のディスク空間。 

SunOS 4.x の df コマンド の出力は、SunOS 5.6 の df コマンドとは多少異なる。 SunOS 5.6 の -k オプションを使用する出力は、SunOS 4.x の -k オプションの出力と似ている。SunOS 4.x の df -t filesystem は、指定された形式のファイルを表示する。一方、 SunOS 5.6 の df -t コマンドは、全リストを合計値付きで出力する。

quot

ユーザが所有するブロック数 

なし 

find

検索基準を満たすファイル名 

次の SunOS 4.x オプションは、SunOS 5.6 コマンドでは使用できない。-n cpio-device

cpio -c フォーマットでデバイスにファイルを書き込む。

ファイルシステムの共用

SunOS 4.x では、ファイルシステムは他のシステムで使用するために「エクスポート」されていました。これは、/etc/exports ファイルと exportfs コマンドによって行われていました。ただし、エクスポートできるのは NFS システムファイルだけでした。

SunOS では、これと同じ概念を「資源の共用」と呼び、さらに多くのファイルシステムを含めるために拡張しました。ファイルシステムは、share(1M) コマンドと share(1M) コマンドを使用して共用されます。share コマンドは exportfs pathname コマンドに似ていて、shareallexportfs -a コマンドに似ています。

share -F fstype オプションは、共用するファイルシステムの形式を指定します。-F オプションを指定しないと、share/etc/dfs/dfstab ファイルに登録されている最初のファイルシステム形式を使用します。

自動的に共用したいファイルシステムは、/etc/dfs/dfstab ファイル (/etc/export ファイルが変更) に share コマンドエントリを持っていなければなりません。このファイルに指定されたコマンドは、システムが実行レベル 3 (ネットワークファイルを共用するマルチユーザモード) に入ったときに自動的に実行されます。

/etc/dfs/dfstab ファイルエントリの例

はじめのエントリは、mercuryvenusmars のクライアントに、/export/home1 の読み取り/書き込みを許可します。2 行目のエントリは、saturnjupiter のクライアントに、/export/news の読み取りだけを許可します。

share -F nfs -o rw=mercury:venus:mars -d "Home Dir" /export/home1
share -F nfs -o ro=saturn:jupiter -d "News Postings" /export/news

システムがマルチユーザモードで動作しているときに、登録されているクライアントがこれらのファイルシステムを使用できます。share コマンドは、ローカルシステムで共有されているすべての資源を表示します。

% share
-               /export/home1   rw=mercury:venus:mars   "Home Dir"
-               /export/news    ro=saturn:jupiter   "News Postings"

新しいファイルシステムの作成

newfs(1M) または mkfs(1M) コマンドのどちらかを使用するときは、新しいファイルシステムを定義し、指定、作成します。次の節では、newfsmkfs コマンドの変更点について説明します。

newfs コマンド

SunOS 5.6 の newfs コマンドは、mkfs コマンドの便利なフロントエンドと考えられるコマンドです。newfs コマンドは、仮想ファイルシステムアーキテクチャをサポートしていません。このコマンドは UFS 形式のファイルシステムだけを作成するためのものです。newfs を使用すると、newfsmkfs を呼び出して引数を渡します。ufs ファイルシステムの作成時に mkfs が実際の作業を行います。

newfs コマンドでは、SunOS 5.6 のデバイス命名規則に準拠する名前だけを使用できます (「デバイス命名規則」を参照してください)。

mkfs コマンド

SunOS 5.6 の mkfs コマンドは、SunOS 4.x の mkfs コマンドとは大幅に異なります。SunOS 5.6 では、異なるファイルシステム形式を提供し、そのコマンド構文はまったく異なります (「汎用ファイルシステムコマンド」を参照してください)。mkfs では、newfs のように SunOS 5.6 デバイスの命名規則に準拠する名前だけを使用できます。

mkfs は異なる形式のファイルシステムをサポートしていますが、実際にはいつも ufs ファイルシステムを作成するために使用されています。しかし、mkfs は通常は直接実行されず、newfs コマンドで呼び出されるのが普通です。

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

ファイルシステムのチェック

SunOS 5.6 の fsck(1M) コマンドは、SunOS 4.x の fsck コマンドとは大幅に異なります。仮想ファイルシステム (VFS) アーキテクチャに対応するため、fsck ファイルチェックユーティリティには次の 2 つに分けられます。

ファイルのバックアップと復元

この節では、SunOS 4.x と SunOS 5.6 間のバックアップと復元コマンドの変更点と、ufsdump, ufsrestoreddtar、および cpio コマンドの使用方法について説明します。

SunOS 4.x は、ファイルをバックアップおよび復元するためのユーティリティ dumprestoretarcpioddbar そしてアンバンドルの Backup CoPilot プログラムをサポートしています。このリリースは、bar と Backup CoPilot を除くユーティリティのすべてをサポートしています。SunOS 4.x の bar ファイルは、SunOS 5.6 システムで復元することができますが、新しい bar ファイルを作成することはできません。 dump(8)restore(8) コマンドは、ufsdump(1M)ufsrestore(1M) に名前が変更されました。SunOS 4.x の dump コマンドで作成されたファイルは、SunOS 5.6 システム上に ufsrestore で復元できます。

SunOS 5.6 ソフトウェアにはファイルシステムをコピーするための 2 つのユーティリティ volcopy(1M)labelit(1M) が追加されました。

ufsdump コマンド

ufsdump コマンドは、SunOS 4.x の dump コマンドと同じコマンド構文を使用します。ufsdump表 9-15 のオプションも使用できます。

表 9-15 dump コマンドで使用できない ufsdump コマンドのオプション

オプション 

機能 

-l

自動ロード。(ダンプを完了する前に) テープの終端に達したら、ドライブをオフラインにして、テープドライブが再び準備できるまで最高 2 分間待つ。これによって、自動ロード (スタックローダ) テープドライブに新しいテープをロードする時間を与える。2 分以内にドライブが準備できたらロードを続ける。2 分待っても準備ができない場合は、通常どおりオペレータに他のテープをロードするよう要求して待つ。 

-o

オフライン。テープまたはフロッピーディスクが終了する (ダンプが完了するか、媒体の終わりに達する) と、ドライブをオフラインにする。フロッピーディスクドライブの場合は、フロッピーディスクをイジェクトする。テープドライブの場合は、テープを巻き戻す。これは別のプロセスがドライブを使用し、誤ってデータを変換してしまわないようにするためである。 

-S

ダンプの大きさを見積る。ダンプするのに必要なスペースの合計を求める。そして、ダンプの見積りサイズをバイト数で出力する。これは、増分バックアップにもっとも有効である。 

dump と異なり、ufsdump は媒体の終端を検出できるため、-s サイズオプションを使用してダンププログラムに媒体の終端に達する前に次のテープに移らせる必要はありません。ただし、restore コマンドの古いバージョンとの互換性を確保するために、ufsdump では -s オプションを使用できます。

ufsdump は現在では媒体の終端を検出できますが、-s オプションで媒体の大きさを指定しない限り、ダンプに必要なフロッピーディスクやテープの数を予測する方法はありません。したがって、媒体の大きさを指定しない限り、バックアップの開始時に表示されるメッセージは、必要なフロッピーディスクやテープの数を表示しません。

-w-W オプションは、SunOS 5.6 では多少異なります。SunOS 4.x では、これらのオプションは、/etc/fstab ファイルに指定されたバックアップ間隔に従って、バックアップのスケジュールが行われたすべてのファイルシステムを表示しました。SunOS 5.6 でこれに相当するファイルである /etc/vfstab には、バックアップ間隔を指定する手段がないため、これらのオプションは各ファイルシステムが毎日バックアップされるものと仮定しています。したがってこれらのオプションは、その日のうちにバックアップされていないファイルシステムをすべて表示します。

ネットワークでバックアップを実行するときは (ローカルファイルシステムをリモートテープドライブへバックアップする)、テープドライブを備えたシステムに適したデバイス命名規則を使用します。テープドライブを備えたシステムが SunOS 5.6 システムの場合、デバイス命名規則に従ってテープドライブを識別します。それ以外の場合、SunOS 4.x の規則に従います。

ufsrestore コマンド

SunOS 5.6 の ufsrestore コマンドは、SunOS 4.x の restore コマンドに似ています。SunOS 4.x の dump コマンドで作成した古いバックアップはすべて復元できます。ただし例外があり、フロッピーディスクから、複数のボリュームのバックアップを復元することはできません。restore を起動するバックアップスクリプトがある場合は、ufsrestore を起動するスクリプトに変更してください。

dd コマンド

SunOS 4.x の dd コマンドでは、サイズの接尾辞 -w (word の -w) は、サイズ単位が 4 バイトであることを意味します。SunOS 5.6 の dd コマンドでは、-w は 2 バイト単位であることを意味します。さらに、SunOS 5.6 では、-unblock-block 変換オプションをサポートしています。

tarcpio コマンド

tarcpio コマンドはバイナリ以外のフォーマットを使用するため、これらのコマンドは、SVR4 の実装間でデータ交換が可能な唯一のユーティリティです。ufsdumpdd などの他のバックアップユーティリティは、ベンダに固有のもので、ある SVR4 の実装で正常に動作しても別の SVR4 でうまく動作するかどうかは保証されません。

tar コマンドはこのリリースでは変更されていないため、SunOS 4.x コマンドと同じオプションとコマンド構文を使用できます。しかし、SunOS 5.6 ソフトウェアのデバイス命名方法が変更されているため、tarfile (または、device) 引数が影響を受けます。-f 関数修飾子を使用するときは、デバイス引数を /dev/rmt/unit として指定します。ここで、unit はテープドライブ番号と密度です。表 9-16 は、テープデバイス名のテープドライブ密度を表す文字を示します。

表 9-16 テープデバイス名のテープドライブ密度

密度 

説明 

指定なし 

デフォルトの「適切な」 (最高) 密度 

低密度 

中密度 

高密度 

圧縮 

超高密度 

tar コマンドでは、/dev/rmt8 をデフォルト出力デバイスとして使用しません。-f 修飾子を使用せず、 TAPE 環境変数が設定されていないときには、tar コマンドは /etc/default/tar ファイルに設定されたデフォルトを使用します。

SunOS 5.6 の cpio コマンドは、SunOS 4.x のオプションとコマンド構文をサポートします。cpio は、表 9-17 に示す多くの新しいオプションを使用できるようにするため拡張されました。

表 9-17 追加された cpio オプション

オプション 

オプションで使用できるコマンド 

説明 

-A

cpio -o

アーカイブにファイルを追加する。 

-k

cpio -i

壊れたファイルヘッダと検出した入出力エラーをスキップする。このオプションは壊れた、または順序通りでない媒体からファイルをコピーする。 

-L

cpio -o または cpio -p

シンボリックリンクをたどる。 

-V

cpio -i, cpio -o または cpio -p

特殊な冗長表示。読み取った、または書き込んだ各ファイルに対してドットを表示する。このオプションは、ファイル名を表示しないで、cpio が動作中であることを保証する。

-C bufsize

cpio -i または cpio -o

bufsize で指定するバイト数単位で、入出力をレコードに分割する。ここで、bufsize は正の整数。-C または -B を指定しないと、デフォルトのバッファサイズは 512 バイト。

-E filename

cpio -i

アーカイブから抽出するファイル名を含むファイルを指定し入力する。 

-H header

cpio -i または cpio -o

header で指定するフォーマットのヘッダ情報を読み取るか、または書き込む。header には、bar (読み取り専用)、

crcCRCodctarTARustarUSTAR のいずれかを指定できる。

-I filename

cpio -i

入力アーカイブとして filename を読み取る。

-M message

cpio -i -I filename または cpio -o -O filename

媒体を切り替えるときに使用するメッセージを定義する。 

-O filename

cpio -o

出力を filename へリダイレクトする。

-R userid

cpio -i または cpio -p

各ファイルの所有権とグループ情報を userid に再度割り当てる。


注 -

cpio による実行では、-i (コピーイン)、-o (コピーアウト)、または -p (パス) の 3 つのオプションの内のどれか 1 つだけを指定する必要あります。