Solaris のシステム管理 (デバイスとファイルシステム)

第21章 UFS ファイルシステム (参照情報)

この章の内容は次のとおりです。

ルート (/) と /usr ファイルシステムのデフォルトディレクトリ

/kernel ディレクトリには、プラットフォームに依存しないオブジェクト (プラットフォームに依存しないカーネル genunix も含む) だけが入っています。プラットフォームに依存するディレクトリ /platform/usr/platform については、表 213 を参照してください。

次の表に、ルート (/) ファイルシステムに含まれているデフォルトのディレクトリの説明を示します。

表 211 ルート (/) ファイルシステムのデフォルトディレクトリ

ディレクトリ 

説明 

/

ファイルシステムの名前空間全体のルート 

/dev

論理デバイスファイルの一次位置 

/dev/cfg

物理 ap_id へのシンボリックリンク 

/dev/cua

uucp 用のデバイスファイル

/dev/dsk

ブロックディスクデバイス 

/dev/fbs

フレームバッファーのデバイスファイル 

/dev/fd

ファイル記述子 

/dev/md

ボリューム管理デバイス名 

/dev/printers

USB プリンタデバイスファイル 

/dev/pts

pty スレーブデバイス

/dev/rdsk

raw ディスクデバイス 

/dev/rmt

raw テープデバイス 

/dev/sad

STREAMS Administrative Driver のエントリポイント 

/dev/sound

オーディオデバイスとオーディオデバイス制御ファイル 

/dev/swap

デフォルトのスワップデバイス 

/dev/term

シリアルデバイス 

/devices

物理デバイスファイル 

/etc

ホスト固有のシステム管理構成ファイルとデータベース 

/etc/acct

アカウンティングの構成情報 

/etc/apache

Apache の構成ファイル 

/etc/cron.d

cron の構成情報

/etc/default

各種プログラムのデフォルト情報 

/etc/dfs

エクスポートされるファイルシステムの構成情報 

/etc/dhcp

DHCP (Dynamic Host Configuration Protocol) の構成ファイル 

/etc/dmi

Solstice Enterprise Agents の構成ファイル 

/etc/fn

フェデレーテッドネーミングサービスと x.500 のサポートファイル 

/etc/fs

ファイルシステムタイプ別に編成されたバイナリ 

/etc/ftpd

ftpd の構成ファイル

/etc/gss

GSS (Generic Security Service) アプリケーションプログラミングインタフェースの構成ファイル  

/etc/gtk

GNOME (GNU Network Object Model Environment) の構成ファイル 

/etc/inet

インターネットサービスの構成ファイル 

/etc/init.d

実行レベルを変更するためのスクリプト 

/etc/iplanet

iPlanet (Sun ONE) の構成ファイル 

/etc/krb5

Kerberos の構成ファイル 

/etc/lib

/usr が利用できないときに必要な動的リンクライブラリ

/etc/llc2

論理リンク制御 (llc2) ドライバの構成ファイル

/etc/lp

プリンタサブシステムの構成情報 

/etc/lu

Solaris Live Upgrade の構成ファイル 

/etc/lvm

Solaris ボリュームマネージャの構成ファイル 

/etc/mail

メールサブシステムの構成情報 

/etc/nca

Solaris NCA (Network Cache and Accelerator) の構成ファイル 

/etc/net

TI (トランスポート独立) ネットワークサービスの構成情報 

/etc/nfs

NFS サーバーロギングの構成ファイル 

/etc/openwin

OpenWindows の構成ファイル 

/etc/opt

オプションパッケージの構成情報 

/etc/ppp

Solaris PPP の構成ファイル 

/etc/rc0.d

実行レベル 0 を開始または停止したときに起動されるスクリプト 

/etc/rc1.d

実行レベル 1 を開始または停止したときに起動されるスクリプト 

/etc/rc2.d

実行レベル 2 を開始または停止したときに起動されるスクリプト 

/etc/rc3.d

実行レベル 3 を開始または停止したときに起動されるスクリプト 

/etc/rcS.d

システムをシングルユーザーモードにするためのスクリプト 

/etc/rcm

