77、UNIX系统应急情况处理指南

UNIX系统应急情况处理指南

1. 引言

UNIX系统通常运行稳定,但不可预测的情况仍可能发生,这给UNIX管理员带来难题。因此,了解如何处理这些紧急情况至关重要。下面将介绍几种应对紧急情况的方法,虽示例主要涉及Solaris和HP - UX系统,但也能为其他UNIX平台提供参考。

2. 忘记root密码的解决办法

几乎所有UNIX管理员在职业生涯中都会遇到忘记root密码的问题。当root密码失控,就无法管理系统。UNIX系统针对这种情况有相应解决办法,即无法恢复原密码,只能用新密码替换。但通常需要旧密码才能更换,此时可通过清除 /etc/passwd /etc/shadow 文件中的加密root密码来解决,前提是将系统切换到单用户模式。

2.1 Solaris系统忘记root密码的处理

若Solaris 2.X平台忘记root密码,常规改密或进入单用户模式的方法无法使用,需使用Solaris 2.X操作系统安装CD。具体步骤如下:
1. 从CD以单用户模式启动Solaris 2.X:
ok >boot cdrom -s
此时,CD中的Mini OS(单用户模式)会加载到内存。
2. 将根文件系统挂载到 /a 挂载点(也可创建其他挂载点):
mount /dev/dsk/c0t3d0s0 /a
注意要使用根分区对应的设备文件。
3. 设置终端以便编辑:
TERM = vt100 export TERM
4. 清除“shadow”文件中的加密root密码:
$ cd /a/etc $ vi shadow
删除root密码条目中的加密密码,留空该字段。此时旧的root密码被移除,可访问系统,但为防潜在入侵者,应断开网络连接。
5. 重启系统:
$ reboot
6. 设置/更改root密码:
$ passwd
7. 若启动磁盘有问题,从CD进入单用户模式后,对根分区运行 fsck
$ fsck /dev/rdsk/c0t3d0s0
使用根分区对应的设备文件。

2.2 HP - UX系统忘记root密码的处理

要更改丢失的root密码,需将系统切换到单用户模式。由于重启系统需要root密码,只能先关闭系统(停机也需root密码),这可能导致文件系统损坏。关机后按以下步骤操作:
1. 开启系统。
2. 关注控制台消息,当出现“To discontinue press any key within 10 seconds…”时,按任意键。
3. 在主菜单提示处输入:
Main Menu: Enter command or menu > boot
回答问题:
Interact with IPL (Y or N)? > y
在ISL提示处输入:
ISL > hpux -is
4. 系统继续启动并进入单用户模式,清除 /etc/shadow 文件中的加密root密码。
5. 重启系统到多用户模式:
$ shutdown -r 0
6. 更改root密码:
$ passwd

3. 特殊管理情况处理

下面介绍一些处理系统紧急情况的实际例子,这些例子涉及潜在的系统灾难及后续恢复,优秀的系统管理员应做好应对最坏情况的准备。

3.1 Solaris创建备用启动分区的步骤

备用启动分区的作用是在主分区的操作系统损坏时,让系统仍能启动。从备用分区启动可提供最小核心操作系统配置,足以修复主根文件系统。
主根文件系统通常挂载在 / root 目录,若为镜像则挂载在 /boot1 /boot2 目录。要从备用分区启动系统,需在系统的NVRAM中指定备用分区(否则需指定硬件路径),备用分区可命名为“altboot”,多个备用分区可命名为“altboot1”和“altboot2”。
从备用分区启动(如“altboot”):

ok > boot altboot

使用备用启动分区重启系统:

#reboot -- altboot

