スーパーユーザーになるか、同等の役割を引き受けます。
不正なスーパーブロックがルート (/)、/usr、または /var ファイルシステム内にあるかどうかを調べ、次のどちらかの操作を実行します。
ルート (/) ファイルシステム、/usr ファイルシステム、または /var ファイルシステムに不正なスーパーブロックが存在する場合、ネットワークまたはローカルに接続された Solaris DVD からブートします。
ローカル接続された DVD からブートする場合は、次のコマンドを使用します。
ok boot cdrom -s |
ブートサーバーまたはインストールサーバーがすでに設定済みのネットワークからブートする場合は、次のコマンドを使用します。
ok boot net -s |
システムを停止する必要がある場合は、『Solaris のシステム管理 (基本編)』の第 12 章「Oracle Solaris システムのブート (手順)」または『Solaris のシステム管理 (基本編)』の「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。
ルート (/)、 /usr、または /var のどのファイルシステムにも不正なスーパーブロックが存在しない場合は、損傷を受けたファイルシステム以外のディレクトリに移動し、マウントを解除します。
# umount /mount-point |
次の手順では、必ず newfs -N オプションを使用してください。-N オプションを指定しない場合は、そのファイルシステムのデータがすべて破壊され、空のファイルシステムに置き換わります。
newfs -N コマンドを使用して、スーパーブロックの値を表示します。
# newfs -N /dev/rdsk/device-name |
このコマンドの出力には、newfs コマンドによってファイルシステムが作成されたときに、スーパーブロックのコピーとして使用されることになったブロック番号が表示されます。カスタマイズされたファイルシステムを作成する方法については、「UFS ファイルシステムパラメータのカスタマイズ」を参照してください。
fsck コマンドを使用して、代替スーパーブロックを指定します。
# fsck -F ufs -o b=block-number /dev/rdsk/device-name |
fsck コマンドは、指定された代替スーパーブロックを使用して、一次スーパーブロックを復元します。代替ブロックとしては、常に 32 を使用できます。または、newfs -N コマンドの実行結果として出力される任意の代替ブロックを使用します。
次の例は、スーパーブロックのコピー 5264 を復元する方法を示しています。
# newfs -N /dev/rdsk/c0t3d0s7 /dev/rdsk/c0t3d0s7: 163944 sectors in 506 cylinders of 9 tracks, 36 sectors 83.9MB in 32 cyl groups (16 c/g, 2.65MB/g, 1216 i/g) super-block backups (for fsck -b #) at: 32, 5264, 10496, 15728, 20960, 26192, 31424, 36656, 41888, 47120, 52352, 57584, 62816, 68048, 73280, 78512, 82976, 88208, 93440, 98672, 103904, 109136, 114368, 119600, 124832, 130064, 135296, 140528, 145760, 150992, 156224, 161456, # fsck -F ufs -o b=5264 /dev/rdsk/c0t3d0s7 Alternate superblock location: 5264. ** /dev/rdsk/c0t3d0s7 ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 36 files, 867 used, 75712 free (16 frags, 9462 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** # |