歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Ubuntu 9.04 下引導修復menu.lst 文件分析

solve Ubuntu 9.04 ALERT: /host/ubuntu/disks/root.disk does not exist,Dropping to a shell! /引導修復/menu.lst 文件分析

今天升級了一些軟件,結果不知道為什麼Ubuntu 9.04又進不去了,經過了一番探索,現在修好了。

我現在就是用的Ubuntu 下的中文輸入法,輸入的這些文字。

在嘗試處理問題的過程中出現了很多問題,而這些問題應該是絕大多數的人都可能遇到的問題,但是網上沒找到很清晰的解釋,經過我的嘗試,問題已經基本明了,我大概描述如下:

一、開始的時候無法啟動桌面,提示***File not exist*** busy box **initramfs* 之類的一些東西,判斷是grub4dos 的menu.lst文件出了問題,找到文件,文件在安裝目錄下的ubuntu/disks/boot/grub下面打開,翻到最後一部分,

## ## End Default Options ##

title        Ubuntu 9.04, kernel 2.6.28-11-generic

uuid        0E48A65048A6367D

kernel        /boot/vmlinuz-2.6.28-11-generic root=UUID=0E48A65048A6367D loop=/ubuntu/disks/root.disk ro quiet splash

initrd        /boot/initrd.img-2.6.28-11-generic

title        Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)

uuid        0E48A65048A6367D

kernel        /boot/vmlinuz-2.6.28-11-generic root=UUID=0E48A65048A6367D loop=/ubuntu/disks/root.disk ro single

initrd        /boot/initrd.img-2.6.28-11-generic

title        Ubuntu 9.04, memtest86+

uuid        0E48A65048A6367D

kernel        /boot/memtest86+.bin

### END DEBIAN AUTOMAGIC KERNELS LIST

分析發現title指的是顯示標題,kernel指的是啟動內核,綠色的兩部分是其他的啟動方式,我們不用關心。

開始我估計是目錄識別的問題,就像是boot.ini中可能遇到的初始目錄不對,當然無法引導了。

於是我嘗試輸入了路徑的全稱(hd0,0)/ubuntu/disks/root/***( 注(hd0,0)表示第一塊硬盤,第一分區),然後發現出現了一點畫面,但是又出現了ALERT: /host/(hd0,0)/ubuntu/disks/root.disk does not exist,Dropping to a shell!

判斷是root.disk文件的問題,我上網找了一下,發現人家有的引導文件中沒有loop這行,我又不確定loop是做什麼的,於是刪除loop以及後面一小段,

重新啟動之後發現有更多的錯誤,更多的文件沒有找到,

然後才明白root.disk是wubi安裝後整個系統的虛擬文件,別人有的人沒有loop是因為他們是全新安裝,並非是wubi集成安裝的,於是又添加上了loop那句,

對於/host/(hd0,0)/這個警告肯定也是目錄識別的問題,應該是文件系統掛載到host了,

host下面當然就沒有找到(hd0,0)了,看來是要初始設置目錄,於是將menu.lst該成如下:

## ## End Default Options ##

title        Ubuntu 9.04, kernel 2.6.28-11-generic

root (hd0,0)/ubuntu/disks

uuid        0E48A65048A6367D

kernel        /boot/vmlinuz-2.6.28-11-generic rootdelay=90 root=UUID=0E48A65048A6367D loop=/ubuntu/disks/root.disk ro quiet splash

initrd        /boot/initrd.img-2.6.28-11-generic

引導成功(注意添加紅色的部分,其余的兩段就無所謂了,平時也不進那裡)

host文件夾,實際上就是我之前裝xp的根目錄。

對於uuid        0E48A65048A6367D

每個人的值可能不一樣,所以大家不用改,關鍵注意紅色的和加粗的部分就可以了。

希望能解決各位遇到的問題。

winxos 2009-5-19

補充說明:

後來查了一下:UUID實際上就是一個唯一標識符,就是類似與 (hd0,0)的功能,是作為引導位置的標志,是個新的概念,可能老的grub4dos不能支持。

再次補充說明:

經過昨天晚上的再次嘗試,去掉了UUID引導,直接從掛載地址讀取,就沒問題了。修改後的文件如下:

title   Ubuntu 9.04, kernel 2.6.28-11-generic

root (hd0,0)/ubuntu/disks

UUID=0E48A65048A6367D

kernel   /boot/vmlinuz-2.6.28-11-generic root=/dev/sda1 loop=/ubuntu/disks/root.disk ro quiet splash

initrd   /boot/initrd.img-2.6.28-11-generic

之前我一直以為C盤是hda1(映象中是),結果搞了半天沒成功,後面才發現實際上c盤掛到了sda1...難道我的硬盤是sata的?

各位如果還沒有引導成功的可以參考改成上面的樣子,應該是很穩定了。或者如果不是sata的就將sda1改成hda1就可以了。

winxos 2009-05-20

Copyright © Linux教程網 All Rights Reserved