从引导故障中恢复
尽管存在许多类型的故障可阻碍系统引导,但可采取相同的基本步骤使系统启动。当系统
引导失败时,首先应尝试通过留在屏幕上的证据来识别故障,然后尝试纠正问题 (例如,
接通偶然掉电的驱动器)。如果问题无法纠正 (如引导磁盘上的数据错误),则从包含根
卷镜像的替换引导磁盘来引导系统,从而使损坏得以修复或出错磁盘得以更换。
引导设备无法打开
在引导进程的早期,紧接系统初始化之后,可能存在类似以下的信息:
SCSI device 0,0 is not responding (SCSI 设备没有响应)
Cant open boot device (无法打开引导设备)
这表明,系统 PROM 无法从引导驱动器读取引导程序。此问题的一般原因是:
引导磁盘未上电。
SCSI 总线未终接。
存在某类控制器故障。
磁盘正发生故障并锁住总线,使任何磁盘不能向控制器标识自己,并使控制器以为不
存在挂接的磁盘。
诊断此问题的第一步是仔细检查 SCSI 总线上的每个部件是否正常。如果磁盘掉电或总线未
终接,则更正该问题并重新启动系统。如果其中一个磁盘发生故障,则从总线中移去该磁
盘并替换该磁盘。
如果没有发现任何硬件问题,则错误可能是由于引导磁盘上的数据错误引起。为了纠正该
问题,尝试从替换引导磁盘 (包含根卷的镜像)引导系统。如果无法从替换引导磁盘引导
系统,则可能仍然存在某种类型的硬件问题。与此相类似,如果用替换引导磁盘取代故障
磁盘后仍无法引导系统,这也表明有硬件问题。
无法从不可用的或失效的 Plex 引导
如果磁盘在系统运行时不可用,则驻留在该磁盘上的卷的任何镜像都将失效。这意味着该
磁盘上的数据与该卷的其它镜像不一致。在引导进程中,在获得卷的一个完整配置前,系
统只存取根卷的一个副本 (引导磁盘上的副本)。
如果结果表明用于引导的卷的 plex 失效,则必须从包含非失效 plex 的替换引导磁盘来引
导系统。例如,关闭了初始引导磁盘并从 VxVM 建立的可引导磁盘来引导系统,就有可能
出现该问题。系统仍会正常启动,但驻留在断电磁盘上的 plex 失效。如果系统在重新接通
初始引导磁盘后从该磁盘重新引导,则会用到那个失效的 plex。
如果引导磁盘上 VERITAS Volume Manager 头文件中的错误使 VxVM 不能正确标识磁盘,
则可能会发生另外的问题。在这种情况下, VxVM 不知道该磁盘的名称。这会产生问题,
因为 plex 与磁盘名称相关联,所以在未标识磁盘上的任何 plex 都不可用。
如果根磁盘上的故障影响到根卷 plex ,也会发生问题。在下一次引导尝试中,系统仍期望
使用故障根 plex 来引导。如果在发生故障时已镜像了根磁盘,则可以指定替换根磁盘 (带
有有效的根 plex)来引导系统。
如果发生这些情况中的任何一种,则在作为引导序列的 init 处理部分进行系统配置时,
配置后台驻留程序 vxconfigd 将会注意到该情况。vxconfigd 将显示描述错误的信息并
显示处理错误的方法,然后停止系统。例如,如果磁盘 rootdisk 上根卷 rootvol 的
plex rootvol-01 失效, vxconfigd 可能显示下列信息:
vxvm:vxconfigd: 警告:根卷的 Plex rootvol-01 失效或者不可用。
vxvm:vxconfigd: 错误 : 系统引导磁盘没有有效的根 plex
请从下列磁盘之一启动:
磁盘 : disk01 设备 : c0t1d0s2
vxvm:vxconfigd: 错误 : 系统启动失败
系统关闭。
这将通知管理员:名为 disk01 的替换引导磁盘包含根 plex 的可用副本,应使用该副本来引导系统。
如果引导磁盘上的 plex 不可用,则会收到 VERITAS Volume Manager 实用程序描述该问
题的邮件。确定问题的另一种方法是用 vxdisk 实用程序列出磁盘。在上面的实例中,如
果问题出在根磁盘专用区域的故障 (如:由于介质故障或意外地改写了磁盘上的
VERITAS Volume Manager 专用区域),则 vxdisk list 将显示下列内容:
设备 类型 磁盘 组 状态
- - rootdisk rootdg 故障 位:c0t3d0s2
无效的 UNIX 分区
联机
引导程序一旦装入,便会尝试通过正常的 UNIX 分区信息来存取根磁盘。如果该信息受到
损坏,则引导程序失败,并出现下列错误信息:
File just loaded does not appear to be executable (刚装入的文件看来不
可执行)
如果该消息在引导过程中出现,则应当从替换引导磁盘来引导系统。在引导时,大多数磁
盘驱动程序会在控制台上显示出错信息,指出故障磁盘上存在无效 UNIX 分区。这些信息
类似如下:
WARNING: unable to read label (无法读取标签)
WARNING: corrupt label_sdo (损坏的 label_sdo)
/etc/vfstab 中的不正确项
当封装根磁盘并将其置于 VERITAS Volume Manager 控制之下时,作为正常封装进程的
一部分,为磁盘上的所有分区创建了卷。 VxVM 修改 /etc/vfstab 以使用相应的卷替代
磁盘分区。在手动编辑 /etc/vfstab 文件时应小心,并且应总是在提交对它的任何更改
之前制作一个备份副本。最重要的项是那些对应于 / 和 /usr 的项。在 VERITAS Volume
Manager 安装前便已存在的 vfstab 保存在 /etc/vfstab.prevm 中。
/etc/vfstab 中损坏的根 (/) 项
如果 /etc/vfstab 中根文件系统 (/) 项丢失或不正确,则系统将以单用户模式引导。显
示类似以下的消息:
File just loaded does not appear to be executable (刚装入的文件看来不
可执行)
建议此刻运行 fsck:
# fsck /dev/vx/rdsk/rootvol
在引导进程的此刻, / 安装为只读,而不是读 / 写。由于 /etc/vfstab 中的项不正确或
已删除,需使用下列命令手动以读 / 写模式安装 /:
# mount -o remount /dev/vx/dsk/rootvol
将 / 以读 / 写模式安装后,退出 shell。系统提示输入新的运行级。对于多用户模式,输入
运行级 3:
ENTER RUN LEVEL (0-6,s or S): 3
系统引导后,恢复 /etc/vfstab 中的 / 项。
/etc/vfstab 中损坏的 /usr 项
只有当 /usr 位于一个独立的磁盘分区上时,/etc/vfstab 中才有 /usr 的项。封装包含
/usr 分区的磁盘后, VxVM 将更改 /etc/vfstab 中的项以使用相应的卷。
在丢失 /etc/vfstab 中 /usr 项的情况下,无法引导系统 (即使有 /usr 卷的镜像)。
在这种情况下,从 CD-ROM 引导系统并使用以下步骤恢复 /etc/vfstab:
1. 在引导提示符下使用以下命令,从操作系统的安装 CD-ROM 将其引导为单用户模式:
ok boot cdrom -s
2. 在合适的安装点上 (如 /a 或 /mnt),安装 /dev/dsk/c0t0d0s0:
# mount /dev/dsk/c0t0d0s0 /a
3. 编辑 /tmp/a/root/etc/vfstab,确保存在 /usr 文件系统的项,如下所示:
/dev/vx/dsk/usr /dev/vx/rdsk/usr /usr ufs 1 yes -
4. 关机并从恢复 vfstab 文件的同一根分区上重新启动系统。
缺失或损坏的 /etc/system
不要编辑 /etc/system 中由 VxVM 添加的任何项。所有的 VERITAS Volume Manager
项都包括在 vxvm_START 和 vxvm_END 注释之间。
在对 /etc/system 进行任何更改之前,在根文件系统中制作它的一个副本。如果对新
/etc/system 文件的更改不正确,则可将保存的副本指定给 boot 程序。要将保存的系
统文件指定给 boot 程序,请按照下一节中的步骤进行。
在根磁盘上恢复 /etc/system 的副本
如果 /etc/system 文件被损坏,而 /etc/system 文件的保存副本可用,则可利用
VERITAS Volume Manager 根目录可置性来引导系统:
1. 采用以下命令引导系统:
ok boot -a
2. 按 Return 键接受所有提示下的默认值,以下情况除外:
a. 内核程序的默认路径名 /kernel/unix 可能不适合于您的系统结构。如果是这
样,在以下提示处输入正确的路径名,如 /platform/sun4u/kernel/unix:
Enter filename [/kernel/unix]:/platform/sun4u/kernel/unix
b. 在以下提示处输入保存的 system 文件名,如 /etc/system.save:
Name of system file [/etc/system]:/etc/system.save
c. 在以下提示处输入 /pseudo/vxio@0:0 作为根设备的物理名:
Enter physical name of root device
[...]:/pseudo/vxio@0:0
根磁盘上的 /etc/system 副本不可用
如果 /etc/system 文件损坏或遗失,并且该系统文件的保存副本在根磁盘上不可用,则
在 VERITAS Volume Manager 根目录可置性功能打开的情况下,无法引导系统。
以下步骤假定根磁盘的设备名为 c0t0d0s2,且根 (/) 文件系统在分区 s0 上。
若要在不采用 VERITAS Volume Manager 根目录可置性的情况下引导系统并恢复
/etc/system 文件:
1. 在引导提示符下使用以下命令,从操作系统的安装 CD-ROM 将其引导为单用户模式:
ok boot cdrom -s
2. 在合适的安装点上 (如 /a 或 /mnt),安装 /dev/dsk/c0t0d0s0:
# mount /dev/dsk/c0t0d0s0 /a
3. 如果 /etc/system 的备份副本可用,则恢复它作为文件 /a/etc/system。如果备
份副本不可用,则创建一个新的 /a/etc/system 文件。确保 /a/etc/system 包含
下列 VxVM 所需的项:
* vxvm_START
forceload: drv/driver
...
forceload: drv/vxio
forceload: drv/vxspec
forceload: drv/vxdmp
rootdev:/pseudo/vxio@0:0
set vxio:vol_rootdev_is_volume=1
* vxvm_END
形式为 forceload: drv/driver 的行用于强制装入根镜像磁盘的驱动程序。 driver
名称的实例为 pci、sd、ssd、dad 和 ide。要找出驱动程序的名称,使用 ls 命令获
取与用于根磁盘的设备对应的特殊文件的长列表,例如:
# ls -al /dev/dsk/c0t0d0s2
此程序输出类似如下 (删除了不相关的细节):
lrwxrwxrwx ... /dev/dsk/c0t0d0s2 ->
../../devices/pci@1f,0/pci@1/pci@1/SUNW,isptwo@4/sd@0,0:c
此实例将会需要强制装入 pci 和 sd 驱动程序的文件行:
forceload: drv/pci
forceload: drv/sd
4. 关机并从恢复 system 文件的同一根分区重新启动系统。
阅读(3053) | 评论(0) | 转发(1) |