安装Solaris 2.6到备用分区的详细步骤如下:
1. 将Solaris 2.6软件CD放入驱动器,从CD启动:
ok > boot cdrom
此时CD中的Mini OS加载到内存,最小所需的根文件系统挂载到 /tmp
2. 选择语言环境:
- 输入数字 0 选择“USA - English (ASCII only)”。
3. 选择终端类型:
- 输入数字 3 选择“DEC VT100”。
4. 进入Solaris安装程序:
- 选择 F2_Continue 。若功能键不起作用,按 <Esc> ,然后按 <Esc - 2> 代替 <F2> ,按 <Esc - 6> 代替 <F6>
5. 识别系统:
- 选择 F2_Continue
6. 输入主机名:
- 输入相应主机名,然后选择 F2_Continue
7. 网络连接设置:
- 选择“Yes”,然后选择 F2_Continue
8. 输入IP地址:
- 输入相应IP地址(永久或临时),选择 F2_Continue
9. 选择主网络接口:
- 若有多个网络接口,选择 hme0 ,然后选择 F2_Continue
10. 确认信息:
- 选择 F2_Continue
11. 选择名称服务:
- 选择“Other”,然后选择 F2_Continue
12. 子网设置:
- 选择“Yes”,然后选择 F2_Continue
13. 输入网络掩码:
- 输入“255.255.255.0”,选择 F2_Continue
14. 选择时区:
- 选择“United States”和“Eastern”,每次选择后都按 F2_Continue
15. 设置日期和时间:
- 设置后选择 F2_Continue
16. 再次确认信息:
- 选择 F2_Continue 。此时系统识别完成,Solaris安装程序启动。
17. Solaris交互式安装:
- 选择 F4_Initial ,然后选择 F2_Continue
18. 分配客户端服务:
- 选择 F2_Continue
19. 选择软件:
- 选择“Core System Support”,然后选择 F2_Continue
20. 选择磁盘:
- 选择包含备用启动分区的磁盘(如 c3t0d0 ),然后选择 F2_Continue
21. 数据保留设置:
- 这是关键步骤,将根分区从 / 重命名为 / root (或 / root1 ),将 /altboot 分区重命名为 / 以安装操作系统。标记 /root swap 为保留( swap 不重要),“overlap”(整个磁盘)已标记,然后选择 F2_Continue
22. 文件系统布局:
- 选择 F4_Manual Layout
23. 磁盘布局显示:
- 注意保留 /root 分区,选择 F2_Continue
24. 挂载远程文件系统:
- 选择 F2_Continue
25. 安装配置文件显示:
- 选择 F2_Continue ,可忽略剩余可用磁盘空间的警告信息。
26. 安装后重启设置:
- 选择“Auto Reboot”,然后选择 F2_Begin Installation 。安装操作系统核心相对较快,期间会收到安装状态通知。自动重启时,要求设置root密码时按两次回车键。
27. 登录系统并设置可用环境。
28. 修改NVRAM:
- 为使系统能从备用启动分区正确启动,需按以下方式修改NVRAM:
eeprom use - nvramc? = true eeprom nvramrc = "...whatever was written... devalias altboot hw_path_for_this_disk:d"
其中“hw_path_for_this_disk”需正确指定。
29. 测试:
- 使用主启动分区和备用启动分区重启系统进行测试。
- 主分区:
reboot

halt ok > boot
- 备用分区:
reboot -- altboot

halt ok > boot altboot

以下是Solaris创建备用启动分区步骤的mermaid流程图:

graph TD;
    A[放入CD启动系统] --> B[选择语言环境];
    B --> C[选择终端类型];
    C --> D[进入安装程序];
    D --> E[识别系统];
    E --> F[输入主机名];
    F --> G[设置网络连接];
    G --> H[输入IP地址];
    H --> I[选择主网络接口];
    I --> J[确认信息];
    J --> K[选择名称服务];
    K --> L[设置子网];
    L --> M[输入网络掩码];
    M --> N[选择时区];
    N --> O[设置日期和时间];
    O --> P[再次确认信息];
    P --> Q[交互式安装设置];
    Q --> R[分配客户端服务];
    R --> S[选择软件];
    S --> T[选择磁盘];
    T --> U[设置数据保留];
    U --> V[选择文件系统布局];
    V --> W[确认磁盘布局];
    W --> X[挂载远程文件系统];
    X --> Y[确认安装配置文件];
    Y --> Z[设置安装后重启];
    Z --> AA[安装操作系统];
    AA --> AB[登录系统设置环境];
    AB --> AC[修改NVRAM];
    AC --> AD[测试启动];
3.2 Solaris镜像启动磁盘故障恢复

以下步骤适用于Solaris系统在使用“DiskSuite 4.1”磁盘管理器,且镜像启动磁盘之一发生故障时的恢复,该方法适用于多种硬件配置。

测试配置包含两个SCSI磁盘:
- c0t3do :主启动磁盘
- c0t1d0 :镜像磁盘

测试过程包括移除主启动磁盘、系统电源循环,然后将磁盘放回系统。
系统关机并移除主启动磁盘后,用单磁盘(镜像启动磁盘)重启,启动时会显示许多警告和错误消息(主要与“只读或缺失文件”有关),系统需要维护,进入单用户模式。

