歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> SCO UNIX系統故障特征、分析及解決

SCO UNIX系統故障特征、分析及解決

日期:2017/2/28 10:24:29   编辑:Unix基礎知識

  在維護SCO UNIX系統時應規范操作,以確保系統的正常運行,如果系統受損,比如誤刪某個系統文件 致使系統無法啟動,這時如果采取重新安裝系統的方法,勢必造成用戶數據的丟失,而且,重 新安裝UNIX操作系統和應用軟件及調試運行往往要花上好幾個小時的時間。能否有辦法呢 ?筆者通過反復探索和實踐,找到了既能以較快的速度修復損壞的系統又能保證數據完好無 損的方法,即事先制作應急引導軟盤,當系統損壞(比如系統無法正常引導、 超級用戶口令 遺忘等)時,用該軟盤進行修復(已經有同行介紹過通過制作應急引導軟盤修復SCO XENIX系 統的方法,但在UNIX與SCO XENIX下應急引導軟盤的制作及使用有很大的區別),現將該方法 介紹出來,供大家參考。
  
  我們首先來制作UNIX應急引導軟盤, 方法如下:
  
  在超級用戶提示符#下敲入:mkdev fd並回車,屏幕上將出現菜單選項如下:
  
  1.48tpi, double sided, 9 sectors per track
  
  2.96tpi, double sided, 15 sectors per track
  
  3.135tpi, double sided, 9 sectors per track
  
  4.135tpi, double sided, 18 sectors per track
  
  因為我們是用1.44MB軟盤制作應急引導盤, 故選擇4,又因為我們的啟動驅動器為1.44 MB的軟驅(下同), 所以當出現o you want to use floppy drive0 or floppy disk 1?時 選擇0, 這時屏幕上出現菜單選項:
  
  1.Filesystem
  
  2.Bootable only (96ds15 and 135ds18 only)
  
  3.Root filesystem only (96ds15 and 135ds18 only)
  
  我們先選擇2制作應急引導盤的可啟動軟盤(以下簡稱Boot盤),當把軟盤插入驅動器後 將提示是否需要格式化軟盤,這裡可按需要進行選擇,然後系統將自動在軟盤上建立文件系 統,並將一些文件拷貝到軟盤上,文件拷貝完後將自動對軟盤上的文件系統進行檢查,無誤後 又將出現上面的菜單選項,我們再選擇3制作應急引導盤的根文件系統軟盤(以下簡稱Root盤 ),同樣我們可按需要選擇是否首先對軟盤進行格式化,然後系統亦首先在軟盤上建立文件系 統,並將一些文件及特別文件拷貝到軟盤上,文件拷貝完後也將自動對軟盤上的文件系統進 行檢查,無誤後仍將又回到上面的菜單選項,至此,UNIX應急引導盤的Boot盤及Root盤制作完 成,我們選擇q退出到超級用戶提示符#下。
  
  由於應急引導盤的Boot盤及Root盤均是通過建立文件系統形成的, 所以我們要查看或 修改上面的內容必須先用命令mount將其安裝到硬盤的某個空目錄(如/mnt)上,待所做的工 作完成後再用命令umount卸下來即可。
  
  在這裡,我們先將後面要用到的命令及意義說明如下:
  
  ①安裝已建立文件系統的軟盤到硬盤的空目錄/mnt下
  
  mount /dev/fd0135ds18 /mnt
  
  ②卸下已安裝到硬盤的軟盤
  
  cd /
  
  umount /dev/fd0135ds18
  
  ③安裝硬盤到已建立文件系統的軟盤的空目錄/mnt下
  
  mount /dev/hd0root /mnt
  
  ④卸下已安裝到軟盤的硬盤
  
  cd /
  
  umount /dev/hd0root
  
  ⑤檢查與收復可能受到損壞的文件系統
  
  對硬盤的根文件系統, 若是用應急引導盤啟動則為:
  
  fsck /dev/hd0root
  
  對硬盤的根文件系統, 若是由硬盤自身啟動後則為:
  
  fsck /dev/root
  
  對軟盤的文件系統為:
  
  fsck /dev/fd0135ds18
  
  要注意的是, 以上命令中mount及umount 只有在超級用戶提示符下才能執行。下面分 析幾種系統不能正常引導故障及解決辦法。
  
  故障之一
  當打開計算機電源後,主控台屏幕上出現如下信息:
  
  boot not found
  
  cannot open
  
  Stage 1 boot failure: error loading hd(40)/boot然後死機, 這表明系統根目錄下 的boot文件丟失。boot是用於裝載並執行UNIX程序的交互式程序, 主要用於裝載和執行UN IX操作系統的核心, 在引導過程中boot將讀/etc/default/boot, 顯示引導過程信息, 裝入 並執行/unix, 所以當boot文件受損時將導致系統引導失敗。我們可通過如下步驟用應急引 導盤恢復系統:
  
  1.將Boot盤插入驅動器並重新對機器加電, 此時由Boot盤開始引導;
  
  2.在系統引導提示下敲入hd(40)/unix, 這個命令用於從硬盤把UNIX核心裝入, 然後輸 入root口令進入單用戶模式, 此時出現超級用戶提示符#;
  
  3.用命令①把Boot盤安裝到硬盤上, 然後用命令: cp /mnt/boot/恢復硬盤根目錄下的 boot文件;
  
  4.用命令②把Boot盤從硬盤上卸下來;
  
  5.敲入haltsys關閉系統, 然後再取出Boot盤, 則故障排除, 系統可正常引導;
  
  6.在系統正常引導後進入超級用戶, 將/boot文件的屬主和組均改為系統原來所定義的 bin即可。
  
  故障之二
  機器加電後, 主控台屏幕出現如下信息:
  
  unix not found
  
  然後死機, 這表明UNIX核心丟失, 因為/unix包含核心, unix文件受損將導致系統無 法裝入並執行內核, 從而出現死機。我們可用如下方法來恢復:
  
  1.將Boot盤插入驅動器並重新對機器加電, 此時由Boot盤開始引導;
  
  2.在系統引導提示下敲入:fd(64) unix root=hd(40) swap=hd(41) pipe=hd(40)或僅 敲入fd(64)/unix亦可, 這個命令用於從Boot盤把UNIX核心裝入,然後輸入root口令進入單 用戶模式, 此時出現超級用戶提示符#;
  
  3.用命令①把Boot盤安裝到硬盤上, 然後用命令: cp /mnt/unix/恢復硬盤根目錄下的 unix文件;
  
  4.用命令②把Boot盤從硬盤上卸下來;
  
  5.敲入haltsys關閉系統, 取出Boot盤, 則故障排除,系統可以正常引導;
  
  6.在系統正常引導後進入超級用戶, 將/unix文件的屬主和組改為系統原來所定義的bin和mem即可。
  
  故障之三
  機器加電後在系統引導提示符下敲入回車鍵, 當第一屏被刷新後在第二屏的最後一行 出現如下信息:
  
  Kernel: i/o bufs=600k 然後系統掛起, 這表明系統上/etc/init文件丟失。 因為i nit程序在核心初始化的最後階段開始執行, 其進程號(pid)為1。 該進程按一定規則啟動 /etc/inittab文件中所列的進程, 引導系統進入所規定的運行級別。 它首先讀/etc/init tab中的initdefault項,當所有的進程都創建成功後, init進入循環等待, 它主要用於打開 主控台/etc/console, 檢查文件系統的一致性, 執行/etc/rc 進行必要的設置。 init在單 用戶模式下啟動shell,而在多用戶模式下運行/etc/brc, /etc/bchk等外殼程序並啟動/et c/rc, 它調用/etc/getty為每個終端生成一個getty進程, 以便在讀入用戶注冊名後完成用 戶的注冊過程。如果/etc/init文件受損,新的進程就無法創建, 從而導致系統掛起, 我們 可用如下方法恢復系統:
  
  1.將Boot盤插入驅動器並重新對機器加電, 此時由Boot盤開始引導, 在系統引導提示 符下按回車鍵, 然後在提示插入Root盤時取出Boot盤並將Root盤插入, 這樣系統全部由應 急引導盤引導, 直至出現提示符#;
  
  2.用命令③把硬盤安裝到軟盤上;
  
  3.把/etc/init文件從軟盤上拷貝到所安裝的硬盤上:cp /etc/init /mnt/etc/init
  
  4.用命令④把硬盤從軟盤上卸下來;
  
  5.用命令haltsys關閉系統後把Root盤取出, 此時系統已可正常引導;
  
  6.在系統正常引導後進入超級用戶, 將/etc/init文件的屬主與組均改為系統原來所定 義的bin即可。
  
  故障之四
  機器加電後在系統引導提示符下敲入回車鍵, 當第一屏被刷新後到第二屏時即出現許 多錯誤信息, 如:
  
  INIT: command
  
  exec /etc/brc 1>/dev/console 2>&1
  
  failed to execute, errno=9 (exec of shell failed)
  ...
  
  等等, 並不斷翻屏顯示出錯信息, 這表明系統/bin/sh文件受損或丟失。因為sh是SH ELL標准、作業控制和限制性命令解釋程序。 所以, 該文件受損或丟失將導致系統啟動失 敗。我們可用如下步驟解決:
  
  1.將Boot盤插入驅動器並重新開啟電源,在系統引導提示符下敲入按回車鍵, 當提示插 入Root盤時把Boot取出並將Root盤插入, 這樣系統全部由應急引導盤引導, 直到出現提示 符#;
  
  2.用命令③把硬盤安裝到軟盤上;
  
  3.把/bin/sh文件從軟盤上拷貝到所安裝的硬盤上: cp /bin/sh /mnt/bin/sh
  
  4.用命令④把硬盤從軟盤上卸下來;
  
  5.用命令haltsys關閉系統後將Root盤取出, 此時系統已可以正常引導;
  
  6.在系統正常引導後進入超級用戶下, 將文件/bin/sh的屬主與組均改為系統原來所定 義的bin即恢復了系統。
  
  故障之五
  系統可以引導, 但在引導時會出現如下錯誤信息:
  
  su: Unknow id: root
  
  ...
  
  INIT: SINGLE USER MODE
  
  **** PASSWORD FILE MISSING!****
  
  Entering System Maintenance Mode
  
  然後系統自動進入系統維護模式即單用戶模式並出現提示符#, 這樣系統就無法進入 多用戶模式工作。當在系統自動進入單用戶模式後, 我們若用命令ls -l進行文件的長列表 顯示時會首先出現一行: /etc/passwd cannot be opened for reading, 然後再給出文件 的長列表, 但長列表中文件屬主原為bin的已全部自動改為0,1,2,3...等等。這表明文件/ etc/passwd受損或丟失, 因為系統加載時要進行工作方式(單用戶或多用戶方式)的選擇, 此時系統會自動在/etc子目錄下尋找passwd
Copyright © Linux教程網 All Rights Reserved