SCO Unix 制作系统应急盘“Out of inodes”错误的处理

发表于:2007-07-01来源:作者:点击数: 标签:
---- 在SCO UNIX 操作系统中,制作系统应急Boot / Root软盘是保障系统 安全 的重要措施之一,而且是其他的大多数紧急处理方法的基本前提。因此,对于系统维护员而言,及时准确的制作出系统的应急软盘是一项极其重要的工作和任务。 ---- 故障表现:在SCO Open


---- 在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公司网页资源及其它相关资料撰写的)

原文转自:http://www.ltesting.net