歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 如何修復Linux無法正常啟動故障

如何修復Linux無法正常啟動故障

日期:2017/3/1 16:15:38   编辑:關於Linux
如何修復Linux無法正常啟動故障 [html] 沒有操作系統能夠確保100%可靠。終有一天,即使Linux也會無法啟動。本文為你提供一些在Linux工作站無法正常啟動時所采用的策略。  不管你多麼喜愛你的Linux機器,有時候你都必須恢復你的系統。是的,即使一台Linux機器也可能遭受系統崩潰:不管是由於視頻配置錯誤、內核更新出錯、或是由於init腳本配置錯誤,這種情況都是必然的。我看到過大量這種情況——即使在我自己的機器上,大多數是由於X配置出錯——這確實令人沮喪。  在我看來,重新安裝系統並不是最佳救援計劃。有時候,最佳救援計劃甚至不需要從救援磁盤啟動。本文將為如何避免系統崩潰提供一些提示和訣竅,幫助你建立恢復崩潰的Linux機器所需的工具。  使用正確的運行級別  安裝好一個新的Linux系統後,我立即采取措施以確保災難不會輕易發生。其中一個措施就是編輯系統的運行級別。運行級別告訴系統離采用引導過程還有多遠。運行級別分為六個等級:  0級:停止(不設置initdefault)  1級:單用戶模式  2級:多用戶模式,沒有NFS(與3級相同,如果你沒有建立網絡)  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、partimage、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服務器和桌面系統實施一個災難恢復計劃。
Copyright © Linux教程網 All Rights Reserved