環境: win7 + Ubuntu 16.04雙系統 250G SSD
win7一開始是C盤100G,D盤150G,裝Ubuntu時從D盤壓縮出40G
問題產生原因:裝Ubuntu的時候分配了40G的空間(swap 4G,/ 36G)不夠用了,於是在win7中從D盤又壓縮出20G空間準備給Ubuntu系統用,但是重啓的時候遇到了
grub rescue>
首先要進入Ubuntu系統,才能進行修復吧
解決方法:
第一步:grub rescue> 下先進入Ubuntu系統
由於在rescue模式下,只有少量的基本命令可用,必須通過一定的操作才能加載正常模塊,然後進入正常模式。 rescue模式下可使用的命令有:set,ls,insmod,root,prefix(設置啓動路徑) 先假設grub2的核心文件在(hd0,8)分區,再來看看怎樣從 rescue模式進入從(hd0,8)啓動的正常模式(normal)。 在 rescue模式下search命令不能用,對不清楚grub2文件處於哪個分區的,可以用ls命令查看,比如
ls (hd0,8)/ 查看(hd0,8)分區根目錄,看看有沒有boot文件夾
ls (hd0,8)/boot/ 查看(hd0,8)分區的/boot目錄下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分區/boot/grub目錄下文件
通過文件查看,可以確定 grub2核心文件處於哪個分區,接下來就可以進行從rescue到normal的轉變動作:先 ls 看看分區,根據分區列表,猜下 / 分區的編號再 ls (hd0,x)/ 看分區目錄下文件確定找到 / 分區,不對的話繼續找。找到 / 分區的 (hd0,x) 繼續
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal
於是進入了Ubunt系統,但是總不能每次都這麼進系統吧,於是我嘗試修復grub ,以下是出了以下問題,如果你沒有出以下問題,可以跳過,直接進入第四步
第二步:解決“Minimal BASH-like line editing is supported.”問題
用了網上不知道哪裏的一個教程,結果出問題了,開機進入了這個界面,然後只有一個 grub>
我嘗試使用ls列出分區列表什麼的,發現並不能!後來想了以下,發現這是windows的引導界面,首先要進入Windows啊,可是怎麼進呢?
解決方法:
使用 uuid 命令可以列出所有的硬盤分區,由於我們的Windows一般都是安裝在 (hd0,0)分區的,所以進行以下幾步可以進入Windows系統
grub> root (hd0,0)
grub> chainloader (hd0,0)+1
grub> boot
敲完回車就發現可以進Windows系統了
可是進Windows系統是爲了幹什麼呢?
第三步:重新進入Ubuntu安裝界面來修復引導
因爲我需要做一個Ubuntu啓動盤,進入Ubuntu的安裝界面,這又是爲什麼呢?
因爲我進不去Ubuntu系統!哭!
但是在製作Ubuntu U盤啓動盤的過程中,發現會出現問題,沒有辦法用U盤啓動,於是果斷放棄,使用硬盤安裝Ubuntu(只是爲了進入安裝界面修復引導,並不是重裝),具體教程請移步:Windows 7下硬盤安裝Ubuntu 14.04圖文教程
好了,現在重啓,進入Ubuntu安裝界面就好!
第四步:修復Ubuntu引導
1.進入之打開終端,先在終端輸入sudo fdisk -l (注意是小寫的L,不是數字1,此步用於確定電腦中安裝 Ubuntu所在分區的位置,輸入以後會輸出類似如下信息,找到ID爲83的那行,記住/dev/sdaX的情況,比如本人的電腦是/dev /sda10。)
2.輸入sudo -i(此步用於得到root權限,方便以下操作。)
3.輸入mkdir /media/tempdir(創建一個文件夾tempdir,用於掛載剛纔的sda10,此文件夾名稱你可以依個人愛好而定,沒有太多要求。)
4.輸入mount /dev/sda10 /media/tempdir(將sda10掛載於tempdir文件夾下。)
5.輸入grub-install --root-directory=/media/tempdir /dev/sda(本步驟用於來重新安裝grub2到硬盤的主引導記錄MBR裏面。)
輸入以後如果出現“Installation Finished.No Error Reported.”字符,就表示操作成功了。
6.重啓,熟悉的紫色界面
淚流滿面!!