北肙

当你不能够再拥有,唯一可以做的,就是令自己不要忘记。

PowerPC刀片服务器系统故障修复流水

一、  系统环境 硬件:IBM Blade Center H 系统:rhel-server-5.9-ppc_64 二、故障表现 经过安全加固,重启后无法正常进入系统,错误如下: Authorized users only. All activity may be monitored and reported. (none) login: INIT: cannot execute “/usr/sbin/gdm” INIT: ID “x”respawning too fast: disabled for 5 minutes 三、处理思路 但凡Linux系统无法正常启动,如果无法进入单用户模式,需先借助光盘急救模式或者U盘LiveCD,根据文件“/etc/fstab”挂载原系统各分区,然后修改或者修复关键文件内容再重启。 对于以上错误,网上不难找到解决办法。不过大体都是等系统启动到Grub引导界面时修改参数进入单用户模式,将“/etc/inittab”文件中“id:5:initdefault:”数字改为3,重启后默认进入文本界面,再“startx”查看图形界面报错的具体原因。 顺便提一句,“inittab”文件中不注释的第一行中“id”等于“3”则默认启动文件界面,“id”等于5则默认启动图形界面。该数字表示Linux的运行级别,故命令行中“init 0”表示关机,“init 6”表示重启。 如果仅如上文所提,简单修改个别文件就能解决问题,那也不用专门写这篇文章。本文故障的难点在于,该服务器是PowerPC芯片,系统是通过“Yaboot”引导的,而网络上关于这款引导软件的手册则少之又少。 四、处理过程 1.    进入急救模式 将IBM管理模块网口与笔记本相连。 其默认地址是:“192.168.70.125”,用户名是:“USERID”,密码是:“PASSW0RD”(注意是数字0)。 打开浏览器输入默认地址,进入管理界面后,找到虚拟KVM(貌似菜单名是Remote **),如下图所示,点击“Remote Drive”->“Select Image”->“Add”选择本地镜像,或者“CDROM Drive (D:)”选择本地光驱,然后“Mount All”,之后再启动刀片服务器,否则系统扫描不到新添加的设备。 待系统启动出现如下画面时迅速按“1”,将进入IBM SMS 工具菜单。 选择“5. […]

一、  系统环境

硬件:IBM Blade Center H
系统:rhel-server-5.9-ppc_64

二、故障表现

经过安全加固,重启后无法正常进入系统,错误如下:

Authorized users only.
All activity may be monitored and reported.
(none) login:
INIT: cannot execute “/usr/sbin/gdm”
INIT: ID “x”respawning too fast: disabled for 5 minutes

三、处理思路

但凡Linux系统无法正常启动,如果无法进入单用户模式,需先借助光盘急救模式或者U盘LiveCD,根据文件“/etc/fstab”挂载原系统各分区,然后修改或者修复关键文件内容再重启。
对于以上错误,网上不难找到解决办法。不过大体都是等系统启动到Grub引导界面时修改参数进入单用户模式,将“/etc/inittab”文件中“id:5:initdefault:”数字改为3,重启后默认进入文本界面,再“startx”查看图形界面报错的具体原因。
顺便提一句,“inittab”文件中不注释的第一行中“id”等于“3”则默认启动文件界面,“id”等于5则默认启动图形界面。该数字表示Linux的运行级别,故命令行中“init 0”表示关机,“init 6”表示重启。
如果仅如上文所提,简单修改个别文件就能解决问题,那也不用专门写这篇文章。本文故障的难点在于,该服务器是PowerPC芯片,系统是通过“Yaboot”引导的,而网络上关于这款引导软件的手册则少之又少。

四、处理过程

1.    进入急救模式

将IBM管理模块网口与笔记本相连。
其默认地址是:“192.168.70.125”,用户名是:“USERID”,密码是:“PASSW0RD”(注意是数字0)。
打开浏览器输入默认地址,进入管理界面后,找到虚拟KVM(貌似菜单名是Remote **),如下图所示,点击“Remote Drive”->“Select Image”->“Add”选择本地镜像,或者“CDROM Drive (D:)”选择本地光驱,然后“Mount All”,之后再启动刀片服务器,否则系统扫描不到新添加的设备。
pc-1
待系统启动出现如下画面时迅速按“1”,将进入IBM SMS 工具菜单。
pc-2
选择“5. Select Boot Options”,回车。
pc-3
选择“1. Select Install/Boot Device”,回车。
pc-4
选择“7. List all Devices”,回车,扫描可启动设备。
pc-5
pc-6
如下图所示,“4. USB CD-ROM”为新添加光盘镜像,选择并回车。(因机器而异,至于到底是哪个,只要不是本地盘,多试几次就知道了。)
pc-7
选择正确的启动介质后,系统进入“Yaboot”引导界面,在“boot: ”后面输入“linux rescue”,可进入光盘镜像急救模式。如果此时报以下错误:

Please wait, loading kernel... Elf64 kernel loaded... Loading ramdisk... Claim failed for initrd memory at 02000000 rc=ffffffff ENTER called ok

在终端中输入“setenv real-base 1000000”,如果回车后紧跟着命令出现“ok”,则参数修改成功,继续在终端输入“reset-all”重启,重复以上步骤至此。
pc-8
pc-9
pc-10
pc-11
pc-12
以上界面占用时间较长,请耐心等待,当询问是否启动网终设备时,本文选择“No”,选“Yes”需要配置网络,此处按住不提。正常情况下,急救模式会扫描出原系统中LVM,但是总会报错,提示你自动挂载不完全,其内容部分可用,选择“OK”开启“Shell”,当退出此shell时,系统自动重启。接下来提示急救模式尝试挂载原系统根分区到“/mnt/sysimage”,选择“continue”。除非你只是想看看原系统文件结构,那么请不要选择“read-only”和“skip”。
pc-13
pc-14
pc-15
pc-16
如上图,急救模式下成功开启一个终端,可获得完整系统的部分功能。

