JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris の管理: デバイスとファイルシステム     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  リムーバブルメディアの管理 (概要/タスク)

2.  CD および DVD への書き込み (タスク)

3.  デバイスの管理 (タスク)

4.  デバイスの動的構成 (タスク)

5.  USB デバイスの管理 (タスク)

6.  InfiniBand デバイスの使用 (概要/タスク)

7.  ディスクの管理 (概要)

8.  ディスク使用の管理 (タスク)

9.  ディスクの管理 (タスク)

10.  SPARC: ディスクの設定 (手順)

11.  x86: ディスクの設定 (手順)

12.  Oracle Solaris iSCSI ターゲットの構成 (タスク)

13.  format ユーティリティー (参照情報)

14.  ファイルシステムの管理 (概要)

15.  ファイルシステムの作成およびマウント (タスク)

16.  追加スワップ空間の構成 (タスク)

17.  UFS ファイルシステムの整合性検査 (手順)

UFS ファイルシステムの整合性

UFS ファイルシステムユーティリティー (fsckmkfs、および newfs) の拡張機能

バックアップスーパーブロックの自動検索

fsck による再実行が必要なタイミングの報告

拡張属性に関連する新しい fsck メッセージ

重複するブロックまたはフラグメントの処理の改善

UFS ファイルシステムの状態はどのように記録されるか

fsck コマンドで検査して修復される内容

UFS ファイルシステムの不整合が発生する理由

整合性が検査される UFS コンポーネント

スーパーブロックの検査

ファイルシステムのサイズと i ノードリストのサイズの検査

空きブロック数の検査

空き i ノード数の検査

i ノード

i ノードの形式とタイプ

リンク数の検査

重複ブロックの検査

不正なブロック番号の検査

i ノードサイズの検査

間接ブロック

データブロック

未割り当てディレクトリの検査

不正な i ノード番号の検査

不正な「.」と「..」エントリのチェック

切り離されたディレクトリ

通常データブロック

fsck サマリーメッセージ

UFS ファイルシステムを対話式で検査して修復する

代替ブートデバイスから UFS ルート (/) ファイルシステム、/usr ファイルシステム、または /var ファイルシステムを検査する方法

ルート (/)、/usr、または /var 以外の UFS ファイルシステムを検査する方法

UFS ファイルシステムの修復

UFS ファイルシステムを修復する方法

fsck コマンドで修復できない UFS ファイルシステムの修正

不正な UFS スーパーブロックの復元

不正な UFS スーパーブロックを復元する方法 (Solaris 10 6/06 リリース)

不正なスーパーブロックを復元する方法 (Solaris 8、9、および 10 リリース)

fsck コマンドの構文とオプション

18.  UFS ファイルシステム (参照情報)

19.  UFS ファイルシステムのバックアップと復元 (概要/タスク)

20.  UFS スナップショットの使用 (手順)

21.  ファイルとファイルシステムのコピー (タスク)

22.  テープドライブの管理 (タスク)

23.  UFS バックアップおよび復元コマンド (参照情報)

索引

UFS ファイルシステムの整合性

UFS ファイルシステムは、一連の内部テーブルを基にして使用済み i ノード、使用可能ブロックを特定します。これらの内部テーブルがディスク上のデータと正しく同期していないと、整合性が失われ、ファイルシステムの修復が必要になります。

次のような原因でオペレーティングシステムが異常終了すると、ファイルシステムの整合性が失われることがあります。

ファイルシステムの整合性が失われることは重大ですが、頻繁に起きるものではありません。システムをブートすると、ファイルシステムの整合性検査が (fsck コマンドを使用して) 自動的に実行されます。ほとんどの場合は、このファイルシステムの検査によって問題が修復されます。

fsck コマンドは、ファイルシステム上に配置されているが参照不可能なファイルとディレクトリを lost+found ディレクトリに入れます。参照不可能なファイルとディレクトリの名前として i ノード番号が割り当てられます。lost+found ディレクトリが存在しない場合は、fsck コマンドによって作成されます。lost+found ディレクトリ内の領域が足りない場合は、fsck コマンドによってそのサイズが拡張されます。

i ノードについては、「i ノード」を参照してください。

UFS ファイルシステムユーティリティー (fsckmkfs、および newfs) の拡張機能

ファイルシステム検査ユーティリティー fsck は、FreeBSD 4.9 バージョンの fsck プログラム内の機能やその他の拡張機能が含まれるように拡張されています。

