1. 程式人生 > >window/linux(ubuntu/linuxMint) 雙系統不能啟動終極解決辦法

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引導介面,而是給我這個東東:
error: unknown filesystem
grub rescue >

下面提供解決類似這種啟動問題的三種招式(並不一定你也是出現和我同樣的問題,但只要是grub引導問題,都可以按照以下方法解決):
1:平淡無奇:使用boot-repair       開機用安裝媒介引導(我是用u盤來安裝系統的,如果你用光碟也沒問題)進入linux環境,只是試用而已,不選安裝。ubuntu/linuxMint都會有一個安裝前的桌面環境提供給你,進入後調出 終端(可以按ctrl+alt+T),當然,你得首先把網路連通,再輸入以下命令啟動boot-repair:
$ 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來看看:
$ sudo fdisk -l /dev/sda
$ sudo blkid
例如,我這裡的分割槽規劃是: sda5 掛到/     sda8 掛到 /usr   sda9掛到/tmp  先做一些chroot前的準備工作:
$ 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了:
$ sudo chroot /mnt/mint
輸入以上命令後出現一個另外不同的提示符,那就表示你成功change過去了。這裡的 /mnt/mint 就是真實系統/ 分割槽對應的掛載點。 然後是進行grub的修復工作,依次輸入以下命令:
# grub-install --recheck /dev/sda
# update-grub
然後就是退出change root環境了,依次輸入以下命令:
# sync
# exit
這時候應該就會退回到原有的終端中來了,再倒著順序解除安裝前面掛載的分割槽:
$ 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:
$ 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位置有改動導致的。