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

拯救Linux系統

  Linux系統管理員幾乎都有過處理癱瘓系統的經歷。如果是硬件問題,那麼通過更換主板、電源或者控制器等出問題的部件,就可解決了;但如果是文件系統崩潰、引導區出現問題或者配置不當導致系統無法啟動,就會出現“數據近在咫尺卻無法訪問”的現象。   對於這種類型的問題,最簡單的解決辦法就是使用急救盤來啟動系統。急救盤可以是軟盤、光盤或者其它可移動的媒體。這種辦法可以幫助啟動損壞的系統,解決存在的問題並將其迅速恢復。   Linux急救盤一般分為兩類,每一類都有其優點,也有其缺點。第一類急救盤一般由某一特定的Linux發行商提供,所以其解決的問題只是針對運行該發行版的機器上出現的問題。這種類型的急救盤可能是啟動過程中用軟盤制作的,或者直接在發行版的安裝盤上。不管是那一種情況,這種針對某一發行版的急救盤一般都反應了該發行版所用的啟動管理器、文件系統和工具的一些情況。   第二類急救盤是獨立於某一特定的發行版的,一般是在一張軟盤或者一張光盤之上。這種類型的急救盤是一種非常靈活的解決方案,它不依賴於任何一個發行版,使用它可以修復很多版本的Linux系統。不過,如果該工具不支持你使用的系統,那麼你就不得不采用其它的辦法了。   很顯然,不管是那一種類型的急救盤,我們希望永遠都不要用上它,但是一旦真的碰上問題,就會發現有一張急救盤還是非常必要的。我們先來看一看各種需要使用急救盤的情況,然後關注一下由各Linux發行版的急救機制。在下一次,我們再通過比較來看一些獨立於發行版的、功能強大的急救盤。   使用急救盤   和所有其它的操作系統一樣,Linux自己帶有一些工具,它們可以在系統啟動過程中自動地修復一些常見問題。當然,在此所說的問題不包括硬件方面的錯誤,只是指啟動過程本身或者啟動程序自檢出現錯誤導致系統無法啟動的問題。例如,由於硬盤扇區(比如MBR)丟失或者損壞、引導程序需要的程序 (LILO 或者GRUB)丟失、錯誤的引導程序配置、內核丟失或者損壞導致的啟動問題。   假設內核和引導程序文件本身沒有問題,問題出現在 root文件系統,那麼就可能會導致root或者/boot文件系統不能正確識別、定位或者加載。作為啟動過程的一部分,大多數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、交換分區甚至是VFAT文件系統的命令。此外,它還包含了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