この Oracle Solaris リリースの fsck ユーティリティーには次の改善が加えられています。

さらに、newfs コマンドと mkfs コマンドが更新され、ファイルシステムのスーパーブロック情報をテキストで表示したり、スーパーブロック情報をバイナリ形式でダンプしたりするための新しいオプションが追加されました。

newfs [ -S or -B ] /dev/rdsk/...
-S

ファイルシステムのスーパーブロックをテキスト形式で表示します。

-B

ファイルシステムのスーパーブロックをバイナリ形式でダンプします。

mkfs [ -o calcsb or -o calcbinsb ] /dev/rdsk/... size
-o calcsb

ファイルシステムのスーパーブロックをテキスト形式で表示します。

-o calcbinsb

ファイルシステムのスーパーブロックをバイナリ形式でダンプします。

fsck ユーティリティーは、このスーパーブロック情報を使用して、バックアップスーパーブロックを検索します。

次のセクションでは、具体的な fsck の機能拡張および対応するエラーメッセージについて説明します。fsck ユーティリティーを使用して破損したスーパーブロックを修復する手順については、「不正な UFS スーパーブロックを復元する方法 (Solaris 10 6/06 リリース)」を参照してください。

バックアップスーパーブロックの自動検索

次の fsck エラーメッセージの例は、バックアップスーパーブロックの自動発見の失敗を示しています。


注意

注意 - ファイルシステムに破損したスーパーブロックが含まれ、ntracknsect などの newfs または mkfs のカスタマイズされたパラメータを使用してファイルシステムが作成されている場合、修復処理のために自動的に発見されたスーパーブロックがファイルシステムを破損させる可能性があります。

カスタマイズされたパラメータを使用して作成されたファイルシステムで、ファイルシステムに不正なスーパーブロックが含まれている場合、fsck は、fsck セッションを取り消すための次のようなプロンプトを表示します。

CANCEL FILESYSTEM CHECK?

次の例は、破損したスーパーブロックのシナリオで fsck-y オプションを指定した場合に何が起こるかを示しています。fsck セッションが自動的に終了します。代替のスーパーブロックを使用してセッションを再実行するためのメッセージが表示されます。

# fsck -y /dev/dsk/c1t2d0s0
# 
** /dev/rdsk/c1t2d0s0
BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED

LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS?  yes


LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS?  yes

SEARCH FOR ALTERNATE SUPERBLOCKS FAILED.

USE GENERIC SUPERBLOCK FROM MKFS?  yes

CALCULATED GENERIC SUPERBLOCK WITH MKFS
If filesystem was created with manually-specified geometry, using
auto-discovered superblock may result in irrecoverable damage to
filesystem and user data.

CANCEL FILESYSTEM CHECK?  yes

Please verify that the indicated block contains a proper
superblock for the filesystem (see fsdb(1M)).

