Linux系統沒法啓動修復方法

沒有操做系統可以確保100%可靠。終有一天,即便Linux也會沒法啓動。本文爲你提供一些在Linux工做站沒法正常啓動時所採用的策略。  安全


 無論你多麼喜好你的Linux機器,有時候你都必須恢復你的系統。是的,即便一臺Linux機器也可能遭受系統崩潰:不論是因爲視頻配置錯誤、內核更新出錯、或是因爲init腳本配置錯誤,這種狀況都是必然的。我看到過大量這種狀況——即便在我本身的機器上,大多數是因爲X配置出錯——這確實使人沮喪。  bash


 在我看來,從新安裝系統並非最佳救援計劃。有時候,最佳救援計劃甚至不須要從救援磁盤啓動。本文將爲如何避免系統崩潰提供一些提示和訣竅,幫助你創建恢復崩潰的Linux機器所需的工具。  服務器


 使用正確的運行級別  網絡


 安裝好一個新的Linux系統後,我當即採起措施以確保災難不會輕易發生。其中一個措施就是編輯系統的運行級別。運行級別告訴系統離採用引導過程還有多遠。運行級別分爲六個等級:  編輯器


 0級:中止(不設置initdefault)  ide


 1級:單用戶模式  工具


 2級:多用戶模式,沒有NFS(與3級相同,若是你沒有創建網絡)  ui


 3級:完整的多用戶模式  操作系統


 4級:不使用  視頻


 5級:X11  


 6級:從新啓動(不設置initdefault)  


 新型的Linux系統幾乎老是默認使用運行級5(X11),表示系統在引導完成後,將會在圖形登陸界面處中止。在某物(或某人)使用X配置前,系統一切正常。  


 而後你必須找到一個登陸方法。你能夠按下[Ctrl][Alt][F7]進入一個基於文本的虛擬窗口,但爲何要這麼麻煩呢?相反,我老是在/etc/inittab文件中將運行級更改成3級。你更改的代碼爲:  


 id:5:initdefault:  


 它被更改成:  


 id:3:initdefault:  


 當X出錯時,這是一個很是簡單的系統恢復方法。  


 多內核  


 另外一個明顯的磁盤恢復方法是老是安裝一個正常運轉的內核。我一般在一個經過yum更新的內核上工做。有時候,內核會出現一些錯誤,使得個人一臺或幾臺機器沒法啓動。  


 爲避免這種狀況,我一直保證在機器上使用至少一個正常運行的內核。要解決這個問題,首先應在/etc/yum.conf文件中添加plugins=1,而後應用這段腳本(由RedHat的Jeremy Katz編寫),並將它命名爲n-installonly.py,保存在/usr/lib/yum-plugins文件中。你能夠經過修改tookeep變量(默認爲2)的方法更新系統所使用內核的數量。  


 知道系統上有一個正常運轉的內核,你就能夠進行安全升級。若是新內核出錯,只需啓動舊內核就能夠解決新內核上的問題(不論是刪除、從新編譯仍是升級)。  


 救援模式  


 若是你在使用Red Hat和LILO引導加載器,你就能夠插入產品光盤1,並在引導提示符下輸入Linuxrescue進入救援模式。啓動機器後,你就會看到bash#提示符。在這個模式下,你可使用許多工具。  


 如你所見,有檢查硬盤完整性、修復硬盤、檢查內核模塊、裝配設備、以及建立文件系統等的工具。此時是進行救援嘗試的最佳時機(若是你使用的是一個Red Hat,或基於Red Hat的系統)。  


 另外一個救援方法是進入單用戶模式,這裏你的計算機引導進入運行級1。系統裝配你的本地文件系統,但不激活網絡。你獲得一個可用的系統維護外殼。要進入單用戶模式,在LILO提示符下輸入:  


 Linuxsingle  


 或  


 Linuxemergency  


 創建一張救援CD  


 若是你正在使用LILO引入加載器,可使用一個叫作mkrescue的強大工具。這個工具通常用於建立引導軟盤,但也可用來建立ISO。其用法以下。  


 若是你使用Mandriva:  


 mkrescue --iso --initrd /boot/initrd-KERNEL-NUMBER.img --  


 kernel /boot/vmlinuz-KERNEL-NUMBER  


 注意:這裏的KERNEL-NUMBER指內核的版本號。  


 若是你不能肯定內核的版本,能夠用如下命令找到intrd和vmlinuz的號碼:  


 uname –r  


 運行這個命令後,你就會在運行mkrescue命令的目錄中發現一個rescue.iso文件。如今你能夠用如下命令創建鏡像:  


 首先,檢查創建CD的設備號碼:  


 cdrecord –scanbus  


 而後用如下命令創建鏡像:  


 cdrecord dev=0,0,0 rescue.iso  


 注意:這裏的dev=0,0,0是用上面的scanbus命令查出的號碼。  


 若是你使用Slackware,使用這些步驟創建一張引導CD:  


 mkrescue –iso  


 注意:Slackware自動獲知在ISO中放入何種內核。  


 而後,你能夠用創建Mandriva鏡像一樣的方法創建鏡像。  


 SystemRescueCD  


 SystemRescueCD是一個保存在可引導光盤上的Linux系統,用於在系統崩潰後修復系統和數據。它還可在計算機上方便地執行管理任務,如創建和編輯硬盤分區。它由許多系統實用工具(parted、partp_w_picpath、fstools)和基本實用工具(編輯器、midnight commander文件管理器和網絡工具)構成。  


 它使用起來很是簡單。只須要從光盤啓動你就能夠執行一切操做,就像從硬盤啓動同樣。系統內核支持大多數重要的文件系統(ext2/ext3, reiserfs, reiser4, xfs, jfs, vfat, ntfs, iso9660)和網絡(samba和nfs)。  


 SystemRescueCD多是市面上最優秀的救援系統。你不只能夠從光盤上使用這種救援方法,還能夠將這個救援系統放在U盤上使用。  


 要在一個U盤上創建一個SystemRescueCD,你須要大於256MB的磁盤空間。從Sourceforge下載iso鏡像並把它燒製到光盤上。如今你必須在U盤上建立文件系統。使用dmesg命令找出U盤名稱,而後用如下代碼擦寫U盤:  


 dd if=/dev/zero of=/dev/sda  


 這裏的/dev/sda是U盤的名稱。  


 如今在U盤上安裝主引導記錄:  


 install-mbr /dev/sda  


 或  


 install-mbr --force /dev/sda(若是命令出錯)  


 如今創建分散分區:  


 parted /dev/sda  


 (parted) mkpartfs primary fat32 0 100% // use help or help mkpartfs command to see help  


 (parted) print // check if the write was ok  


 (parted) quit  


 如今已經創建好文件系統,而後將用SystemRescueCD鏡像燒製的CD中的文件複製到U盤中。保證你複製的文件等級和CD上的相同。  


 如今,使得U盤能夠用sysLinux命令啓動:  


 sysLinux/dev/sda1  


 這裏的/dev/sda1是磁盤的名稱。  


 如今你已經創建了一個你能夠成天隨身攜帶的救援U盤。因爲你使用Linux,你並不須要常常用到它。  


 最後總結  


 Linux是一個很是穩定的環境,但因爲該系統中還有許多其它系統,它們可能會出現錯誤。雖然咱們很容易會因爲使用Linux而洋洋自得(由於它存在諸多優勢),但瞭解如何拯救一個系統崩潰的機器也不失爲一種明智的作法。  


 固然,不是世界上全部的救援系統都能100%地恢復你的系統,所以你可能但願考慮爲你的Linux服務器和桌面系統實施一個災難恢復計劃。

相關文章
相關標籤/搜索