有關UNIX啟動的一些體會
Unix主機啟動時,不出現boot:一行,光標不動,(主機設為光驅,軟驅,硬盤啟動時,軟盤未取出)或者說感染了病毒.解決方案:先從UNIX原理上說起,假設UNIX裝在活動的第一分區.UNIX中把硬件全部當做文件來管理,第一個物理硬盤是/dev/hd0,第二個物理硬盤是/dev/hd10,依此類推:第一個物理硬盤的邏輯分區從/dev/hd01到/dev/hd04,/dev/hd0a特指活動分區.主引導程序,引導0和引導1在UNIX系統中都有備份,它們分別為/etc/masterboot, /etc/hdboot0, /etc/hdboot1. 安裝了UNIX系統的機器啟動過程大概是這樣的:上電----BIOS檢查硬盤------從硬盤物理0扇區加載主引導程序-----從活動分區,即UNIX分區加載boot0----加載boot1-----檢查divvy表,找到根文件系統-------裝入/boot,顯示引導提示boot::-----裝入并執行內核/unix------啟動完畢. 了解了啟動過程后,對本文開始提出的問題就很好處理了.首先準備應急引導盤,UNIX系統維護人員應該是常備的,即使沒有也可以立即到其他機器用mkdev fd命令做一張.用應急引導盤啟動,進入軟盤根文件系統,連接硬盤根文件系統: # mount /dev/hd0root /mnt 如果提示出錯,檢查一下根文件系統: # fask /dev/hd0root 再次連接,接著先恢復硬盤主引導程序: # cp /mnt/etc/masterboot /dev/hd00 然后恢復引導0 # cp /mnt/etc/hdboot0 /dev/hd0a 重啟: # umount /mnt # reboot 至此故障解決.順便說一下,如果其它原因造成UNIX系統不能啟動,除了上面兩個步驟外,還可能要恢復引導1和boot文件.因為引導1在UNIX分區的1KB偏移處,所以不能直接拷貝,必須用dd命令: # dd if=/mnt/etc/hdboot1 of=/dev/hd0a seek=1 bs=1k 最后恢復boot,將根文件軟盤取出,插入應急引導盤,執行: # umount /mnt # mount –r /dev/fd0135ds18 /mnt # cp /mnt/boot /tmp # umount /mnt # mount /dev/hd0root /mnt # cp /tmp/boot /mnt 對于SCO UNIX ,boot已經不存放在根文件系統下,而是存放在/boot 下,上面的步驟第5 行應改為: # mount /dev/boot /mnt 恢復后執行reboot重啟計算機即可.
