從上大學(xué)開(kāi)始就接觸Linux了,雖然Windows有諸多問(wèn)題,但是也不得不搞個(gè)Windows與Linux的共存。但一直困擾我的問(wèn)題,就是如何在重裝Windows以后,找回grub啟動(dòng)菜單,免得Linux系統(tǒng)“失蹤”。
看了不少資料,既有網(wǎng)上的,也有《鳥(niǎo)哥Linux私房菜》,學(xué)到了不少東西,現(xiàn)在記錄下來(lái),以備今后遺忘。
參考網(wǎng)上資料:
http://blog.csdn.net/eric_jjc/archive/2010/07/11/5682210.aspx
http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=268102&start=0
不論是網(wǎng)上的資料,還是《鳥(niǎo)哥Linux私房菜》上的方案,都有特殊性,似乎不是萬(wàn)試萬(wàn)靈的,不同的情況,不同的版本下都會(huì)略有出入。
僅針對(duì)Ubuntu來(lái)說(shuō),假設(shè)現(xiàn)安裝了Linux,后安裝了Windows。重新啟動(dòng)后,直接進(jìn)入的就是Windows系統(tǒng),這是因?yàn)閃indows強(qiáng)制將自己的啟動(dòng)器寫(xiě)入了磁盤(pán)的MBR中,何其“霸道”。因此,我們需要找回遺失的grub。
假設(shè)我們的安裝順序是:先Ubuntu10.04,然后Windows7。
分區(qū)情況如下:
其中
sda1分區(qū),主分區(qū),裝的是Windows7,即Windows的C盤(pán);
sda2分區(qū),主分區(qū),是Windows的D盤(pán);
sda3分區(qū),主分區(qū),對(duì)應(yīng)著/boot;
sda5分區(qū),邏輯分區(qū),對(duì)應(yīng)著/;
sda6分區(qū),邏輯分區(qū),對(duì)應(yīng)著/home;
sda7分區(qū),邏輯分區(qū),對(duì)應(yīng)著/var;
sda7分區(qū),swap交換分區(qū)。
當(dāng)需要開(kāi)始修復(fù)grub的時(shí)候,使用Ubuntu安裝盤(pán)作為L(zhǎng)iveCD,進(jìn)入“試用模式”,打開(kāi)終端:
輸入sudo -i,進(jìn)入root模式,省的重復(fù)輸入sudo;
再root模式下,輸入apt-get install grub-pc,以安裝這個(gè)程序。
注意在Ubuntu10.04下是grub-pc,如果安裝的是grub的話,那么經(jīng)過(guò)后續(xù)步驟,重新啟動(dòng)的時(shí)候會(huì)進(jìn)入grub的命令行模式,使用kernel,initrd,boot命令啟動(dòng)的時(shí)候,總是出錯(cuò)。因此需要格外注意。但是在Ubuntu9.04中就只要安裝grub就可以。
下面正式將grub重新裝回/boot目錄下。由于現(xiàn)在是用LiveCD啟動(dòng)的,相當(dāng)于是用另外一套Linux啟動(dòng)的。那么要想把grub安裝回原來(lái)的Linux的/boot目錄下(即sda3中),就需要重新掛在它。
默認(rèn)的情況下,grub-install /dev/sda命令就是將grub程序安裝到根目錄/對(duì)應(yīng)的/boot目錄下,但是現(xiàn)在是用LiveCD啟動(dòng)的,我們必須要借助--root-directory參數(shù)指定根目錄。
首先,將原來(lái)的根目錄,掛在到LiveCD的Linux的某個(gè)掛在點(diǎn)上。如果原來(lái)的/boot是在一個(gè)獨(dú)立的分區(qū)上的話,還要將那個(gè)分區(qū)掛在到對(duì)應(yīng)的掛在點(diǎn)上。然后是用grub-install命令和--root-directory參數(shù),安裝grub。
如果安裝成功,則會(huì)有提示。
接著重新啟動(dòng)。
重啟后,如果是Ubuntu10.04的話,則默認(rèn)進(jìn)入Linux系統(tǒng),不過(guò)很可能回提示根目錄或者boot目錄什么的有問(wèn)題,直接ignore就OK。而Ubuntu9.04則不會(huì),直接出現(xiàn)grub菜單,無(wú)需后續(xù)操作。
接著說(shuō)Ubuntu10.04的后續(xù)操作。登入硬盤(pán)上的Linux系統(tǒng)。
在終端中,輸入sudo update-grub,則可自動(dòng)重建grub菜單。
提示完成后,重新啟動(dòng),就出現(xiàn)grub菜單了。至此大功告成。
附注:
1. 《鳥(niǎo)哥Linux私房菜》里提到的/boot/grub/menul.lst,在Ubuntu中似乎沒(méi)找到。
2. grub的setup命令有用,但安裝后進(jìn)入grub命令行后,即使找到kernel和initrd文件,啟動(dòng)的時(shí)候也會(huì)因?yàn)槟K加載不完全,而報(bào)錯(cuò)。
聯(lián)系客服