再構成マネージャ (RCM) のカスタムスクリプト用のディレクトリ 

/etc/rpcsec

NIS+ 認証の構成ファイルが含まれていることがある 

/etc/saf

サービスアクセス機能ファイル (FIFO など) 

/etc/security

BSM (Basic Security Module) の構成ファイル 

/etc/sfw

Samba の構成ファイル 

/etc/skel

新規ユーザーアカウントのデフォルトプロファイルスクリプト 

/etc/smartcard

Solaris SmartCards の構成ファイル 

/etc/snmp

Solstice Enterprise Agents の構成ファイル 

/etc/ssh

ssh (secure shell) の構成ファイル 

/etc/sysevent

syseventd の構成ファイル

/etc/tm

商標ファイル。内容はブート時に表示される 

/etc/usb

USB の構成情報 

/etc/uucp

uucp 構成情報

/etc/wrsm

WRSM (WCI Remote Shared Memory) の構成情報 

/export

共有ファイルシステム (ユーザーのホームディレクトリやクライアントファイルシステムなど) 用のデフォルトのディレクトリ 

/home

スタンドアロンシステム上にあるユーザーのホームディレクトリ用のデフォルトのディレクトリまたはマウントポイント。AutoFS の動作中、このディレクトリには新しいエントリを作成できない  

/kernel

プラットフォームに依存しない読み込み可能なカーネルモジュールのディレクトリ。ブートプロセスの一部として必要。プラットフォームに依存しないコアカーネル /kernel/genunix の汎用部分を含む。/platform ディレクトリと /usr/platform ディレクトリの構造については、表 213 を参照

/mnt

ファイルシステムの一般的な一次マウントポイント 

/opt

追加アプリケーションパッケージ用のデフォルトディレクトリまたはマウントポイント 

/platform

サポートされているプラットフォームのファイル。詳細については、表 213 を参照

/proc

プロセス情報 

/sbin

ブートプロセスと手作業によるシステム障害の回復に使用される重要な実行可能プログラム 

/tmp

一時ファイル。内容はブートシーケンス中に消去される 

/usr

/usr ファイルシステムのマウントポイント。詳細については、表 212 を参照

/var

常に変化するファイル (一時ファイル、ログファイル、状態ファイルなど) 用のディレクトリ 

/var/adm

システムのログファイルとアカウンティングファイル 

/var/apache

Apache Web サーバー用のスクリプト、アイコン、ログ、キャッシュページ 

/var/audit

BSM (Basic Security Module) の監査ファイル 

/var/crash

カーネルクラッシュダンプのデフォルトの格納場所 

/var/cron

cron のログファイル

/var/dmi

Solstice Enterprise Agents のデスクトップ管理インタフェースの実行時構成要素  

/var/dt

dtlogin の構成ファイル

/var/inet

IPv6 ルーターの状態ファイル 

/var/krb5

Kerberos のデータベースとログファイル 

/var/ld

実行時リンカーの構成ファイル 

/var/ldap

LDAP クライアントの構成ファイル 

/var/log

システムログファイル 

/var/lp

ラインプリンタサブシステムのログ情報  

/var/mail

ユーザーのメールが保管されるディレクトリ 

/var/news

コミュニティサービスメッセージ。これらのメッセージは USENET 方式のニュースとは異なる 

/var/nfs

NFS サーバーのログファイル 

/var/nis

NIS+ データベース 

/var/ntp

NTP (Network Time Protocol) サーバーの状態ディレクトリ 

/var/opt

ソフトウェアパッケージ関連の各種ファイルのサブツリーのルート  

/var/preserve

viex のバックアップファイル

/var/run

一時的な (つまり、システムをリブート後に残る必要がない) システムファイル。TMPFS マウントされたディレクトリ 

/var/sadm

ソフトウェアパッケージ管理ユーティリティで管理されるデータベース 

/var/saf

saf (サービスアクセス機能) のログファイルとアカウンティングファイル

/var/samba

Samba のログファイルとロックファイル 

/var/snmp

SNMP の状態と構成情報 

/var/spool

スプール化された一時ファイルのディレクトリ 

/var/spool/clientmqueue

Sendmail のクライアントファイル 