系统恢复步骤如下:
1. 进入单用户模式,输入root密码。
2. 从“损坏”磁盘(实际未损坏)移除元设备数据库副本:
cd /usr/opt/SUNWmd/sbin ./ metadb # 检查当前状态,应为6个副本 ./ metadb -d c0t3dos7 # 移除副本 ./ metadb # 再次检查,应为3个副本
3. 强制解除所有镜像:
$ > metadetach -f d10 d11 $ > metadetach -f d20 d21 $ > metadetach -f d30 d31
注意 d11 d21 d31 属于“损坏”磁盘(主根磁盘 c0t3d0 ),否则应为 d12 d22 d32 。重启系统:
reboot
系统应能以单磁盘进入多用户模式,登录root用户检查状态:
metastat
“损坏”磁盘的串联/子镜像(如 d11 d21 d31 )需要维护。
4. 重新安装磁盘:
- 关闭系统:
$> poweroff

$> halt ok power - off
- 重新安装磁盘并开机。
5. 重新创建数据库副本:
- 以root用户登录,检查当前状态(应为3个副本):
metadb
- 为返回的磁盘添加3个副本:
metadb -a -c 3 c0t3dos7
- 再次检查(应为6个副本):
metadb
- 检查元设备状态:
metastat
- 重启系统:
reboot -- disk1
6. 重新镜像磁盘:
- 检查数据库副本状态:
metadb
- 镜像(重新附加)串联/子镜像:
$ > metattach d10 d11 $ > metattach d20 d21 $ > metattach d30 d31
- 检查镜像完成情况:
metastat
- 镜像完成后重启系统:
reboot

若镜像磁盘损坏,需更换磁盘并准备新磁盘进行镜像。假设磁盘有根文件系统 / 、交换分区和附加文件系统 /altboot 三个分区,更换和重新镜像磁盘的步骤如下:
1. 使用 format 实用程序对 c0t3d0 磁盘进行分区,使其与 c0t1d0 磁盘匹配:
format # 选择启动磁盘c0t1d0 partition # 输入“p”即可 print # 输入“p”查看当前根分区情况 quit # 输入“q” disk # 选择新磁盘“c0t3d0” partition # 创建与根磁盘相同的所有分区 label # 保存新的分区表到磁盘 # 提示是否继续时输入“y”
2. 在新磁盘中创建“状态数据库副本”(注意识别分区/切片 s7 ):
metadb -a -c 3 c0t3d0s7
检查创建的数据库副本:
metadb
3. 重启系统:
reboot
4. 镜像根文件系统:
$> metainit -f d11 1 1 c0t3d0s0 $> metattach d10 d11
镜像过程需要一些时间。
5. 镜像交换分区:
$> metainit -f d21 1 1 c0t3d0s1 $> metattach d20 d21
镜像过程需要一些时间。
6. 镜像 /altboot 分区:
$> metainit -f d31 1 1 c0t3d0s3 $> metattach d30 d31
镜像过程需要一些时间。
7. 检查镜像完成情况:
metastat
8. 镜像完成后重启系统:
reboot

以下是Solaris镜像启动磁盘故障恢复步骤的表格总结:
|步骤|操作|命令示例|
|----|----|----|
|进入单用户模式|输入root密码| - |
|移除元设备数据库副本|检查并移除副本| cd /usr/opt/SUNWmd/sbin; ./ metadb; ./ metadb -d c0t3dos7; ./ metadb |
|解除镜像|强制解除所有镜像| metadetach -f d10 d11; metadetach -f d20 d21; metadetach -f d30 d31 |
|重启系统|以单磁盘进入多用户模式| reboot |
|检查状态|登录root用户检查| metastat |
|重新安装磁盘|关闭系统,重新安装并开机| poweroff halt; ok power - off |
|重新创建数据库副本|添加副本并检查| metadb; metadb -a -c 3 c0t3dos7; metadb; metastat; reboot -- disk1 |
|重新镜像磁盘|镜像串联/子镜像并检查| metadb; metattach d10 d11; metattach d20 d21; metattach d30 d31; metastat; reboot |
|磁盘更换|分区、创建副本、镜像各分区并检查| format; partition; print; quit; disk; partition; label; metadb -a -c 3 c0t3d0s7; metadb; reboot; metainit -f d11 1 1 c0t3d0s0; metattach d10 d11; metainit -f d21 1 1 c0t3d0s1; metattach d20 d21; metainit -f d31 1 1 c0t3d0s3; metattach d30 d31; metastat; reboot |

3.3 HP - UX支持磁盘的使用

