---- 在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公司網頁資源及其它相關資料撰寫的)