次の例では、ルート (/) は 2 面のミラー d0 でミラー化されます。/etc/vfstab 内のルート (/) エントリは、どういうわけかファイルシステムの元のスライスに戻りました。しかし、/etc/system 内の情報は、まだミラー d0 からのブートを示しています。通常考えられる理由としては、/etc/system と /etc/vfstab の保守に metaroot(1M) コマンドが使用されなかったか、または /etc/vfstab の古いコピーが戻されたことが挙げられます。
誤った /etc/vfstab ファイルは、次のようになります。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no - /dev/dsk/c0t3d0s1 - - swap - no - /dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 2 no - # /proc - /proc proc - no - fd - /dev/fd fd - no - swap - /tmp tmpfs - yes - |
エラーのため、マシンがブートされると自動的にシングルユーザーモードとなります。
ok boot ... SunOS Release 5.5 Version Generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1995, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: antero mount: /dev/dsk/c0t3d0s0 is not this fstype. setmnt: Cannot open /etc/mnttab for writing INIT: Cannot create /var/adm/utmp or /var/adm/utmpx INIT: failed write of utmpx entry:" " INIT: failed write of utmpx entry:" " INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): <パスワードを入力> |
この時点で、ルート (/) と /usr は読み取り専用でマウントされます。次の手順に従ってください。
ルート (/) ミラー上で fsck(1M) を実行する。
ルートには正しいメタデバイスを使用するよう注意してください。
# fsck /dev/md/rdsk/d0 ** /dev/md/rdsk/d0 ** Currently 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 2274 files, 11815 used, 10302 free (158 frags, 1268 blocks, 0.7% fragmentation) |
/etc/vfstab ファイルを編集できるよう、ルート (/) を読み書きモードでマウントする。
# mount -o rw,remount /dev/md/dsk/d0 / mount: warning: cannot lock temp file </etc/.mnt.lock> |
metaroot(1M) コマンドを実行する。
# metaroot d0 |
これは /etc/system と /etc/vfstab のファイルを編集して、ルート (/) ファイルシステムが現在メタデバイス d0 上にあることを指定します。
/etc/vfstab ファイルに正しいメタデバイスエントリが収められていることを確認する。
/etc/vfstab ファイル内のルート (/) エントリが次のようになっていると、ファイルシステムがミラーを正しく参照します。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no - /dev/dsk/c0t3d0s1 - - swap - no - /dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 2 no - # /proc - /proc proc - no - fd - /dev/fd fd - no - swap - /tmp tmpfs - yes - |
リブートする。
システムは通常の動作に復帰します。