之前電腦上裝的ubuntu 14.04和win7,最近重裝windows, 升級到win8之后,需要重新修復grub。參考了網上的一些解決辦法,沒有完全適用的。經過自己的摸索,搞定了。這里把解決過程說一下。
首先需要准備一個live usb,用來從u盤啟動ubuntu,並重新安裝grub。制作live usb有很多方法,我用到的是universal-usb-installer這個工具。從ubuntu官網上下載好livecd的鏡像以后,用該工具很快就能創建一個live usb。過程很簡單。
接下來就可以開始修復grub。
重啟電腦,選擇從usb啟動,進入live ubuntu。下面是具體步驟(需要root權限執行以下命令)
1、找到根目錄所在的分區和/boot目錄所在的分區(如果/boot目錄沒單獨分區請忽略)
用fdisk -l可以列出windows和linux分區的位置。找到根目錄和/boot目錄所在分區。我的電腦之前安裝ubuntu的時候分區比較多,所以在確定分區的時候還進每個分區看了一下里面的內容,才確定哪個是根目錄和/boot目錄的分區。
我電腦上根目錄的分區是/dev/sda9, /boot目錄的分區是/dev/sda8
2、加載根目錄和/boot目錄分區
mkdir -p /tmp/mnt/root && mount /dev/sda9 /tmp/mnt/root && mount /dev/sda8 /tmp/mnt/root/boot (/boot目錄沒單獨分區的不必執行后面這條命令)
3、安裝grub
grub-install --root-directory=/tmp/mnt/root /dev/sda
4、重啟
重啟時,記得拔掉u盤。這時就進入了grub命令界面。
5、設置kernel
kernel /vmlinz(tab鍵補全) --root=/dev/sda9(linux根分區位置)
6、設置linux啟動文件