歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> Unix系統染毒如何解決

Unix系統染毒如何解決

日期:2017/3/6 11:40:04   编辑:Unix資訊

當Unix系統不小心染上了引導型病毒,用最新的殺毒軟件殺完後還是不能啟動,無奈之下只好重新安裝整個系統:包括操作系統、數據庫系統、應用程序,再從備份磁帶恢復數據,花了半天多的時間。筆者聽了不由扼腕歎息,因為筆者也曾經遇到過類似的事情,但只花不到十分鐘就解決了。還是先從原理上說起吧。

Unix系統分區結構,這裡假設Unix裝在活動的第一分區。Unix系統中把硬件全部當做文件來管理,第一個物理硬盤是/dev/hd00,第二個物理硬盤是/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

如果提示出錯,檢查一下根文件系統:
# fsck /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,將根文件軟盤取出,插入應急引導盤,執行:

  1. # umount /mnt
  2. # mount -r /dev/fd0135ds18 /mnt
  3. # cp /mnt/boot /tmp
  4. # umount /mnt
  5. # mount /dev/hd0root /mnt
  6. # cp /tmp/boot /mnt

對於SCO Unix,boot已經不存放在根文件系統下,而是存放在/boot下,上面的步驟第5行應改為:
# mount /dev/boot /mnt

恢復後執行reboot重啟計算機即可。這樣,我們就解決了關於Unix系統的病毒問題。

Copyright © Linux教程網 All Rights Reserved