企業(yè)Linux系統(tǒng)安全恢復(fù)實(shí)戰(zhàn)
Linux操作系統(tǒng)已經(jīng)為越來越多的企業(yè)和用戶所接受。相對(duì)于Windows系統(tǒng)來說,其安全性和穩(wěn)定性為大家所稱道。然而,作為一種網(wǎng)絡(luò)操作系統(tǒng),不可避免地會(huì)出現(xiàn)崩潰、死機(jī)等情況,這讓企業(yè)和用戶大傷腦筋。是頻繁地重新啟動(dòng)機(jī)器,還是重新安裝系統(tǒng)呢?其實(shí),這些都是比較笨的辦法,在企業(yè)級(jí)Linux系統(tǒng)中,有很多辦法來挽救崩潰的系統(tǒng)。本文將給出在實(shí)際使用中存在的最為典型的4種場(chǎng)景,來一一介紹如何成功挽救崩潰的系統(tǒng)。
挽救場(chǎng)景1:修復(fù)文件系統(tǒng)
雖然在引導(dǎo)過程中會(huì)自動(dòng)檢查文件系統(tǒng),但如果出了問題不能自動(dòng)修復(fù),將不得不手動(dòng)檢查。默認(rèn)情況下,fsck在開機(jī)時(shí)不能自動(dòng)修復(fù)文件系統(tǒng),需要讓Linux進(jìn)入單用戶模式,這樣就可以手動(dòng)運(yùn)行fsck。如果有必要,可以顯式啟動(dòng)系統(tǒng)到單用戶模式。不要掛載除根以外的任何Linux自動(dòng)掛載的設(shè)備。
值得注意的是:在運(yùn)行fsck之前要備份嚴(yán)重?fù)p壞的文件系統(tǒng)當(dāng)一個(gè)文件系統(tǒng)嚴(yán)重?fù)p壞而試圖修復(fù)它時(shí),fsck有時(shí)會(huì)使情況變得更糟。在這種情況下,在試圖修復(fù)它之前,通過從損壞的文件系統(tǒng)中復(fù)制可讀數(shù)據(jù),就有可能恢復(fù)更多的數(shù)據(jù)。當(dāng)損壞的文件系統(tǒng)保存了重要數(shù)據(jù)時(shí),在試圖使用fsck修復(fù)它之前,先使用dd對(duì)系統(tǒng)做一個(gè)完整的二進(jìn)制備份。
在單用戶模式下執(zhí)行mount命令,以確保要檢查的本地文件系統(tǒng)沒有被掛載。然后在這些文件系統(tǒng)上運(yùn)行fsck,根據(jù)需要對(duì)其進(jìn)行修復(fù)。請(qǐng)注意告知被修復(fù)(并能識(shí)別)的任何普通文件或目錄的所有者,這些文件可能會(huì)不完整或不正確。在每個(gè)文件系統(tǒng)中為丟失的文件查找lost+found目錄。成功后運(yùn)行fsck,如果系統(tǒng)自動(dòng)進(jìn)入單用戶模式,輸入exit從單用戶shell退出,并恢復(fù)引導(dǎo)該系統(tǒng),否則執(zhí)行reboot命令。
如果文件不正確或完全丟失,可能必須從文件系統(tǒng)的備份副本中重建它們。
挽救場(chǎng)景2:重新安裝MBR
當(dāng)Windows安裝覆蓋了MBR時(shí),有必要重新安裝它,從安裝DVD引導(dǎo)系統(tǒng),并選擇Rescue installed system。然后掛載系統(tǒng)映像并在適當(dāng)?shù)脑O(shè)備上運(yùn)行g(shù)rub-install:
# chroot /mnt/sysimage
# grub-install /dev/sda
挽救場(chǎng)景3:當(dāng)系統(tǒng)無法引導(dǎo)時(shí)
當(dāng)系統(tǒng)無法從硬盤引導(dǎo)時(shí),引導(dǎo)系統(tǒng)到挽救已安裝系統(tǒng)或到單用戶/挽救模式。如果系統(tǒng)啟動(dòng),在硬盤的根文件系統(tǒng)上運(yùn)行fsck,并嘗試再次從硬盤引導(dǎo)。如果系統(tǒng)仍然無法啟動(dòng),可能需要重新安裝主引導(dǎo)記錄。
當(dāng)一切都不行時(shí),在安裝過程中執(zhí)行“升級(jí)”到Linux的目前版本。Fedora/RHEL系統(tǒng)可以執(zhí)行一個(gè)非破壞性的升級(jí),并可以在此過程中修復(fù)部分損壞內(nèi)容。
挽救場(chǎng)景4:挽救已安裝的系統(tǒng)
當(dāng)挽救已安裝系統(tǒng)時(shí),可以修復(fù)一個(gè)不能正常引導(dǎo)的系統(tǒng):可以更改或替換配置文件、使用fsck檢查并修復(fù)分區(qū)、重寫引導(dǎo)信息以及更多。為了挽救已安裝系統(tǒng),從網(wǎng)絡(luò)引導(dǎo)CD或安裝DVD引導(dǎo)系統(tǒng),并從“歡迎”菜單選擇Rescue installed system。當(dāng)系統(tǒng)要求指定要使用的語(yǔ)言和鍵盤時(shí),隨后就會(huì)顯示挽救畫面,如下圖1所示:
圖1 挽救畫面
挽救畫面首先會(huì)詢問是否要設(shè)置網(wǎng)絡(luò)接口。如果想從局域網(wǎng)上的其它系統(tǒng)中復(fù)制文件或從互聯(lián)網(wǎng)上下載文件,這個(gè)接口是必需的。選擇設(shè)置該網(wǎng)絡(luò)接口時(shí),需要決定是否讓DHCP自動(dòng)配置網(wǎng)絡(luò)連接還是手動(dòng)提供接口的IP地址和網(wǎng)絡(luò)掩碼以及網(wǎng)關(guān)和DNS服務(wù)器的IP地址。
如果挽救過程發(fā)現(xiàn)已有Linux安裝,可以選擇將其掛載到/mnt/sysimage下,可以選擇只讀模式。隨著現(xiàn)有安裝的掛載,一旦系統(tǒng)顯示shell提示符(類似于bash-4.2#),可以執(zhí)行chroot/mnt/sysimage命令以訪問現(xiàn)有安裝,就如同它已經(jīng)被正常引導(dǎo)了一樣,現(xiàn)有安裝的根目錄為/(根)。。如果選擇不掛載現(xiàn)有安裝,則是在用掛載在標(biāo)準(zhǔn)位置(/bin、/usr/bin等)的標(biāo)準(zhǔn)工具運(yùn)行挽救系統(tǒng)??梢詮谋镜匕惭b修復(fù)或掛載分區(qū)。當(dāng)從挽救shell退出后,系統(tǒng)將重新啟動(dòng)。如果想從硬盤引導(dǎo),請(qǐng)取出CD或DVD。