2.    修改文件内容

如之前所说,该急救模式只挂载了部分根分区,所以在“/mnt”下新建文件夹“/mnt/root”,将原根分区挂载至此。
查看“/dev/mapper”下文件(RedHat Linux企业版安装的时候对硬盘格式化,均是创建了逻辑磁盘卷,而Linux下该设备都存放在“/dev/mapper”目录下。如果是其它版本Linux且对本地硬盘直接分区使用的,用“fdisk -l”、“fdisk /dev/sd*”就可以查看到分区信息。),如果有类似“lv0”的设备,则直接挂载,如果没有需用命令“pvscan”选扫描原系统中设备。
pc-17
pc-18
pc-19
上图上Debian Linux无图形界面系统中“inittab”内容,仅供参考。
话说修改上述文件后重启,本案例中系统并没有正常进入文本界面,依旧显示“(none) login:”好在“INIT: cannot execute ‘/usr/sbin/gdm’”图形界面异常的错误暂时排除,等系统正常启动,可按网上解决办法处理。

3.    备份数据

接原步骤进入急救模式,点亮该刀片服务器前面板上“Media Tray”按钮或者在刀箱管理界面KVM操作条上为其选择正确的刀片。
由于Linux原生不支持NTFS文件系统,需要准备足够大的空闲硬盘并格式化为Fat32/ext3/ext4等Linux支持的格式。由于急救模式下U口设备不会自动挂载,需先“fdisk –l”并根据大小等条件确定新加盘名称,并在“/mnt”下新建该盘挂载点“backup”(mkdir /mnt/backup),再执行挂载命令。如果新盘需格式化为Linux下的文件系统(例:ext3),则执行“mkfs.ext3 /dev/sd*”。Fat32文件系统通过命令“mount /dev/sd* /mnt/backup”直接挂载。
然后,就嗨皮地备份数据吧。但需注意以下几个问题:
1、通过IBM刀箱管理口挂载网络镜像进入急救模式,如果因时间过长导致笔记本睡眠而网络断开,系统会假死。
2、系统假死之后,备份操作应该就停止了(假想,未经验证)。在这个假死的系统中,部分操作依旧可以进行,但是想通过U口挂载硬盘,肯定不会识别到。
3、假如系统正常,在终端中拷备大量文件,用“cp”还是“tar”还是“cpio”,这个有待研究。但有一点,不管什么命令,在前台执行的时候,如果终端退出 (远程ssh连接主机,不修改相关参数,一段时间后终端因超时而断开连接),该进程也会终止。所以,备份操作的时候,不妨加个“&”,让命令在后台执行,以防万一。

4.    修复系统

本文中案例在实际操作的过程中,并没有备份数据,而是通过从其它同版本操作系统中复制文件,达到修复系统的目的。
在进入急救模式,想要chroot到原系统中时,执行“chroot /mnt/root /bin/bash”提示没有“/bin/bash”,经查看,原系统中“/bin”文件夹整体丢失,原因不详。正好同一个刀箱中其它刀片不论是硬件型号还是系统版本都与之相同,本着Linux系统中“一切皆文件”的理念,直接拷贝过来为我所用。
将KVM及“Media Tray”都切换到同一刀箱其它刀片,插入Fat32格式的U盘,如果该刀片没有图形界面,则需先挂载该U盘,后执行“cp –av /bin /media/USB”(注意根据实际替换/media/USB)。对于cp命令,“-v”参数不需多说,就是啰嗦模式,显示命令执行详细信息,“-a”等同于“-pPR”表示保留原目录或文件的属性及其层次结构并拷贝符号链接(特别注意:如果源文件中有硬链接,cp命令会让这些文件失去这个属性。所以,之前备份数据的命令,请使用tar或者cpio或者pax。如果要拷贝的源文件不能确定是不是符号链接,而需要的却是原始文件,则加上“-L”参数。)。
pc-20
pc-21
pc-22
理论上来说,这样拷贝是万无一失,但实际操作中却不然。在执行上述操作的时候,符号链接拷贝报“权限不够”错误。以下是“/bin”目录下所有的符号链接对应关系。
pc-23
最笨的办法是一个一个敲,这也是最快的办法,相对来说不那么枯燥的办法则是——“写个脚本”。如下图所示。在脚本中改掉“SOURCE”和“TARGET”两个参数,执行“./get.sh 0”会从“SOURCE”目录中读取软链接信息,“./get.sh 1”则会在“TARGET”目录中创建与“SOURCE”一致的软链接。实际操作中,只需把脚本放在U盘即可。
pc-24
在完成“/bin”目录的文件修复之后,先将急救模式系统根切换到原系统,再启动“/etc/init.d/”下任意一个服务测试原系统是否已经完整。
pc-25
以上步骤没问题,就可以重启进行深度测试了。至此,系统修复完成。最后再总结一句,在Linux系统中,只要能保证两个文件内容权限相同,就可以替代使用。一般来说“/bin”“/sbin”下都是系统层面可执行文件,从系统安装完成后是一成不变的,而对于“/etc”“/usr”而言,只要新装了软件,都会增加或者修改文件。

Leave a Reply

Your email address will not be published. Required fields are marked *