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