window/linux(ubuntu/linuxMint)雙系統不能啟動終極解決辦法
硬件配置如下:
CPU:AMD A10-5800K (APU,HD 7660D)
主板:技嘉(GIGABYTE) F2A85X-D3H主板(大板)
內存:芝奇(G.SKILL)DDR3 1600 8G(4G×2雙通道)
軟件配置如下:
先用UEFI + GPT安裝windows 7,然後安裝ubuntu,用boot-repair成功修復引導。後面把ubuntu折騰得不行了,打算換linuxMint玩玩,又覺得前面給ubuntu的分區不合理,順便調整一下分區,即原來的/boot分區的位置有變化。然後就正常安裝linuxMint,可惜重啟後就悲劇了。
重啟後沒出現可愛的grub引導界面,而是給我這個東東:
[plain]
error: unknown filesystem
grub rescue >
下面提供解決類似這種啟動問題的三種招式(並不一定你也是出現和我同樣的問題,但只要是grub引導問題,都可以按照以下方法解決):
1:平淡無奇:使用boot-repair
開機用安裝媒介引導(我是用u盤來安裝系統的,如果你用光盤也沒問題)進入linux環境,只是試用而已,不選安裝。ubuntu/linuxMint都會有一個安裝前的桌面環境提供給你,進入後調出 終端(可以按ctrl+alt+T),當然,你得首先把網絡連通,再輸入以下命令啟動boot-repair:
[plain]
$ sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
$ sudo apt-get install -y boot-repair && (boot-repair &)
你應該得到一個類似上圖的界面,還猶豫什麼,猛擊”Recommended repair“吧,等幾分鐘後,你會得到一個類似下面的提示:
直接點OK,然後重啟看看是否可以成功引導了,如果還是不能引導,請使用下面的第二招
2:漸入佳境:使用chroot
前面的步驟和招式1一樣,先進入linux的安裝桌面環境,聯網,調出終端。首先確認你的系統是安裝在哪個分區的,最簡單的方式是通過GParted依據分區大小來看,例如:
以上是我的分區,如果不能用gparted,可以用fdisk,或者blkid來看看:
[plain]
$ sudo fdisk -l /dev/sda
$ sudo blkid
例如,我這裡的分區規劃是: sda5 掛到/ sda8 掛到 /usr sda9掛到/tmp
先做一些chroot前的准備工作:
[plain]
$ sudo mkdir -p /mnt/mint
$ sudo mount /dev/sda5 /mnt/mint/ #sda5 對應到真實系統的 / 目錄
$ sudo mount /dev/sda9 /mnt/mint/tmp #sda9 對應到真實系統的 /tmp 目錄
$ sudo mount /dev/sda8 /mnt/mint/usr
$ sudo mount -t proc none /mnt/mint/proc
$ sudo mount -o bind /dev /mnt/mint/dev
$ sudo mount -o bind /sys /mnt/mint/sys
$ sudo mount -t devpts devpts /mnt/mint/dev/pts
由於我沒有將/boot單獨分區,所以/boot是在 sda5 裡面,以上的主要是為chroot後的系統掛載必要的文件系統,如果你還有其他分區是單獨分區的,尤其是 /etc /boot /usr 等分區,一定要掛載到對應的目錄下。然後就是change root了:
[plain]
$ sudo chroot /mnt/mint
輸入以上命令後出現一個另外不同的提示符,那就表示你成功change過去了。這裡的 /mnt/mint 就是真實系統/ 分區對應的掛載點。
然後是進行grub的修復工作,依次輸入以下命令:
[plain]
# grub-install --recheck /dev/sda
# update-grub
然後就是退出change root環境了,依次輸入以下命令:
[plain]
# sync
# exit
這時候應該就會退回到原有的終端中來了,再倒著順序卸載前面掛載的分區:
[plain]
$ sudo umount /mnt/mint/dev/pts
$ sudo umount /mnt/mint/dev
$ sudo umount /mnt/mint/sys
$ sudo umount /mnt/mint/proc
$ sudo umount /mnt/mint/usr
$sudo umount /mnt/mint/tmp
$ sudo umount /mnt/mint
最後就是重啟看看效果了,基本上一般的啟動問題都會這樣被修復掉,如果你的還是無法啟動,就只有用第三招了
3:天地同歸:刪掉grub重裝
重裝grub的方式有手動和自動,這裡提供最簡單的自動方式。
前面的步驟和招式1一樣,先進入linux的安裝桌面環境,聯網,調出終端。啟動boot-repair:
[plain]
$ sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
$ sudo apt-get install -y boot-repair && (boot-repair &)
不同的是這次不點"Recommended repair",而是點下面三角符號後面的"Advanced options",會出現下面的界面,切換到“Grub Options”選項卡,選第一項"Purge Grub...",最新的可能和下面的圖不一樣,但還是有Purge 字樣的:
然後點apply,會自動幫你干活的,期間會有對話框彈出來,要求你將彈出對話框的命令放到終端中去執行,照做就行(復制粘貼即可):
當然最後完成的時候也會彈出如招式1最後的對話,不用關心,直接重啟,你會有驚喜的。
後記:我的啟動問題就是用最後這種方式解決的,前面兩種方式對調整分區後的系統無效,尤其是UEFI + GPT分區的時候,猜測可能是/boot位置有改動導致的。