Ubuntu9.10分區結構及引導修復
Ubuntu9.10經過長時間的發展,這里我發表一下個人理解,下面就這就來講術Ubuntu9.10。Ubuntu9.10于XP雙系統,前兩天XP中招了,重裝XP后Grub引導丟失,按常規方法從Live-CD無法修復,試了好多方法,最后終于搞定了,共享給大家。
一) 分區結構
Ubuntu9.10裝在ext4的分區上,SYS為NTFS分區,裝的XP,APP是NTFS分區,BAK為fat32分區。
二) 引導修復
下載最新Grub4Dos 我下的是 grub4dos-0.4.4-2009-06-20.zip打開壓縮文件,把里面的grldr、grldr.mbr、menu.lst這3個文件解壓到Windows系統所在分區根目錄,例如我的分區,就把這3個文件解壓到C盤根目錄下。打開C:\menu.lst文件(最好用UltraEdit-32之類的打開,若用文本文件打開,肯能有好多方塊),添加如下內容:
- title Ubuntu9.10
- root (hd0,6)
- kernel /boot/vmlinuz-2.6.30-8-generic root=UUID=28d5eac5-c42c-49ef-8537-0b280ff87de1
ro quiet splash rootfstype=ext4 acpi=off noapic nolacip- initrd /boot/initrd.img-2.6.30-8-generic
- boot
注意:
1、root后跟的盤符信息視具體情況定。
linux中的(hd0,0)到(hd0,3)是留給主分區的,以我的分區為例,C盤(SYS)是整個硬盤的主分區,所以他的編號就是(hd0,0),沒有其他主分區了,所以D盤(APP)作為擴展分區的第一個分區,編號是(hd0,4),E盤(BAK)的編號為(hd0,5),接下來的是Ubuntu的Ext4分區,他的編號為(hd0,6)。這些編號與上邊圖片中的對應關系也很簡單,因為/dev下給他們起名字的時候是從1開始的,所以直接給前面編號方法的盤符編號加1即可,如(hd0,6)對飲的是/dev/sda7 (后面用到這些)。
2、kernel和initrd
- /boot/vmlinuz-2.6.30-8-generic
- /boot/initrd.img-2.6.30-8-generic
這兩個文件是從LiveCD啟動進去看的,用liveCD硬盤啟動,只要用虛擬光驅加在Ubuntu的ISO文件,然后執行里面的wubi點最上面的按鈕,選擇幫我從CD啟動即可。
3、UUID
剛才已經啟動到LiveCD中了,如果是安裝界面,點退出就可以進入演示系統了,除了確定上面兩個文件的路徑和名稱,還需要搞一個東西,就是UUID。
sudo ls -al /dev/disk/by-uuid
按前面的方法你應該已經知道你的Ubuntu裝在那個分區了,在演示系統中打開你C盤下的那個menu.lst文件,根據你自己的情況修改vmlinuz和initrd.img文件路徑和名稱,并修改uuid,如果是ext4分區的話,需要加上rootfstype=ext4參數。因為我的筆記本的APIC似乎有點問題所以加上了 acpi=off noapic nolacip參數,大多數人應該不會有這個問題,也就不用加這3個參數了。
好了,現在重新啟動,在操作系統列表中選擇grub再選擇Ubuntu9.10,不出意外的話你應該可以進入你的Ubuntu9.10了。進去后,如果想修復由grub引導的話,作如下操作:
sudo upgrade-from-grub-legacy
這個我沒試過,因為我覺得Windows的Boot.ini的引導挺好的,如果開發機器用Ubuntu的話用起來還是比較痛苦的,再說其他人都用Windows做開發,你一個用Ubuntu9.10,白里透紅與眾不同,這可能會引發一些問題。如果有意外的話。。。。。自己研究吧!~~~
【編輯推薦】