歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Windows與Ubuntu雙系統重裝WIN7後修復Grub2

Windows與Ubuntu雙系統重裝WIN7後修復Grub2

日期:2017/2/28 15:55:45   编辑:Linux教程

一直在使用Windows與Ubuntu雙系統(估計很多的linuxer都是這種情況)。前一段時間重裝了Win7,然後啟動後便會不選擇系統而直接進入Windows。原因其實蠻好想的,就是因為Windows的引導程序覆蓋了MBR,啟動時不再使用grub引導。至於修復方法,下面是一些總結。

這個問題具體的解決方案很多,但總體的思路其實就兩步:第一步、想盡一切辦法進入linux;第二步、在linux環境下用grub重新覆蓋MBR。

對於第一步,我采取的方法是使用grub4dos。

首先下載grub4dos,這個隨便一搜就有,估計很多人最初安裝linux是就用到過。

解壓後把grub.exe,grldr復制到C盤的根目錄。注意,win7的C盤中原有一個grldr,是一個隱藏著的系統文件。在復制時一定要將它備份好,以後還會用得到。網上的解決方案說還要復制menu.lst,其實這個不是必須的,沒有它也可以解決問題。

然後重啟系統。因為使用了grub4dos的grldr,所以會由grub.exe來引導啟動。引導時它會自動搜索menu.lst,找不到就會進入命令行模式。然後就要在grub4dos的命令行中啟動linux。這個就比較容易了

grub>root (hd0,x) (x表示/boot分區的編號)

grub>kernel /vmlinuz-x.xx.xx-xx-generic root=/dev/sdaY (xx表示kernel的版本,可以用ls命令看一下/boot下面這個文件的名字是什麼;而最後面的Y是/分區的編號。需要注意的是,采用(hdo,x)的表示方法時,編號是從0開始的;采取/dev/sdaY表示方法時,編號是從1開始的)

grub>initrd /initrd-x.xx.xx-xx-generic (xx和上一條命令裡的一樣,都是kernel版本)

grub>boot

這時候應該就可以進入linux了。

第二步要用grub覆蓋MBR

這一步就更簡單了。首先更新一下grub,使它可以識別win7

sudo update-grub

更新之後,輸入命令覆蓋MBR。具體的命令因grub版本而異。我用的系統為ubuntu10.10,使用grub2。它需要的命令只有一句話

sudo grub-install /dev/sda

如果提示安裝成功,那就大功告成了。重啟計算機,就又看到熟悉的grub選擇界面了。

對於grub1(ubuntu9.10之前的版本使用),需要先將/掛載到/mnt。如果有/boot分區,再將/boot掛載到 /mnt/boot。然後執行命令

sudo grub-install --root-directory=/mnt /dev/sda

grub1的方法我沒有實際嘗試過,僅僅列在這裡而已。

Copyright © Linux教程網 All Rights Reserved