/var/spool/cron

cronat のスプールファイル

/var/spool/locks

スプールロックファイル 

/var/spool/lp

ラインプリンタのスプールファイル 

/var/spool/mqueue

配信用に待ち行列に入れられたメール 

/var/spool/pkg

スプール化されたパッケージ 

/var/spool/print

LP 印刷サービスのクライアント側要求格納域 

/var/spool/samba

Samba の印刷待ち行列 

/var/spool/uucp

待ち行列に入っている uucp のジョブ

/var/spool/uucppublic

uucp によって格納されるファイル

/var/statmon

ネットワーク状態監視ファイル 

/var/tmp

一時ファイルのディレクトリ。ブートシーケンス中には消去されない 

/var/uucp

uucp のログファイルと状態ファイル

/var/yp

NIS データベース 

次の表に、/usr ファイルシステムに含まれているデフォルトのディレクトリの説明を示します。

表 212 /usr ファイルシステムのデフォルトディレクトリ

ディレクトリ 

説明 

4lib

SunOS 4.1 バイナリ互換パッケージライブラリ 

5bin

/usr/bin ディレクトリへのシンボリックリンク

X

/usr/openwin ディレクトリへのシンボリックリンク

adm

/var/adm ディレクトリへのシンボリックリンク

apache

Apache の実行可能プログラム、ロード可能モジュール、マニュアル 

aset

ASET (Automated Security Enhancement Tools) のプログラムとファイル用のディレクトリ  

bin

標準的なシステムコマンド用のディレクトリ 

ccs

C 言語処理系のプログラムとライブラリ 

demo

デモのプログラムとデータ 

dict

/usr/share/lib/dict ディレクトリへのシンボリックリンク。UNIX の spell プログラムが使用する辞書が入っている

dt

CDE ソフトウェア用のディレクトリまたはマウントポイント 

games

空のディレクトリ。SunOS 4.0-4.1 ソフトウェアで使用されていた 

include

C プログラム用などのヘッダーファイル 

iplanet

Directory Server の実行可能プログラム、ロード可能モジュール、マニュアル 

j2se

Java 2 SDK の実行可能プログラム、ロード可能モジュール、マニュアル 

java*

Java のプログラムとライブラリが入っているディレクトリ 

kernel

その他のカーネルモジュール 

kvm

廃止または互換性がなくなる可能性あり 

lib

各種プログラムのライブラリ、アーキテクチャ依存データベース、またはユーザーが直接呼び出さないバイナリ 

local

サイトのローカルコマンド 

mail

/var/mail ディレクトリへのシンボリックリンク

man

/usr/share/man ディレクトリへのシンボリックリンク

net

ネットワークリスナーサービス用のディレクトリ 

news

/var/news ディレクトリへのシンボリックリンク

oasys

FMLI (Form and Menu Language Interpreter) 実行環境用のファイル  

old

段階的に使用されなくなっているプログラム 

openwin

OpenWindows ソフトウェアのディレクトリまたはマウントポイント 

perl5

perl 5 のプログラムとマニュアル 

platform

サポートされているプラットフォームのファイル。詳細については、表 213 を参照

preserve

/var/preserve ディレクトリへのシンボリックリンク

proc

proc ツール用のディレクトリ

pub

オンラインマニュアルページと文字処理用のファイル 

sadm

システム管理に関連する各種ファイルとディレクトリ 

sbin

システム管理用の実行可能プログラム 

sbin/install.d

JumpStart のカスタムのスクリプトと実行可能プログラム 

sbin/static

/usr/bin/usr/sbin から選択したプログラムの静的リンクバージョン

sbin/sparcv7 sparcv9

SPARC システムの 32 ビットバージョンと 64 ビットバージョンのコマンド 

sbin/i86

x86 アーキテクチャ固有のコマンド 

sfw

GNU と公開されているソースの実行可能プログラム、ライブラリ、マニュアル 

share

アーキテクチャに依存しない共有可能ファイル 

share/admserv5.1

iPlanet Console and Administration Server 5.0 のマニュアル 

share/audio

オーディオファイルのサンプル 

share/ds5

Sun ONE Directory Server 5.1 のマニュアル 