HP - UX允许从支持CD磁盘启动系统,这在某些紧急情况下非常方便。具体操作步骤如下:
1. 将“HP - UX Support Disk” CD插入CD驱动器。
2. 开启系统。
3. 在主菜单提示处输入:
Main Menu: Enter command or menu > boot 56/52.2.0
回答问题:
Interact with IPL (Y or N)? > y
在ISL提示处输入:
ISL > 800 Suppor
系统将从支持CD磁盘继续启动(尽管有些消息会提及支持磁带)。
4. 当出现欢迎界面“Welcome to the HP - UX recovery process!”时,选择并输入“Run a Recovery Shell”。
5. 回答问题:
Would you like to startup networking at this time? [n] n
也可直接按回车键。
6. 此时会显示一些消息,包括警告信息,如基于RAM的文件系统中的命令是不支持的“迷你”命令,仅用于恢复目的。同时会提示如果对镜像的根分区(/)进行任何更改,必须以“维护模式”(HPUX - lm)启动,以强制更新镜像磁盘。
7. 最后会显示支持主菜单:
SUPPORT MEDIA MAIN MENU s Search for a file b Reboot l Load a file r Recover an unbootable HP - UX system x Exit to shell c Instructions on chrooting to lvm /(root)
8. 输入“c”查看“chroot”说明,然后退出到shell并运行:
Support# chroot_lvmdisk
输入与根文件系统(/)关联的硬件路径,如“56/52.6.0”或“56/52.5.0”,具体取决于所选的启动磁盘。
9. 要重新挂载系统的根文件系统并启动Bourne shell,输入:
cd /ROOT; chroot /ROOT /sbin/sh
此时系统的根文件系统将挂载到“/”(同时“/stand”文件系统也会挂载),还可以手动挂载其他文件系统,并从命令行执行任何UNIX命令(包括文件系统检查)。
10. 若要返回支持shell,输入“exit”。
11. 若要返回支持主菜单,再次输入“exit”。
12. 若要重启系统,在支持主菜单中输入“b”。

以下是HP - UX支持磁盘使用步骤的mermaid流程图:

graph TD;
    A[插入支持CD] --> B[开启系统];
    B --> C[主菜单输入启动命令];
    C --> D[ISL输入命令];
    D --> E[选择恢复shell];
    E --> F[设置网络选项];
    F --> G[显示支持主菜单];
    G --> H[查看chroot说明];
    H --> I[运行chroot命令];
    I --> J[挂载根文件系统启动shell];
    J --> K[操作文件系统和执行命令];
    K --> L[返回支持shell];
    L --> M[返回支持主菜单];
    M --> N[重启系统];
3.4 HP - UX镜像逻辑卷同步

逻辑卷的镜像副本中的数据可能会变得“不同步”或“陈旧”(例如由于磁盘电源故障或磁盘更换)。在这种情况下,需要进行同步以恢复相同的数据。此过程适用于HP9000 Series 700/800计算机系统。

  • 自动同步 :当非活动卷组被激活时(无论是在启动时自动激活还是稍后使用 vgchange 命令激活),LVM会自动同步卷组内所有逻辑卷的镜像副本,用“非陈旧”物理范围的数据替换标记为“陈旧”的数据。此外,在以下情况下LVM也会自动同步镜像数据:

    • 磁盘在经历电源故障后重新上线。
    • 逻辑卷通过增加镜像副本数量进行扩展时,新添加的物理范围将被同步。
  • 手动同步

    1. 检查逻辑卷的状态,查看是否包含陈旧数据:
      lvdisplay -v /dev/vg02/lvol3
    2. 确定包含陈旧物理范围的磁盘。
    3. 手动同步一个或多个逻辑卷的数据(示例):
      lvsync /dev/vg02/lvol3
    4. 手动同步一个或多个卷组中所有逻辑卷的数据(示例):
      vgsync /dev/vg02
  • 磁盘更换

    1. 保存卷组配置数据(示例):
      vgcfgbackup /dev/vg02
    2. 按照上述手动同步步骤,对新磁盘进行分区、创建数据库副本、镜像各分区等操作,确保数据同步和系统正常运行。

以下是HP - UX镜像逻辑卷同步操作的表格总结:
|操作类型|步骤|命令示例|
|----|----|----|
|自动同步|非活动卷组激活、磁盘故障恢复、逻辑卷扩展| - |
|手动同步|检查状态、确定磁盘、同步逻辑卷、同步卷组| lvdisplay -v /dev/vg02/lvol3; lvsync /dev/vg02/lvol3; vgsync /dev/vg02 |
|磁盘更换|保存配置数据| vgcfgbackup /dev/vg02 |

综上所述,无论是忘记root密码、创建备用启动分区、处理镜像磁盘故障,还是使用支持磁盘和同步镜像逻辑卷,在UNIX系统的应急处理中,都有相应的明确步骤和方法。系统管理员需要熟悉这些操作,以便在遇到紧急情况时能够迅速、准确地进行处理,确保系统的稳定运行。同时,在进行任何操作之前,建议备份重要数据,避免数据丢失造成更大的损失。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值