關於“安裝gentoo,重啓後,啓動自檢失敗”的故障的原因分析及解決方案

故障背景:

博主閒來無事,就把實驗室的一臺HP pro 2080臺式機給裝了gentoo,一來是作爲項目的服務器使用,二來是熟悉下,好給自己的本本也來一個。

下面說下我的大致情況吧:

HP pro2080商用機標配,2G內存,除了自己加了一個IDE的cd rom外,沒有任何擴展。

系統裝的是gentoo 13.0

kernel:3.10.7

使用手動配置編譯內核


硬盤分區情況

       /dev/sda1 /boot ext2 200M

       /dev/sda2 /     xfs  50G

       /dev/sda5 /etc  reiserfs 20G

       /dev/sda6 /usr  xfs  50G

       /dev/sda7 /var  xfs  100G

       /dev/sda8 /home xfs  100G

故障描述:

安裝過程一路無事,等到系統重新引導啓動的時候,出現

INIT:version 2.88 booting
INIT:no inittab file found
Enter runlevel:

如圖(圖不是我的,但當時沒有留圖,只好借下):

這時,無論輸入1-6哪個運行級別,系統都會出現:

INIT:no more processes left in this runlevel

然後就卡住了。

解決過程:

   根據提示,我使用gentoo的liveCD chroot進系統,查看了/etc/inittab文件,並確認文件存在且無誤,然後重新引導後,還是原來的情況。

   沒辦法,系統也沒什麼其他的提示,系統沒init,所以也沒有日誌;只好向度娘和谷哥求助咯。

在搜索框中打入系統的提示信息,果然,出來了許多網頁。看故障描述,和我的很像,可惜剛開始的幾個都沒有說明解決方案。。。。。博主繼續。。。。

   又找到一篇csdn上的博文,說是看下inittab文件中是否缺失了某2行內容,博主如獲至寶,趕緊用livecd啓動,結果發現自己的inittab文件中是不存在那種情況的,也就是說,博主的inittab文件是對的。。。。失望了。。。。只好繼續咯

   接着,仍然是csdn(csdn還是很不錯的^_^),有篇博文說是重新安裝sysvinit、openrc、baselayer後就解決了,並給了一個gentoo bug的網頁鏈接。博主保持謹慎的態度,並沒有馬上去實驗了,因爲開機關機也很麻煩、很慢,先看了下gentoo bug的網頁,表示有點似懂非懂(原諒我的英文水平吧。。。畢竟才四級)。然後又在網上看,發現另一個gentoo bug頁面,是相似的問題,下面有很多網友的回覆和建議,這樣,博主就抱着這麼多辦法去慢慢試。

   首先是重新安裝了sysvinit,inittab文件被新文件覆蓋後,重啓,問題依舊,然後在grub界面更改grub參數,在啓動項後面添加 3,結果一樣,加S,結果提示 打不開passwd database文件,博主好桑心啊。。。。。。繼續。。。。

   在啓動項中添加 init=/bin/bash後啓動出現一個console,然後。。。就沒有然後了。。。。

   經過網上這麼多搜索未果後,博主思考了下,是不是內核配置的原因(因爲在內核配置的時候,ssh斷了一次,所以重新配的出了點問題,導致我對具體配了點什麼沒有印象)???然後,livecd啓動->chroot->重新配置內核->編譯安裝,這次沒出任何問題,然後重新引導,結果問題依然沒有解決。。。。

   此時,無奈啊,時間已經是半夜0點15分了,只好暫時作罷,回去休息鳥。。。。


  第二天,因爲要做網絡檢測,所以,中午纔過來實驗室這邊,趁着這時間,博主又在思考那個問題了,不過還是沒想出原因來。。。。所以,做了一個愚蠢至極的做法:備份了內核、etc中的一些配置文件後,格式化了磁盤,重新安裝。。。。結果,辛辛苦苦結束後,結果還是沒變。。。這時候博主想哭的心都木有了,昨晚加上今天中午都4個小時了,這個問題都解決不了。。。。太詭異了。


   然後發了會呆,和小夥伴打了會屁。忽然,博主腦子靈光一閃~~~系統說inittab文件缺失,但我的inittab文件不僅還在而且完好,那是不是因爲系統訪問不到它呢?   那麼是因爲etc的文件系統是reiserfs麼?可是文件系統應該不會吧。。。。是因爲。。。沒掛載??!!

   想到這,博主趕緊livecd啓動,把 etc分區中的etc文件拷到了 / 分區的etc目錄下,取消etc分區的掛載,然後重啓。。。。

   5秒後,系統順利進入login 555~~~~~~~

解決方法:

   沒錯,就是因爲/etc單獨劃分了分區,辦法是不爲etc單獨設置掛載點。


思考:

   linux的啓動順序是什麼呢?啓動時,先掛載/,然後引導內核,然後init。。。這個過程沒有掛載fstab中的磁盤麼。。。所以Etc分區還未掛載? 看來要補下linux啓動的知識了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章