filesystem - ファイルシステム組織
/
ファイルシステムは、Oracle Solaris OS のシステム関連コンポーネントとバイナリのほか、非システム関連コンポーネントとホームディレクトリを編成するために使用される子孫ファイルシステムとディレクトリの階層構造です。デフォルトで、ルートファイルシステムは、ZFS ルートプール内にインストールされ、具体的には、システム関連コンポーネントの個別のディレクトリ (etc、usr、var など) を含む ZFS ファイルシステムであり、システムが正常に機能するために使用可能である必要があります。システムのインストール後、Solaris ファイルシステムのルートがマウントされます。これは、ファイルおよびディレクトリにアクセスできることを意味します。
ルートファイルシステムのすべてのサブディレクトリのうち、Oracle Solaris OS の一部となっているもの (/var を除く) は、ルートファイルと同じファイルシステムに含まれている必要があります。さらに、すべてのパッケージされたソフトウェアは、スワップおよびダンプデバイスを除いて、ルートプールに存在する必要があります。システムのインストール時に、デフォルトのスワップデバイスとダンプデバイスが、ルートプール内に ZFS ボリュームとして自動的に作成されます。
次のファイルシステムの内容の説明では、プラットフォーム、プラットフォーム依存、プラットフォーム非依存、およびプラットフォーム固有という用語を使用しています。プラットフォームとは、uname -i コマンドによって返される、システムの命令セットアーキテクチャーまたはプロセッサタイプを示します。プラットフォーム依存とは、すべてのプラットフォームにインストールされ、その内容がプラットフォームによって異なるファイルを示します。プラットフォーム依存ファイルと同様に、プラットフォーム非依存ファイルもすべてのプラットフォームにインストールされます。ただし、後者のタイプの内容はすべてのプラットフォームで同じになります。プラットフォーム依存ファイルの例は、コンパイル済みの実行可能プログラムです。プラットフォーム非依存ファイルの例は、/etc/hosts などの標準構成ファイルです。プラットフォーム依存ファイルやプラットフォーム非依存ファイルと異なり、プラットフォーム固有ファイルは、サポートされる一部のプラットフォームにのみインストールされます。ほとんどのプラットフォーム固有ファイルは /platform および /usr/platform の下に集められます。
ルートファイルシステムには、カーネル、デバイスドライバ、システムのブートに使用されるプログラムなど、システムの処理に欠かせないファイルとディレクトリが含まれています。それらのコンポーネントについて次に説明します。ルート (/) ディレクトリにはマウントポイントディレクトリも含まれ、そこでローカルおよびリモートファイルシステムをファイルシステム階層に接続できます。
ファイルシステム名前空間全体のルートディレクトリ。これはシステムブート時にカーネルによってマウントされる特殊なファイルシステムです。
システムのブートに必要なファイルと実行可能ファイルを格納するディレクトリ。
システム実行可能ファイルとスクリプトを格納する /usr/bin ディレクトリへのシンボリックリンク。
特殊なデバイスファイルを格納するディレクトリ。一般に、デバイスファイルはシステムのカーネルとハードウェア構成を一致させるために構築されます。
デバイスの名前空間を管理する devfs ファイルシステムのマウントポイントディレクトリ。
システム間で共有されないプラットフォーム依存の管理および構成ファイルとデータベースを格納するディレクトリ。このディレクトリはシステムの識別情報を定義します。バンドルされた Solaris ソフトウェアの承認済みのインストールの場所。
ユーザーファイルを格納するディレクトリまたはユーザーホームディレクトリのファイルシステムマウントポイント。デフォルトでは、/home ディレクトリは自動マウントされるファイルシステムです。
ブートプロセスの一部として必要なプラットフォーム依存のロード可能カーネルモジュールのディレクトリ。プラットフォーム非依存のコアカーネルの汎用部分 /kernel/genunix を含みます。kernel(1M) を参照してください。バンドルされた Oracle Solaris ソフトウェアおよびアドオンシステムソフトウェアの承認済みのインストール場所。
コアシステムライブラリを格納するディレクトリ。これまでは、このディレクトリにはシステム起動用の必須ライブラリコンポーネントが格納されていました。
自動的にマウントされるリムーバブルメディアにアクセスするためのディレクトリ。
ファイルシステムのデフォルトの一時マウントポイントディレクトリ。この空のディレクトリはファイルシステムを一時的にマウントするために使われます。
オートマウンタによってマウントされるファイルシステムの一時マウントポイントディレクトリ。
アンバンドルのアプリケーションパッケージ用のディレクトリ。
ルートファイルシステムに存在する必要があるプラットフォーム固有オブジェクトのディレクトリ。サポートされるプラットフォームあたり 1 つずつ、一連のディレクトリを格納します。一連のディレクトリのセマンティクスは / (ルート) と同等です。
プロセスファイルシステムのマウントポイントディレクトリ。
ルートユーザーのホームディレクトリ。
ZFS ブート関連コンポーネントのマウントポイントディレクトリ。デフォルトで、ルートプールはインストール時に rpool という名前が付けられます。
/usr/sbin ディレクトリへのシンボリックリンク。
契約 (CTFS) およびオブジェクト (OBJFS) ファイルシステムのマウントポイントディレクトリ。
複数のブート環境で共有され、ブート環境を格納するzpoolの下の個別のデータセットに存在するディレクトリ。これはゾーンパスのデフォルトの親です。
ブート処理時に削除される一時ファイルを格納するディレクトリ。
プラットフォーム依存およびプラットフォーム非依存バイナリおよびファイルを格納するディレクトリ。/usr/share サブディレクトリにはプラットフォーム非依存ファイルが格納されます。残りの /usr ディレクトリにはプラットフォーム依存ファイルが格納されます。
プラットフォーム依存のユーザー呼び出し実行可能ファイルを格納するディレクトリ。これらはユーザーが通常の $PATH の一部として実行されることを期待するコマンドです。バンドルされた Oracle Solaris ソフトウェアの承認済みのインストールの場所。アンバンドルのシステムソフトウェアまたはアプリケーションの類似の場所は /opt/packagename/bin です。
以前のリリースの Solaris との互換性のために保持されていた /usr/bin コマンドのバージョン。実行可能ファイルは /usr/sunos/bin 内にあります。これは、旧バージョンが推奨される場合は $PATH 内の /usr/bin の前に配置できます。
デフォルトの Solaris 実装としては使用されないが、ほかのプラットフォームとの互換性のために提供されている GNU バージョンのコマンド。実行可能ファイルは /usr/gnu/bin 内にあります。これは、GNU バージョンが推奨される場合は $PATH 内の /usr/bin の前に配置できます。さらに、このディレクトリツリー内のすべてのコマンドは、接頭辞として 'g' という文字が付いたコマンド名であるシンボリックリンクによって、/usr/bin からアクセス可能になります。例:
/usr/bin/ggrep -> ../gnu/bin/grep.
GNU 互換性ファセットを無効にすると、すべての g* シンボリックリンクが /usr/bin から削除されます。
追加のシステムライブラリ、および実行時にプログラムによって必要とされるその他のサポートファイルによって /lib の内容を拡張するディレクトリ。
Java ファイルと実行可能ファイルを格納するディレクトリ。
ブートプロセスと手動のシステムリカバリで使用される必須の実行可能ファイルを格納します。これまで、このディレクトリは /usr ファイルシステムがマウントされる前にシステムを復元するために必要でした。この Oracle Solaris リリースでは、/usr はディレクトリで、個別のファイルシステムではなく、ルートファイルシステムのマウント時に使用できます。
システムに一意だが、任意または可変サイズに拡張する可能性のある多様なファイルを格納するディレクトリまたはファイルシステム。例はログファイルです。バンドルされた Oracle Solaris ソフトウェアの承認済みのインストールの場所。
複数のブート環境で共有され、ブート環境を格納する zpool の下の個別のデータセットに存在するディレクトリ。特定のブート環境内のパッケージメタデータは /var/share の現在の内容を反映していないことがあるため、パッケージはここに内容を配布すべきではありません。
パッケージは /var/.migrate にディレクトリを配布できます。これはブート時に /var/share の下に自動的に作成されます。ブート環境間でデータを共有する方法については、pkg(5) および IPS の開発ガイドを参照してください。
デフォルトで、次のディレクトリが共有されます。
/var/share/audit /var/share/cores /var/share/crash /var/share/mail
各共有ディレクトリを指すために、シンボリックリンクが /var に提供されます。
既存のデータセットがそれらのいずれかのシンボリックリンクにマウントしようとすると (たとえば、通常 /var/mail にマウントする既存のデータセットがあるユーザー)、ファイルシステムのマウントはシンボリックリンクを移動するため、それらのデータセットが /var/share の下にマウントされます。データセットは引き続き元のマウントポイントからアクセス可能です。
サイズがさまざまであるか、通常のシステム処理時に存在するファイルを格納するディレクトリ。このディレクトリの内容はブート処理時に削除されません。rmtmpfiles サービスの clean_vartmp プロパティー値を設定することによって、エディタ一時ファイルを除くすべてのファイルをクリアするように、/var/tmp のデフォルトの動作を変更することができます。これは次のコマンドによって実行します。
# svccfg -s svc:/system/rmtmpfiles setprop\ options/clean_vartmp = "true" # svcadm refresh svc:/system/rmtmpfiles:default
このプロパティーを変更するには、solaris.smf.value.rmtmpfiles 承認が必要です。
isainfo(1), svcs(1), uname(1), automount(1M), automountd(1M), boot(1M), init(1M), kernel(1M), mount(1M), svcadm(1M), svccfg(1M), zfs(1M), zpool(1M), mount(2), Intro(4), proc(4), terminfo(4), pkg(5), ctfs(7FS), devfs(7FS), objfs(7FS),