服务器 频道

SCO制作系统应急盘"Out of inodes"错误处理

  【IT168 服务器学院】在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 
  ecc_  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公司网页资源及其它相关资料撰写的)
  

0
相关文章