歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

拯救 Linux 系統

作者:馬傳連      Linux 系統管理員幾乎都有過處理癱瘓系統的經歷。如果是硬件問題,那麼通過更換主板、電源或者控制器等出問題的部件,就可解決了;但如果是文件系統崩潰、引導區出現問題或者配置不當導致系統無法啟動,就會出現“數據近在咫尺卻無法訪問”的現象。     對於這種類型的問題,最簡單的解決辦法就是使用急救盤來啟動系統。急救盤可以是軟盤、光盤或者其它可移動的媒體。這種辦法可以幫助啟動損壞的系統,解決存在的問題並將其迅速恢復。     Linux 急救盤一般分為兩類,每一類都有其優點,也有其缺點。第一類急救盤一般由某一特定的 Linux 發行商提供,所以其解決的問題只是針對運行該發行版的機器上出現的問題。這種類型的急救盤可能是啟動過程中用軟盤制作的,或者直接在發行版的安裝盤上。不管是那一種情況,這種針對某一發行版的急救盤一般都反應了該發行版所用的啟動管理器、文件系統和工具的一些情況。     第二類急救盤是獨立於某一特定的發行版的,一般是在一張軟盤或者一張光盤之上。這種類型的急救盤是一種非常靈活的解決方案,它不依賴於任何一個發行版,使用它可以修復很多版本的 Linux 系統。不過,如果該工具不支持你使用的系統,那麼你就不得不采用其它的辦法了。     很顯然,不管是那一種類型的急救盤,我們希望永遠都不要用上它,但是一旦真的碰上問題,就會發現有一張急救盤還是非常必要的。我們先來看一看各種需要使用急救盤的情況,然後關注一下由各 Linux 發行版的急救機制。在下一次,我們再通過比較來看一些獨立於發行版的、功能強大的急救盤。     使用急救盤     和所有其它的操作系統一樣,Linux 自己帶有一些工具,它們可以在系統啟動過程中自動地修復一些常見問題。當然,在此所說的問題不包括硬件方面的錯誤,只是指啟動過程本身或者啟動程序自檢出現錯誤導致系統無法啟動的問題。例如,由於硬盤扇區(比如 MBR )丟失或者損壞、引導程序需要的程序(LILO 或者GRUB )丟失、錯誤的引導程序配置、內核丟失或者損壞導致的啟動問題。     假設內核和引導程序文件本身沒有問題,問題出現在 root 文件系統,那麼就可能會導致 root 或者 /boo t文件系統不能正確識別、定位或者加載。作為啟動過程的一部分,大多數 Linux 系統的啟動腳本會檢測啟動狀態,並且判斷上一次啟動時卸載過程是否徹底完成。在一般情況下,在啟動過程中就可以解決文件系統崩潰的問題,但是如果崩潰影響到系統的啟動腳本或者fsck工具本身,那麼系統就會出現無法啟動的現象。     不同類型的急救盤有不同的能力。一些比較簡單的急救方案提供的就只有一個啟動扇區和一個可以讓你加載現有 root 文件系統的內核;一些比較復雜的解決方案則會提供一個完整的工具集,它幾乎可以處理任何情況下的硬盤崩潰。     一般情況的解決辦法     計算機出現無法啟動的情形有很多種,不過在很多情況下,我們都可以使用相對簡單的辦法來進行恢復。下面是一些可以恢復系統的辦法:     1. 因為 root 文件系統已經崩潰,系統甚至無法啟動到可以訪問fsck工具時候。這種情況比較簡單,可以從急救盤啟動,然後使用fsck來修復崩潰的文件系統。我們可以使用一些標准的fsck常用的一些技巧來進行修復。如果文件確實丟失了,那麼可以從其它的系統上把文件拷貝至系統並且將其進行安裝,另外,如果能夠訪問源盤的話,可以從源盤重新安裝。     2. 文件系統配置不當也是一個問題。對於這種情況,可以從急救盤啟動,然後修復文件系統配置文件( /etc/fstab )或者使用諸如 tune2fs、debugfs 等工具來糾正配置不當的地方。     3. 如果是引導程序有問題,那麼可以從急救盤啟動,然後修改引導程序的配置文件,並且重新安裝部分或者全部的引導程序。     4. 如果系統丟失了內核,也可以從急救盤啟動,加載 Linux 系統的 root 分區,然後重新編譯內核。     5. 最壞的情況是文件系統損壞得非常厲害,這時重新安裝整個文件系統反而更容易一些。在這種情況下,可以從急救盤啟動,然後使用備份工具將有用的文檔備份至網絡或者其它可移動的存儲設備上。當然,進行這些操作的前提是你的急救盤支持這些功能。     很多常見的 Linux 發行版都會提供急救機制,下面我們就詳細看一看各種 Linux 發行版的急救機制。     針對發行版的急救盤     大部分的 Linux 發行版都把創建一個急救軟盤作為 Linux 安裝進程中的一部分。這些急救軟盤主要是在系統出現一些簡單的啟動配置錯誤或者引導程序出現問題時用於恢復系統的。比如:在重新編譯、安裝了一個新內核之後忘了升級引導程序的配置文件;進行了升級引導程序的配置以後忘了運行 LILO (如果使用 LILO 作為啟動管理器的話)等等。     各種發行版提供的這種急救盤具有的最大缺點是它們一般都不提供用於應付比較嚴重問題的工具。比如,Red Hat 中使用“ mkbootdisk ”創建的急救盤只是用於定位系統的 root 文件系統的。因此,此種急救盤只能用於與制作啟動盤的機器有相同分區的機器。     當使用 Red Hat 等的軟盤急救時,如果分區和試圖去修復的系統不同,通常在急救盤的 LILO 提示符可以指定“ root=/dev/root 分區”選項,其中要用欲修復的系統的 root 分區來代替“ root 分區”。不過,因為這種類型的急救盤包含有一個用於制作急救盤系統的內核映像,因此它可能不支持你系統裡的硬件。比如,在一個不支持 SCSI 的系統裡,我們無法創建一個支持SCSI系統的急救盤,除非急救盤的內核中被編譯進去了對 SCSI 的支持。然而大部分急救軟盤並不包括可加載的內核模塊。當然,這並不奇怪,畢竟軟盤的容量實在是有限。     基於軟盤的急救盤的設計過於簡單,並且一般都不包含任何工具,因此無法修復損壞嚴重的系統。還是以 Red Hat 為例,使用“ mkbootdisk ”腳本創建的急救盤只包含有一個啟動扇區、內核和與之有關的配置文件。該急救盤主要是依賴於能夠定位和加載系統的 root 文件系統,然後再由此發現可以徹底修復系統的工具。因此如果你的系統 root 文件系統已經崩潰或者有其它的損壞,就不能訪問那些修復系統的工具了。     今天,大部分的 Linux 發行版都在其啟動光盤中有一個“應急”模式。它以常用的內核來啟動,然後給用戶提供對 fsck 和用於創建和修改啟動配置信息的命令和工具。下面,我們來看一看從光盤啟動的各種 Linux 發行版的急救能力。     以應急模式啟動 Linux     在商業領域裡,在選擇 Linux 發行版時,公司更傾向於整個公司都使用同一個 Linux 發行版。不過,不管有什麼理由,選擇一個有商家支持的版本還是很有必要的。諸如戴爾這樣的硬件廠商捆綁的 Linux 發行版一般都是針對他們的硬件進行優化和改進過的。所以,除非你使用的是他們捆綁的 Linux ,否則他們是不會幫助你的。     如果在一台機器上安裝多個版本的操作系統或者在一個企業的桌面上使用多個版本的 Linux ,那麼就意味著在它出現問題的時候你必需要准備好一堆的 Linux 光盤。所幸的是,被損壞的 Linux 是各個不同的發行版,一般也可以用某一個發行版的光盤來修復它們。當然這還取決於你使用的硬件、文件系統以及各個發行版所支持的引導管理器。     我們來看一看比較流行的 Linux 發行版的各種應急模式,以及它們提供的可以幫助修復損壞 Linux 系統的工具。     Debian     從使用 jigdo 工具( Jigdo 是為了緩解龐大的 CD 和 DVD 光盤映像文件對 Debian 鏡像網絡造成的沖擊而開發出來的)創建的 Debian 2.6 CD 啟動時,有兩種急救機制可供選擇。可以從 CD 啟動,然後進行安裝,以修復現有的系統。此外,也可以使用“ root=/dev/root 分區”選項指定一個現存的root分區。在前一種情況中,選擇了所使用的語言以後,就可以進行一些“查看分區表”、“執行一個 shell ”、“使系統可以啟動”、“制作一個啟動盤”等與修復相關的命令了。選擇執行一個 Shell ,可以訪問、操作 ext2 和 ext3 文件系統的 fsck、fdisk 分區工具,以及用於 ext2 文件系統的 mkfs 工具和重建崩潰交換分區的 mkswap 工具。     Mandrake 8.2     Mankrake 傳統、友好的用戶界面也反應在其提供發行版光盤的應急模式之上。從光盤啟動以後,按 F1 鍵可以進入一個高級選項列表,在 boot 提示符下輸入“ rescue ”,然後按回車。啟動以後,Mankrake 的應急模式會顯示一些菜單選項:“ Re-install Boot Loader ”、“ Restore Windows Boot Loader”、“Mount your partitions under /mnt”、 “Go to console”、“Reboot”和“Doc: what's addressed by this Rescue?”。這其中“ Go to console ”是這些選項中最有用的選項,因為它會給用戶一個 root 提示符。這樣,通過訪問相應的工具,用戶就可以修復自己的系統了。   Mankrake 8.2 的應急模式提供了可用於ext2、ext3、JFS、ReiserFS 和 XFS文件系統的fsck工具。對於那些損壞非常嚴重的不幸用戶,它還提供了 fdisk 和sfdisk 分區工具以及用於 ext2 文件系統的 mkfs 。如果引導程序損壞了,Mandrake應急模式還可以安裝 grub。     Red Hat 7.3     Red Hat 的應急模式非常強大。從第一張光盤啟動以後,按 F4 鍵,然後在 LILO 的 boot 提示符下鍵入“ linux rescue ”,這時系統以應急的內核啟動,然後就可選擇使用的語言和鍵盤。這時,應急模式就會嘗試加載現存 Red Hat 的 root 目錄,並將其加載至 /mnt/sysimage 。這時可以按下回車,登錄到一個 shell 中。     Red Hat 的應急模式只包含可用於 ext2、ext3 和 ReiserFS 文件系統的fsck 版本。如果分區無法用fsck來恢復,那麼Red Hat的應急模式還提供了fdisk和 sfdisk 分區工具以及可以創建 ext2、ext3、RAID、ReiserFS、交換分區甚至是 VFA T文件系統的命令。此外,它還包含了LILO。如果能夠發現並加載現存的分區,它還提供對 grub 的訪問。     Slackware 8.1     作為歷史最為久遠的Linux發行版之一,Slackware 並不太關注其圖形界面,而是努力使其可以修復任何被損壞的 Linux 系統。從第一張光盤啟動以後,可以按下回車來加載標准內核,也可以按下 F3 來看一些可啟動的內核列表。這些內核分別支持特定的設備子系統、文件系統等,其中包括 SCSI、XFS 文件系統、JFS 文件系統、RAID、USB 等。     一旦選擇了一個內核啟動,Slackware 就會提供用於網絡、PCMCIA 等檢測和初始化子系統的命令。因為恢復 JFS 和 XFS 文件系統被處理成支持這些文件系統內核的加載命令,因此,Slackware 提供的 fsck 只支持 ext2 和 ext3 文件系統。如果問題非常嚴重,Slackware還提供了fdisk和cfdisk分區工具,支持 ext2、ext3、JFS、ReiserFS 和 XFS 文件系統的mkfs工具,此外還包括用於創建 RAID 設備和被 LVM 使用的物理卷的命令。Slackware 應急模式不包含 LILO 或者 grub 的安裝。     SuSE 8.0     眾所周知,SuSE 是世界上最大的、更新最頻繁的 Linux 發行版之一。SuSE 安裝盤也有應急模式,並且其提供的工具安全可以滿足你的需要。要讓 SuSE 8.0 運行於應急模式之下,首先從第一張光盤啟動,使用上下箭頭鍵選擇從初始化菜單中選擇“ Rescue System ”,然後按下回車。這時候應急內核啟動,提示你選擇所用的鍵盤,並且會給出一個root提示。     SuSE 8.0 的應急模式提供了一個可以支持 ext2、ext3、JFS、ReiserFS 和XFS 文件系統的 fsck ,以及用於修復 ReiserFS 和 XFS 文件系統、LVM(邏輯卷管理)和 RAID 支持的工具。對於分區損壞非常嚴重的情況,它還提供了fdisk和支持所有文件類型的 mkfs 版本。如果需要重寫主硬盤的 boot 分區,SuSE 8.0 還提供了 LILO 。     好了,至此,現今流行的各 Linux 發行版的各種應急機制就介紹完了。對於同時在使用很多種發行版的企業來說,希望能夠發現一種放之四海而皆准的解決方案。下一次,將向大家介紹一些獨立於發行版的、可從網上免費下載的急救解決方案。   




 



Copyright © Linux教程網 All Rights Reserved