share/lib

アーキテクチャに依存しないデータベース 

share/man

Solaris のマニュアルページ 

share/src

カーネル、ライブラリ、ユーティリティのソースコード 

snadm

システム管理とネットワーク管理に関するプログラムとライブラリ  

spool

/var/spool ディレクトリへのシンボリックリンク

src

/usr/share/src ディレクトリへのシンボリックリンク

tmp

/usr/var/tmp ディレクトリへのシンボリックリンク

ucb

UCB 互換パッケージのバイナリ 

ucbinclude

UCB 互換パッケージのヘッダーファイル 

ucblib

UCB 互換パッケージのライブラリ 

vmsys

FACE (Framed Access Command Environment) プログラム用のディレクトリ 

xpg4

POSIX 準拠ユーティリティ用のディレクトリ 

プラットフォームに依存するディレクトリ

次の表に、/platform ディレクトリと /usr/platform ディレクトリに入っているすべてのプラットフォームに依存するオブジェクトを示します。

表 213 /platform/usr/platform ディレクトリ

ディレクトリ 

説明 

/platform

ルート (/) ファイルシステムに存在すべき一連のディレクトリが、サポートされるプラットフォームごとに 1 ディレクトリずつ入っている。

/platform/*/kernel

プラットフォームに依存するカーネル構成要素が入っている。プラットフォームに依存するコアカーネルであるファイル unix も含む。詳細については、kernel(1M) のマニュアルページを参照。

/usr/platform

ルート (/) ファイルシステムに存在する必要がない、プラットフォームに依存するオブジェクトが入っている。

/usr/platform/*/lib

/usr/lib ディレクトリ中のオブジェクトに類似した、プラットフォームに依存するオブジェクトが入っている。

