---- 在SCO UNIX操作系统中,制作系统应急Boot / Root软盘是保障系统安全的重要措施之一,而且是其他的大多数紧急处理方法的基本前提。因此,对于系统维护员而言,及时准确的制作出系统的应急软盘是一项极其重要的工作和任务。
---- 故障表现:在SCO Openserver 5.0.0 5.0.2 5.0.4 5.0.5上制作系统应急盘时,出现下列错误提示:
Notice: HTFS: Out of inodes on EAFS dev marry (76/2)
---- 随后,软盘的制作失败(笔者安装了20多台SCO Openserver 5.0.4,均不能正确制作系统应急盘)。
---- 故障的原因:在SCO UNIX系统中,每个特殊 i 节点(如设备节点)占用128个字节,由于软盘空间有限,所以系统分配给软盘的 i 节点数是固定的。在制作软盘文件系统时(包括系统应急Root / Boot盘),当软盘中所需建立的 i 节点数超过系统分配数额时,系统报错:“Out of inodes”,软盘文件系统制作失败。
---- 在处理这个问题的之前,首先应确认一下你的系统是否安装了最近的系统补丁(Release Supplement),若未安装,应先安装相应的系统补丁。对应的系统补丁有:
SCO Openserver 5.0.0
Release Supplement 5.0.0d
SCO Openserver 5.0.4 RS504C
SCO Openserver 5.0.5 RS505A
---- 其中SCO Openserver 5.0.4 是必需打补丁的( 5.0.4 存在较多的Bug)。
---- 方法一:削减软盘上所要建立的设备节点数,使 i 节点总数小于系统分配数额。由于在系统紧急事件引导环境中,许多设备节点并不是必需的,因此可通过削减相应的设备节点,减少 i 节点资源的占用。
---- 优点:不增加系统分配的 i 节点数额,不会减少软盘上的可用空间。
---- 缺点:要削减的设备节点较难判定。
---- 操作步骤:
---- 1、以 root 登录;
---- 2、进入 /usr/lib/mkdev 子目录:
cd /usr/lib/mkdev
---- 3、备份 fd 脚本:
cp fd fd.orig
---- 4、在 vi 文本编辑器中打开 /usr/lib/mkdev/fd 文件,搜索以下行:
NOTREQ="aud byte cbd cdt da dup
eclearcase/" target="_blank" >cc_ eisarom err log marry pa\
prf ptm ptspwr uapm rtc sleeper"
---- 列出来的这些设备均来自于 /etc/conf/node.d/*,但它们将不包含在软盘系统中。
---- 5、将“ptspwr”改为“pts pwr”,将“cbd”改为“cdb”。
---- 6、在NOTREQ表中增加相应设备。
---- SCO Openserver 5.0.0 及 5.0.2系统NOTREQ表如下所示:
NOTREQ="aud byte cdb cdt da dup
ecc_ eisarom err log marry pa\
prf ptm pts pwr uapm rtc sleeper merge mpm spm svdsp\
svkbd vdsp vkbd vmouse spt mpt "
---- SCO Openserver 5.0.4 及 5.0.5系统NOTREQ表如下所示:
NOTREQ="aud byte cdb cdt da dup
ecc_ eisarom err log marry pa\
prf ptm pts pwr uapm rtc
sleeper merge mpm spm svdsp\
svkbd vdsp vkbd vmouse tun"
---- 7、如果是SCO Openserver 5.0.0 或 5.0.2系统 ,搜索下列行:
# Now build the omitted nodes.
rm -f /tmp/extra_nodes
在其后加入一行:
ls /dev/[pt]typ? > > /tmp/extra_nodes
---- 8、存盘退出,运行 mkdev fd 。一般来说,这时候应该可以正确的创建软盘文件系统了。
---- 9、如果此时运行仍出错“Out of inodes ”,则执行下列命令:
wc -l /etc/conf/node.d/* | sort -nr | more
---- 这将显示出所有在链接工具(link kit)中将随着 i 节点逐个生成的设备名清单。如果你发现那些设备在紧急事件引导环境中是不必要的,可将该设备名加入到/usr/lib/mkdev/fd 文件中的NOTREQ列表里。这样加入NOTREQ表的设备越多,占用软盘上的 i 节点资源越少。当 i 节点占用减少到一定的数量时,系统错误就排除了。
---- 10、测试所生成的 Boot / Root 软盘。测试的目的:一是 Boot / Root 软盘能否正常引导和启动操作系统;二是重要设备能否正常工作(如磁带机、硬盘、CDROM 等)。
---- 方法二:增加系统分配给软盘的 i 节点总数。优点:简单有效。缺点:增加的 i 节点占用了有限的软盘空间。
---- 操作步骤:
---- 1、以 root 登录;
---- 2、进入 /usr/lib/mkdev 子目录:
cd /usr/lib/mkdev
---- 3、备份 fd 脚本:
cp fd fd.orig
---- 4、在 vi 文本编辑器中打开 /usr/lib/mkdev/fd 文件。
---- a、Openserver 5.0.0 或 5.0.2 ,搜索生成文件系统的命令行:
“/etc/mkfs -y -f EAFS
/dev/marry/tmp/ramdisk 5120: XXXX
>/dev/null 2 >&1”
---- 这里的“XXXX”是一个数值,这是当“mkdev fd ”被调用时将分配给软盘的 i节点总数。系统隐含这个数为1000,确属必要可以增大该数值。从系统性能考虑,该数值不要超出太多。如果你需要2048个以上的 i 节点,那你就有必要结合方法一减少一些不必要的 i 节点占用。
---- b、Openserver 5.0.4 ,搜索设置 INODES 变量的那行:
INODES=XXX
---- 这里的“XXX”也是一个数值,同其它版本一样,这也是当“mkdev fd ”被调用时将分配给软盘的 i 节点总数。系统隐含这个数为 512 ,由于该数值设置的太小,因此Openserver 5.0.4最容易出现节点逸出这种问题。可将此值改为1000。从系统性能考虑,该数值不要超出太多。如果你需要2048个以上的 i 节点,结合方法一减少一些不必要的 i 节点占用。
---- 5、存盘退出,问题就解决了。
---- (本文档是根据SCO公司网页资源及其它相关资料撰写的)