歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> UNIX系統感染病毒的解決方法

UNIX系統感染病毒的解決方法

日期:2017/2/28 11:24:24   编辑:關於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命令做一張。用應急引導盤啟動,進入軟盤根文件系統,連接硬盤根文件系統:
CODE:  # mount /dev/hd0root /mnt

如果提示出錯,檢查一下根文件系統:
CODE:  # fsck /dev/hd0root

再次連接,接著先恢復硬盤主引導程序:
CODE:  # cp /mnt/etc/masterboot /dev/hd00

然後恢復引導0:
CODE:  # cp /mnt/etc/hdboot0 /dev/hd0a

重啟:
CODE:  # umount /mnt
  # reboot

至此故障解決。順便說一下,如果其它原因造成UNIX系統不能啟動,除了上面兩個步驟外,還可能要恢復引導1和boot文件。因為引導1在UNIX分區的1KB偏移處,所以不能直接拷貝,必須用dd命令:
CODE:  # dd if=/mnt/etc/hdboot1 of=/dev/hd0a seek=1 bs=1k

最後恢復boot,將根文件軟盤取出,插入應急引導盤,執行:
CODE:  # 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行應改為:
CODE:  # mount /dev/boot /mnt

恢復後執行reboot重啟計算機即可。
Copyright © Linux教程網 All Rights Reserved