/usr/platform/*/sbin

/usr/sbin ディレクトリ中のオブジェクトに類似した、プラットフォームに依存するオブジェクトが入っている。

UFS ファイルシステムのシリンダグループの構造

UFS ファイルシステムを作成すると、ディスクスライスは、1 つまたは複数の連続するディスクシリンダから構成される「シリンダグループ」に分割されます。 シリンダグループはさらにアドレス指定可能なブロックに分割され、このブロックによって、シリンダグループ内のファイルの構造が編成され、制御されます。各種のブロックは、ファイルシステム内で特定の機能を持っています。UFS ファイルシステムには、次の 4 種類のブロックがあります。

ブロックの種類  

格納されている情報の種類 

ブートブロック 

システムのブート時に使用される情報 

スーパーブロック 

ファイルシステムに関する大部分の情報 

i ノード 

ファイルに関する名前以外のすべての情報 

記憶域またはデータブロック 

各ファイルのデータ 

次の節では、これらのブロックの編成と機能について説明します。

ブートブロック

ブートブロックには、システムのブート時に使用されるオブジェクトが格納されます。ファイルシステムがブートに使用されなければ、ブートブロックは空白のままです。ブートブロックは最初のシリンダグループ (シリンダグループ 0) にのみ置かれ、スライス内の最初の 8K バイトです。

スーパーブロック

スーパーブロックには、次のようなファイルシステムに関する大部分の情報が格納されます。

スーパーブロックには重要なデータが入っているので、ファイルシステムの作成時には複数のスーパーブロックが作成されます。

集計情報ブロックは、スーパーブロック内に保管されます。複製されませんが、通常はシリンダグループ 0 内で最初のスーパーブロックといっしょにグループ化されます。集計ブロックには、ファイルシステムの使用時に発生した変化が記録されます。さらに、ファイルシステム内の i ノード数、ディレクトリ数、フラグメント数、および記憶ブロック数が表示されます。

i ノード

i ノードには、ファイルに関して名前以外のすべての情報が入っており、ディレクトリ内に保管されます。i ノードは 128 バイトです。i ノード情報はシリンダ情報ブロック内に保管され、次の情報が入っています。

15 個のディスクアドレス (0 から 14 まで) の配列は、ファイルの内容が格納されるデータブロックを指します。最初の 12 個は直接アドレスです。つまり、ファイルの内容のうち最初の 12 個の論理記憶ブロックを直接指します。ファイルが論理ブロック 12 個分より大きい場合は、13 番目のアドレスは間接ブロックを指します。間接ブロックには、ファイルの内容ではなく直接ブロックのアドレスが入っています。14 番目のアドレスは、二重間接ブロックを指します。二重間接ブロックには、間接ブロックのアドレスが入っています。15 番目のアドレスは三重間接アドレス用です。次の図に、i ノードから始まるこのアドレスブロックチェーンを示します。

図 211 UFS ファイルシステムのアドレスチェーン

UFS の i ノードのアドレス配列と、対応するファイルの記憶ブロックへの間接ポインタおよび二重間接ポインタとの関係を示しています。

データブロック

ファイルシステムに割り当てられた残りの領域には、データブロック (記憶ブロックともいう) が入っています。これらのデータブロックのサイズは、ファイルシステムの作成時に決定されます。デフォルトでは、データブロックは 2 つのサイズ、 つまり 8K バイトの論理ブロックサイズと 1K バイトのフラグメントサイズで割り当てられます。

通常ファイルの場合、データブロックにはファイルの内容が入っています。ディレクトリの場合、データブロックにはディレクトリ内のファイルの i ノード番号とファイル名を示すエントリが入っています。

空きブロック

現在、i ノード、間接アドレスブロック、または記憶ブロックとして使用されていないブロックには、シリンダグループマップ内で空きを示すマークが付けられます。また、このマップはフラグメントを追跡し、断片化によるディスクパフォーマンスの低下を防止します。

UFS ファイルシステムの内容の概念を理解しやすいように、次の図に、一般的な UFS システム内の一連のシリンダグループを示します。

図 212 一般的な UFS ファイルシステム

ブートブロック (シリンダグループ 0 にのみ存在する、8K バイト)、スーパーブロック、シリンダグループマップ、i ノード、記憶ブロックから構成される UFS シリンダグループを示しています。

カスタムファイルシステムパラメータ

newfs コマンドによって割り当てられるデフォルトのファイルシステムパラメータを変更しようとする前に、各パラメータについて理解しておく必要があります。この節では、次の各パラメータについて説明します。

論理ブロックサイズ

論理ブロックサイズは、UNIX カーネルがファイルの読み書きに使用するブロックのサイズです。一般に、論理ブロックサイズは物理ブロックサイズとは異なります。物理ブロックサイズは、通常は 512K バイトで、ディスクコントローラが読み書きできる最小ブロックのサイズです。

論理ブロックサイズは、デフォルトでシステムのページサイズに設定されます。UFS ファイルシステムの場合、このデフォルト論理ブロックサイズは 8192 バイト (8K バイト) です。UFS ファイルシステムでは、ブロックサイズとして 4096 バイトまたは 8192 バイト (4K または 8K バイト) がサポートされます。論理ブロックの推奨サイズは 8K バイトです。


SPARC のみ

sun4u プラットフォームで指定できるブロックサイズは 8192 バイトだけです。


システムに最善の論理ブロックサイズを選択するには、必要なパフォーマンスと使用可能容量を検討してください。ほとんどの UFS システムでは、8K バイトのファイルシステムが最高のパフォーマンスを発揮し、ディスクパフォーマンスと一次メモリーやディスク上の領域の使用量が適切なバランスに保たれます。

原則として、効率を高めるには、ほとんどのファイルがきわめて大きいファイルシステムには大きめの論理ブロックサイズを使用します。ほとんどのファイルがきわめて小さいファイルシステムには、小さめの論理ブロックサイズを使用します。ファイルシステム上で quot -c file-system コマンドを使用すると、ファイルの分散に関する詳細なレポートをブロックサイズ別に表示できます。

ただし、通常は、ファイルシステムの作成時に設定されたページサイズが最適です。

フラグメントサイズ

ファイルが作成または拡張されると、論理ブロック全体または「フラグメント」と呼ばれる部分のディスク容量が割り当てられます。 ファイルのためにディスク容量が必要になると、まずブロック全体が割り当てられ、次に残りの部分にブロックのうち 1 つまたは複数のフラグメントが割り当てられます。小型ファイルの場合、割り当てはフラグメントから始まります。

ブロック全体ではなく、そのフラグメントを割り当てることができるので、ブロック内の未使用のホールによって生じるディスク容量の「断片化」が減少し、容量の節約になります。

UFS ファイルシステムを作成するときに、「フラグメントサイズ」を定義します。 デフォルトのフラグメントサイズは 1K バイトです。各ブロックは、1 個、2 個、4 個、または 8 個のフラグメントに分割できます。この場合、フラグメントサイズは 8192 バイトから 512 バイト (4K バイトのファイルシステムのみ) までです。実際には、下限はディスクのセクターサイズ、通常は 512 バイトに連動します。

マルチテラバイトのファイルシステムの場合、フラグメントサイズはファイルシステムのブロックサイズに等しくなります。


フラグメントサイズの上限は論理ブロックサイズに等しくなります。この場合、フラグメントは存在しないことになります。容量よりも速度を重視する場合、きわめて大型のファイルがあるファイルシステムには、この構成が最適なことがあります。


フラグメントサイズを選択するときには、処理時間と容量をトレードオフしてください。フラグメントサイズが小さければ容量の節約になりますが、割り当てには時間がかかります。原則として、格納効率を高めるには、ほとんどのファイルが大型のファイルシステムには、大きめのフラグメントサイズを使用します。ほとんどのファイルが小型のファイルシステムには、小さめのフラグメントサイズを使用します。

最小空き容量

「最小空き容量」とは、ファイルシステムの作成時に予約分として保持されるディスク容量の割合です。 デフォルトの予約分は、((64M バイト/パーティションサイズ) * 100) で算出し、その値はもっとも近い整数に切り捨てられ、ディスク容量の 1% から 10% の範囲に制限されます。

ファイルシステム内の空き容量が少なくなるほど、アクセス速度が低下するので、空き容量は重要です。十分な空き容量があれば、UFS ファイルシステムは効率よく動作します。ファイルシステムがいっぱいになって、使用可能なユーザー領域を使い果たすと、スーパーユーザー以外は予約済みの空き容量にアクセスできなくなります。

df などのコマンドは、最小空き容量として割り当て済みの分を差し引いて、ユーザーに使用可能な容量をパーセントで表示します。コマンドでファイルシステム内のディスク容量の 100 パーセント以上が使用中であると表示される場合は、予約分の一部がスーパーユーザーによって使用されています。

ユーザーに割り当てを適用する場合に、各ユーザーが使用可能な容量には予約分の空き容量は含まれません。tunefs コマンドを使用すると、既存のファイルシステムの最小空き容量の値を変更できます。

回転待ち

このパラメータはもう使用しません。入力値に関わらず、値は常に 0 に設定されます。

最適化のタイプ

「最適化のタイプ」パラメータの設定には、「space」と「 time」があります。

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

i ノード数 (ファイルの数)

i ノード 1 個あたりのバイト数によって、ファイルシステム内における i ノードの密度が決まります。ファイルシステムの合計サイズをこの値で割ると、作成すべき i ノードの個数が得られます。i ノードが割り当てられたら、ファイルシステムを作成し直さないかぎり、その数は変更できません。

i ノード 1 個あたりのデフォルトのバイト数は 2048 バイト (2K バイト) で、これは各ファイルの平均サイズが 2K バイト以上であることを想定しています。ファイルシステムが 1G バイトを超える場合、次の公式が使用されます。

ファイルシステムのサイズ 

i ノードごとのバイト数 

1G バイト以下 

2048 

2G バイト未満 

4096 

3G バイト未満 

6144 

3G バイト以上 1T バイト以下 

8192 

1T バイト超または -T オプションを指定して作成された場合

1048576 

多数のシンボリックリンクを持つファイルシステムでは、平均ファイルサイズが小さくなることがあります。ファイルシステムに多数の小型ファイルが格納される場合は、このパラメータに小さい値を与えてもかまいません。i ノード数が少ないために i ノードが不足するよりも、多すぎる方が好ましいことを留意してください。i ノード数が少なすぎると、実際には空のディスクスライス上でも最大ファイル数に達してしまうことがあります。

UFS ファイルとファイルシステムの最大サイズ

UFS ファイルシステムの最大サイズは、およそ 16T バイトで、使用できる領域は、そこから約 1 パーセントのオーバーヘッドを引いたサイズです。「空白」ファイルの論理サイズは 1T バイトです。 ただし、ファイルに格納できる実際のデータ容量は、1T バイトから約 1 パーセントのファイルシステムオーバーヘッドを引いたサイズです。

UFS サブディレクトリの最大数

UFS ファイルシステム内の 1 ディレクトリあたりのサブディレクトリの最大数は 32,767 です。この制限はあらかじめ定義されたものであり、変更できません。

カスタマイズされたファイルシステムを作成するためのコマンド

この節では、カスタマイズされたファイルシステムの作成に使用する次の 2 つのコマンドについて説明します。

newfs コマンドの構文、オプション、引数

newfs コマンドは、ファイルシステムの作成に使用する mkfs コマンドの簡便バージョンです。

構文は次のとおりです。


/usr/sbin/newfs [-NTv] [mkfs_options] raw_device

次の表に、newfs コマンドのオプションと引数を示します。

表 214 newfs コマンドのオプションと引数

オプション 

説明 

-N

ファイルシステムの作成に使用されるファイルシステムパラメータが表示されるが、実際には作成されない。このオプションでは、既存のファイルシステムの作成に使用されたパラメータは表示されない。 

-T

ファイルシステムのサイズが最終的に 1T バイトを超えることが可能となるように、ファイルシステムのパラメータが設定される。このオプションを指定すると、fragsizebsize と同じ値に設定され、-i オプションによる指定がなければ、nbpi は 1M バイトに設定される。-f オプションまたは -i オプションを使って指定された fragsize 値または nbpi 値がこのオプションの値と矛盾した場合、指定された fragsize 値または nbpi 値は無視される。

-v

mkfs コマンドに渡されるパラメータが表示される。

mkfs-options

後続のオプション (-a apc から -t ntrack まで) を使用して mkfs コマンドのパラメータが設定される。各オプションは、空白で区切る。

-a apc

不良ブロックを配置するために予約される 1 ディスクシリンダの代替セクター数 (SCSI デバイスのみ)。デフォルトは 0 (ゼロ)。 

このオプションは、EFI ラベルのディスクには適用されず、無視される。 

-b bsize

ファイルシステムの論理ブロックサイズ。4096 バイトまたは 8192 バイト。デフォルトは 8192 バイト。sun4u アーキテクチャでは、4096 バイトのブロックサイズはサポートされない。 

-c cgsize

1 シリンダグループあたりのシリンダ数。値の範囲は 16 から 256 まで。デフォルト値を計算するには、ファイルシステム内のセクター数を 1G バイト内のセクター数で割り、 その結果に 32 を掛ける。デフォルト値は、常に 16 から 256 までの値。 

デフォルト値以外の値を使用したい場合は mkfs コマンドを直接使用する。

このオプションは、EFI ラベルのディスクには適用されず、無視される。 

-C maxcontig

特定のファイルに属し、連続して割り当てられる論理ブロックの最大数。デフォルトは次のようにして計算される。 

maxcontig = ディスクドライブの最大転送サイズ / ディスクブロックサイズ

ディスクドライブの最大転送サイズが不明である場合、maxcontig のデフォルト値は次のようにして計算される。

maxphysufs_maxmaxphys (通常は 1M バイト) よりも小さい場合、maxcontigmaxphys と同じ値に設定される。そうでない場合、maxcontigufs_maxmaxphys と同じ値に設定される。

maxcontig には任意の正の整数を設定できる。

実際の値は、指定された値とハードウェアがサポートする値の、いずれか小さいほうになる。 

このパラメータを後で変更するには、tunefs コマンドを使用する。詳細については、tunefs(1M) のマニュアルページを参照。

-d gap

回転待ち。このオプションはもう使用しません。入力値に関わらず、値は常に 0 に設定されます。 

-f fragsize

ファイルに割り当て可能な最小のディスク容量 (バイト数)。bsizefragsize で割った数は、2 の累乗でなければならない。

ここで、bsize / fragsize は 1、2、4、8 のいずれかである。

つまり、fragsize に指定できるのは、論理ブロックサイズが 4096 の場合は 512、1024、2048、4096 のいずれか、論理ブロックサイズが 8192 の場合は 1024、2048、4096、8192 のいずれかである。デフォルト値は 1024。

1T バイトを超えるファイルシステム、または -T オプションを指定して作成されたファイルシステムの場合、fragsize は強制的にブロックサイズ (bsize) と同じ値に設定される。

-i nbpi

i ノード 1 個当たりのバイト数。この値はファイルシステム内における i ノードの密度を表す。この値でファイルシステムの合計サイズを割ると、作成すべき i ノードの個数が得られる。 

この値は、ファイルシステム内のファイルの予想平均サイズに応じたものにする必要がある。必要とされる i ノードが少ない場合は大きな値を指定し、 作成すべき i ノードが多い場合は小さな値を指定する。 

詳細については、「i ノード数 (ファイルの数)」を参照。

-m free

ファイルシステムで管理される空きディスク領域の最小許容率 (0% から 99%)。一般のユーザーはこの領域を使用できない。ファイルシステムがこのしきい値に達した場合、スーパーユーザーだけがファイルシステムへの書き込みを続行できる。 

デフォルトの予約分は、((64M バイト/パーティションサイズ) * 100) で算出した値はもっとも近い整数に切り捨てられ、ディスク容量の 1% から 10% の範囲に制限される。 

このパラメータは、ファイルシステムを作成した後で、tunefs コマンドを使用して変更できる。

-n nrpos

シリンダグループを分割するさまざまな回転位置の数。デフォルトは 8。 

このオプションは、EFI ラベルのディスクには適用されず、無視される。 

-o opt

最適化のタイプ ( spacetime のいずれか)。ブロックの割り当てにかかる時間を最小化する (time) か、領域の断片化を最小化する (space) ように、ファイルシステムに指示できる。デフォルトは time

-r rpm

1 分当たりのディスクの回転数。この設定はドライバまたはデバイスに固有である。 

このパラメータは、mkfs コマンドに渡される前に 1 秒当たりの回転数に変換される。

このオプションは、EFI ラベルのディスクには適用されず、無視される。 

-s size

ファイルシステムのセクター数。デフォルトでは、パーティション全体が使用される。 

-t ntrack

ディスク上の 1 シリンダあたりのトラック数。デフォルトはディスクラベルから取得される。 

このオプションは、EFI ラベルのディスクには適用されず、無視される。 

raw_device

/dev ディレクトリ内に格納された raw 特殊デバイスデバイス名 (/dev/rdsk/c0t0d0s6 など)。ここで指定されたデバイス上に、ファイルシステムが作成される。この引数は必須。


例 211 newfs コマンドのオプションと引数

次の例は、-N オプションを使用して、バックアップスーパーブロックなどのファイルシステム情報を表示する方法を示しています。


# newfs -N /dev/rdsk/c0t0d0s0
/dev/rdsk/c0t0d0s0:  37260 sectors in 115 cylinders of 9 tracks, 36 sectors
        19.1MB in 8 cyl groups (16 c/g, 2.65MB/g, 1216 i/g)
superblock backups (for fsck -b #) at:
 32, 5264, 10496, 15728, 20960, 26192, 31424, 36656,
#

汎用 mkfs コマンド

汎用 mkfs コマンドは、ファイルシステム専用の mkfs コマンドを呼び出して、指定したディスクスライス上で指定したタイプのファイルシステムを作成させます。mkfs コマンドは各種のファイルシステムに対応していますが、実際には UFS、UDFS、PCFS の各ファイルシステムの作成に使用します。他のタイプのファイルシステムを作成するには、ファイルシステム専用の mkfs コマンドのソフトウェアを作成する必要があります。通常、mkfs コマンドは直接実行しません。mkfs コマンドは、newfs コマンドによって呼び出されます。

汎用 mkfs コマンドは、/usr/sbin ディレクトリに入っています。引数とオプションについては、mkfs(1M) のマニュアルページを参照してください。