FSCK was running in YES mode.  If you wish to run in that mode using
the alternate superblock, run `fsck -y -o b=453920 /dev/rdsk/c1t2d0s0'.

次の fsck エラーメッセージのシナリオは、バックアップスーパーブロックの新しいプロンプトを示していますが、この例では、fsck の実行は取り消されていません。ファイルシステムがカスタマイズされたパラメータを使用して作成されている場合またはこのシステム上での fsck の実行に関する他の心配がある場合は、fsck セッションの取り消しが適切な応答です。

次のように、さまざまなスーパーブロックのエラー状況が斜体で表示されます。

# fsck /dev/rdsk/c0t1d0s0

** /dev/rdsk/c0t1d0s0

BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED
BAD SUPERBLOCK AT BLOCK 16: NUMBER OF DATA BLOCKS OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: INODES PER GROUP OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: MAGIC NUMBER WRONG
BAD SUPERBLOCK AT BLOCK 16: BAD VALUES IN SUPER BLOCK
BAD SUPERBLOCK AT BLOCK 16: NCG OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: CPG OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: NCYL IS INCONSISTENT WITH NCG*CPG
BAD SUPERBLOCK AT BLOCK 16: SIZE OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: NUMBER OF DIRECTORIES OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: ROTATIONAL POSITION TABLE SIZE OUT OF RANGE
BAD SUPERBLOCK AT BLOCK 16: SIZE OF CYLINDER GROUP SUMMARY AREA WRONG
BAD SUPERBLOCK AT BLOCK 16: INOPB NONSENSICAL RELATIVE TO BSIZE

LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? yes

FOUND ALTERNATE SUPERBLOCK 32 WITH MKFS

USE ALTERNATE SUPERBLOCK? yes

FOUND ALTERNATE SUPERBLOCK AT 32 USING MKFS
If filesystem was created with manually-specified geometry, using
auto-discovered superblock may result in irrecoverable damage to
filesystem and user data.

CANCEL FILESYSTEM CHECK? no

** Last Mounted on 
** Phase 1 - Check Blocks and Sizes
** Phase 2a - Check Duplicated Names
** Phase 2b - Check Pathnames
** Phase 3a - Check Connectivity
** Phase 3b - Verify Shadows/ACLs
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cylinder Groups

SALVAGE? yes


UPDATE STANDARD SUPERBLOCK? yes

82 files, 3649 used, 244894 free (6 frags, 30611 blocks, 0.0% 
fragmentation)

***** FILE SYSTEM WAS MODIFIED *****

fsck による再実行が必要なタイミングの報告

fsck によって再実行が必要なタイミングの報告が改善されるので、特に実行に時間がかかる大きなファイルシステムの場合などに、このコマンドを何度も実行するための時間が節約され、実行する必要性も少なくなります。

次の新しいメッセージは、エラーシナリオの最後に fsck ユーティリティーを再実行するように要求します。

***** PLEASE RERUN FSCK *****

または

Please rerun fsck(1M) to correct this.

これらの新しいプロンプトは、 fsck を再実行すべきかどうかの判断が難しいという以前の問題を解決します。

上のメッセージのように fsck の再実行を要求されない場合は、次のようなメッセージが表示されても fsck を再実行する必要はありません。

***** FILE SYSTEM WAS MODIFIED *****

ただし、このメッセージのあとに fsck を再実行してもファイルシステムは損傷しません。このメッセージは、fsck の修正処置に関する情報を示すだけのものです。

拡張属性に関連する新しい fsck メッセージ

拡張属性を含むファイルを報告および修復する新しい fsck メッセージが用意されています。例:

BAD ATTRIBUTE REFERENCE TO I=1 FROM I=96
Attribute directory I=97 not attached to file I=96
  I=96  OWNER=root MODE=40755
SIZE=512 MTIME=Jul 12 10:55:10 2010
DIR= <xattr> 

FIX?  yes
ZERO LENGTH ATTR DIR I=12  OWNER=root MODE=160755
SIZE=0 MTIME=Jul 12 10:56:10 2010
CLEAR?  yes
File should BE marked as extended attribute
  I=22  OWNER=root MODE=100644
SIZE=0 MTIME=Jul 12 10:57:10 2010
FILE=  <xattr>

FIX?  yes
UNREF ATTR DIR  I=106  OWNER=root MODE=160755
SIZE=512 MTIME=Jul 12 10:58:10 2010
RECONNECT?  yes
File I=107 should NOT be marked as extended attribute
  I=107  OWNER=root MODE=100644
SIZE=0 MTIME=Jul 12 10:59:10 2010
FILE=?/attfsdir-7-att

FIX?  yes
DIR I=106 CONNECTED.

重複するブロックまたはフラグメントの処理の改善

fsck エラーメッセージは、ブロック、フラグメント、または LFN に関する情報を報告するようになりました。LFN は、ファイルの先頭からの論理フラグメント番号です。たとえば、次のような出力が表示されます。

** Phase 1 - Check Blocks and Sizes
FRAGMENT 784 DUP I=38 LFN 0
FRAGMENT 785 DUP I=38 LFN 1
FRAGMENT 786 DUP I=38 LFN 2
.
.
.

fsck はオブジェクトをフラグメントとして処理しますが、以前の Solaris リリースでは、オブジェクト情報をブロックとして報告するだけでした。現在は、フラグメントとして正しく報告します。

fsck が重複するブロックまたはフラグメントに関連するエラーを検出した場合、fsck は、fsck の出力の最後にクリアされないファイルを表示します。たとえば、次のような出力が表示されます。

LIST REMAINING DUPS?  yes

Some blocks that were found to be in multiple files are still
assigned to file(s).
Fragments sorted by inode and logical offsets:
Inode 38:
  Logical Offset  0x00000000               Physical Fragment  784
  Logical Offset  0x00000800               Physical Fragment  786
  Logical Offset  0x00001000               Physical Fragment  788
  Logical Offset  0x00001800               Physical Fragment  790

この例では、そのあとで、find -i inode-number コマンドを使用して i ノード 38 を識別します。