① Linux不能正常啟動了,怎麼辦
對於使用Linux的人來說,遲早都可能在某一階段遇到這個問題:你正在興高采烈得探索你的系統,調整,優化以挖掘其最大的潛力,突然,omg,你發現,系統不能啟動了!如果你之前已經習慣了使用Windows系統,我打賭,這是一個經常性的問題,而你最初閃出的念頭就是格式化並重裝系統。而對於Linux而言,重裝系統絕對是最後的選擇,只有在我們其它努力都作廢之後,才需要考慮這一點。我個人認為,唯一能讓人不得不重裝系統的情況就是,不幸的你以root身份敲下了不幸的命令rm -rf /。恩,千萬別模仿!雖然你可以通過「ctrl c」來終止這該死的自殺操作。
對於Linux,一旦出現無法啟動系統情況的時候,也許你知道錯誤大概出在哪裡,有比較明確的修復方向,比如調整屏幕解析度,或者修改某個腳本,等等。但是,現在問題的關鍵,是需要能夠啟動或者訪問Linux系統,這樣才能修復它。下面就是一些應急措施的介紹。
最先應該想到,也許也是最簡單的辦法,就是當boot loader—通常都是grub—開始執行時,通過它調整系統運行級別。在出現菜單項後,按下鍵盤上的「e」按鍵,這樣,菜單項能顯示一個或者多個啟動命令,找到有關內核的這一行,將游標移到上面,高亮這一行,再按下「e」,grub就會將這行內容用一個簡單的編輯器環境打開,讓我們能夠對其做出改變。那麼,到底怎麼改變呢?很簡單,只需要告訴init程序,我們希望通過那個級別啟動即可。在內核命令行的最後加上「init X」參數,其中X表示你所希望的運行級別,舉個實際例子,如果你判斷可能是因為顯卡驅動或者解析度導致的啟動錯誤,就可以啟動到命令行模式來修復它,那麼,就應該把運行級別改為純命令行模式,假設是4,改動後的內核命令行就應該是類似於這樣的。
/boot/vmlinuz-2.6.17-11-generic root=UUID=5cc79966-969d-4cd0-abb2-74a132efbd7c ro vga=794 quiet splash init 4
這樣,就等於告訴了init程序,我要以運行級別4啟動,而不是默認的運行級別。
如果這些招數都無法奏效了,怎麼辦?難道我們就坐以待斃了?no。這里還有一個偏門可以供你使用。我們知道,在默認情況下,內核啟動時會執行init程序,但是你可以指定不同的程序讓內核來執行,只需要在後面添加參數「init=/some/program」即可。「/some/program」通常表示諸如/bin/bash或者/bin/sh這種shell程序。注意這里的等於符號,它的作用是告訴內核,你別啟動init程序了,而是啟動我等號後面所指定的任意程序吧。大體命令行如下:
/boot/vmlinuz-2.6.17-11-generic root=UUID=5cc79966-969d-4cd0-abb2-74a132efbd7c ro vga=794 quiet splash init=/bin/bash
這樣,你就可以直接啟動到所指定的shell中,對發生的錯誤進行分析,修復等操作。
如果這樣做都還是不行……好吧,我覺得你人品有問題!那麼,還是拿出恢復cd,通常就是你的安裝光碟,它允許你在啟動時選擇是否進入rescue修復模式。進入這個模式之後,他會自動找到你的硬碟安裝的系統,並將它們掛載到一個臨時目錄下,這樣,你就能進行修改配置文件或者其它修復操作了。
如果還是不行呢?恭喜你,回到Windows時代,還是老老實實重新安裝吧。