在以下示例中,根 (/) 文件系统是用双向镜像 d0 镜像的。/etc/vfstab 文件中的根 (/) 项由于某种原因而恢复到文件系统的原始片。但是,/etc/system 文件中的信息仍显示为从镜像 d0 引导。最有可能的原因就是,没有使用 metaroot 命令来维护 /etc/system 和 /etc/vfstab 文件。另一个可能的原因就是,将 /etc/vfstab 文件的旧副本又重新复制到当前的 /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 - swap - /tmp tmpfs - yes - |
由于出现错误,您将在系统引导时自动进入单用户模式:
ok boot ... configuring network interfaces: hme0. Hostname: host1 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): <root-password> |
此时,根 (/) 和 /usr 文件系统都以只读方式挂载。请按照以下步骤操作:
针对根 (/) 镜像运行 fsck 命令。
注意使用根 (/) 镜像的正确的卷。
# 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 命令。
# metaroot d0 |
此命令会编辑 /etc/system 和 /etc/vfstab 文件,以便指定根 (/) 文件系统现在位于 d0 卷上。
验证 /etc/vfstab 文件是否包含正确的卷项。
/etc/vfstab 文件中的根 (/) 项应如下所示,从而使文件系统的项可以正确地引用 RAID-1 卷:
#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 - swap - /tmp tmpfs - yes - |
重新引导系统。
系统将恢复到正常的运行状态。