這個只是一個備份,原文我是參考這兒的,已經幫我解決了grub壞掉的修復,避免了重裝系統。
在之前使用雙系統的時候,常常會遇到這樣的問題。我的Windows崩了,但是系統又沒做gho備份,那怎么辦呢,我想只有重裝這條路了。重裝后windows正常了,心里美滋滋的。可是突然發現我的linux的啟動項不見了,這下子我們不就悲催了么?
遇到這種情況,通常人們會選擇重新安裝linux。其實大可不必,因為我們的linux系統還是完好的,只是由於重裝了windows導致我們linux的啟動項grub2受損。我們要做的只是修復啟動項而已。
修復啟動項的方法其實很多,在這里我給大家介紹一種最常用的一種方法——通過liveCD來修復。
今天就用Ubuntu 11.04的LiveCD的來修復grub2的引導。
啟動Ubuntu 11.04光盤,選擇LiveCD模式,進入之后選擇進入終端(Ctrl+Alt+T),先在終端輸入如下命令:
sudo fdisk -l (注意是小寫的L,不是數字的1)
此步驟用於確定電腦中安裝 Ubuntu11.04 的所在分區的位置,輸入以后會得到類似如下信息,找到ID為83的那行,記住/dev/sdaX的情況,比如本人的電腦是/dev /sda7,以下就以此為例。
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x624aa2e0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1388 11149078+ 7 HPFS/NTFS
/dev/sda2 1389 3825 19575202+ 7 HPFS/NTFS
/dev/sda3 3826 9729 47423880 f W95 Ext’d (LBA)
/dev/sda5 3826 5851 16273813+ b W95 FAT32
/dev/sda6 5852 8323 19856308+ b W95 FAT32
/dev/sda7 8324 9598 10241406 83 Linux
/dev/sda8 9599 9729 1052226 82 Linux swap / Solaris
然后再輸入
sudo -i
此步用於得到root權限,方便以下操作
接着輸入
mkdir /media/tempdir
這里用於創建一個文件夾tempdir,用於掛載剛才的sda7,也就是你的Ubuntu的“/”的掛接硬盤分區。此文件夾名稱你可以依個人愛好而定,沒有太多要求
再輸入
mount /dev/sda7 /media/tempdir
將sda7掛載於tempdir文件夾下
如果你單獨掛載了Ubuntu的boot、home等分區,那怎么操作呢?
這是我電腦的分區表:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf0b1ebb0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
/dev/sda2 13 6375 51103744 7 HPFS/NTFS
/dev/sda3 6376 38914 261362638 f W95 Ext’d (LBA)
/dev/sda5 6376 15298 71672942 7 HPFS/NTFS
/dev/sda6 15298 25497 81920000 7 HPFS/NTFS
/dev/sda7 25497 35696 81920000 7 HPFS/NTFS
/dev/sda8 35696 35708 96256 83 Linux
/dev/sda9 35708 35770 498688 82 Linux swap / Solaris
/dev/sda10 35770 36144 2999296 83 Linux
/dev/sda11 36144 38914 22249472 83 Linux
大家可以看到,我除了/和swap,我還單獨掛載了兩個文件系統。我掛載了/boot和/home。
那么需要做如下操作:
mount /dev/sda11 /media/tempdir (我的/分區是sda11)
mount /dev/sda8 /media/tempdir/boot (我的boot分區是sda8)
下面進入了本次恢復最為關鍵和激動人心的時刻,在終端輸入以下命令:
grub-install –root-directory=/media/tempdir /dev/sda
此步驟用於來重新安裝grub2到硬盤的主引導記錄【MBR】里面,十分關鍵!
輸入以后如果出現“Installation finished.No Error Reported.”字符的時候,就表示操作成功了。但是現在只成功的一半,還有以下操作才能夠完全成功。
這時重新啟動你的電腦,就能看到grub2的引導界面了,但是這時只能用來引導Ubuntu 10.04,還暫時無法引導Windows 7,這時選擇進入Ubuntu 11.04,再找到並啟動終端,在終端輸入如下命令:
sudo update-grub2
按照提示輸入密碼,如果順利的話,會出現如下類似語句,那就表示成功了。
grub.cfg …
Found Debian background: moreblue-orbit-grub.png
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/initrd.img-2.6.31-15-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done
如果沒有出現以上類似語句的話,那就在新立得里面搜索grub,可以安裝帶有Ubuntu標志的那個grub-pc,安裝之后,再輸入
sudo update-grub2
更新一下grub2就可以了。
這樣一來,我們就大功告成了。在開機的時候,是不是看到了熟悉的畫面?激動吧,哈哈!
現在,還有一種比較流行的方法,是借助某些grldr工具軟件恢復ubuntu啟動項的,這種方法相對比較簡單,不需要太多的命令行操作,也不需要liveCD。我把這種方法分享給大家,大家也可以參考一下。
grldr是grub里面的一個文件,對grub不熟悉的朋友可能不知道,但是如果你用過一鍵GHOST、MAXDOS、矮人DOS工具箱等等軟件,你就應該知道這個名字:這些軟件無一例外都是使用grub或者grldr引導他們保存在你硬盤的軟盤鏡像或者系統引導文件的。沒有grub和grldr(包括avldr、isomenu等等都是由grub或者grldr派生出來的,也是你自己派生出一個個性化硬盤引導文件的方法和途徑。),就不會由上述這些軟件的存在。
第一步:下載grldr
下載地址:http://forum.ubuntu.org.cn/download/file.php?id=79193
下載解壓后把g2ldr.mbr和g2ldr放在第一個磁盤的根目錄下
(一般情況下是C盤,倘若你安裝的是Win7的話,有系統保留分區則放在系統保留分區)
第二步:新建一個boot.ini文件
寫入如下內容:
C:\g2ldr.mbr=”ubuntu11.04″
第三步:重啟
重啟后就可以看到ubuntu11.04的啟動項
選擇ubuntu11.04啟動項進入ubuntu
第四步:用ubuntu的引導器來引導回win7
$sudo grub-install /dev/sda
$sudo update-grub
成功后你就重啟進入win7,把C盤里剛放的g2ldr.mbr,g2ldr和boot.ini刪除掉就OK了
到此就順利的引導回你的ubuntu11.04了