1. 程式人生 > >Linux ubuntu windows雙系統grub引導修復

Linux ubuntu windows雙系統grub引導修復

                       

Ubuntu & windows雙系統引導修復(狹義)

關鍵詞:ubuntu; linux; windows; 雙系統; 雙系統引導; 引導修復; 雙系統引導修復;

 

開篇扯淡:

為什麼寫這篇教程?

  1. 因為前幾天重灌筆記本里面的windows系統後導致grub引導崩潰,還有一些其他問題。
    結果當時最慘的時候ubuntu/windows8.1兩個系統全部進不去,grub rescue

    模式下各個區也都試了一遍,還是不行。而且網上的資料多為重複轉載,不能針對性地解決問題。後來終於修好後決定自己寫一篇教程,既幫助遇到相同問題的童鞋,同時也作為自己的備忘。
  2. 當然還是練習markdown語法。不斷嘗試,不斷練習。

為什麼起名為“狹義”?

因為這篇教程有以下幾點針對性的限制條件;不能作為廣譜抗生素,只能對付特定的病菌:
0. 重灌windows後不能進入linux系統不明原因雙系統的引導全部崩潰(一個系統也進不去,開機直接進入grub rescue模式)
1. 使用grub引導ubuntu/windows雙系統。
2. 需要讀者至少有能力製作usb啟動盤,並且會(不會就百度)一些PE系統的簡單操作。
3. 知道自己的雙系統都安裝在哪個區,可以在live ubuntu

中使用sudo fdisk -l命令檢視(如作者的ubuntu14.04安裝在/sda5,windows 8.1安裝在/sda6)。
4. 硬碟模式為mbr親測可行,UEFI模式下作者沒有嘗試。
5. (Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)


準備工作?

  1. 一個PE啟動盤(作者使用的模式是老電腦模式)
  2. 一個ubuntu啟動盤(14.04_i386是作者使用的版本)

一、針對無法進入linux系統,即windows系統引導沒有崩潰時的問題

  1. 這個問題的解決只需要ubuntu啟動盤。首先開機進入U盤中的ubuntu系統,選擇合適的語言(中文\英文…),接下來選擇試用ubuntu選項,進入桌面。在桌面任意空白處按CTRL+ALT+T
    喚出終端
  2. 輸入sudo su回車,獲取ROOT許可權。
  3. 輸入mkdir /media/temp回車,用於在/media中建立一個資料夾/temp
  4. 接著輸入mount /dev/sda5 /media/temp回車,用於在/media/temp中掛載你原本計算機上的ubuntu系統分割槽(注意!!!/sda5是作者ubuntu的分割槽號,不要照抄!!)
  5. 最後輸入grub-install --root-directory=/media/temp /dev/sda回車,等待出現Installation finished.No error reported.提示資訊後,關閉終端
  6. 關閉臨時系統,拔出U盤,重新開機,可以看到熟悉的grub介面又出現了!
    grubpic1.jpg
    (圖片在自網路)
  7. 等等!windows引導又崩了!沒有windows選項!別擔心,先進入你的ubuntu系統。喚出終端,輸入sudo update-grub回車。看!是不是出現Found Windows 8 (loader) on /dev/sda6啦。保險起見重啟計算機,在grub內選擇windows選項,看能否正常引導。
  8. 修好了!enjoy!

    二、針對雙系統引導均崩潰開機直接進入grub rescue模式或第一個針對中使用grub進入windows系統後引導仍不成功且黑屏游標一直閃爍的問題

    • 首先解決第二個針對的前半部分問題

       

      雙系統引導均崩潰開機直接進入grub rescue模式

      1. 首先進入U盤中PE系統,點選“win引導修復”,選擇適合自己電腦硬碟分割槽的修復方案後,點選開始修復。
        pepic2.jpg
        (圖片來自網路)
      2. 關機退出PE系統,拔出U盤,重啟電腦,我們發現起碼windows系統已經可以成功引導了!這是個好事,因為這樣接下來的步驟就與我們前面的第一個針對相同了!
      3. 實施第一個針對的7個步驟,OK了!enjoy!
    • 現在解決第二個針對的後半部分問題

       

      第一個針對中使用grub進入windows系統後引導仍不成功且黑屏游標一直閃爍(Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

      1. 如果有童鞋跟作者一樣不走運的話,會遇到即使update-grub成功識別了你分割槽中的windows loader而且重啟計算機後在grub列表裡也確實有windows選項,但點進去後仍然不
        會引導windows系統,而只是黑屏一個游標不停地閃。這就很尷尬了。。。ganga.jpg
      2. 但同志們不要怕!作者已經幫你們趟出一條路了!那就是:修改grub.cfg !(圍觀群眾毫不吃驚臉…)
      3. 作者猜想,可能經過PE的修復,grub已經可以識別出windows的引導器了,然而由於是人工修復的windows引導,所有預設生成的grub.cfg中的程式碼並不能使grub準確找到windows loader,所以當我們選中grub列表中的windows選項後才仍然不能引導系統。
      4. 我們只需進入已經可以引導的ubuntu系統,喚出終端,輸入
        sudo su回車,獲取ROOT許可權。
      5. 之後輸入gedit /boot/grub/grub.cfg回車,以開啟grub.cfg。作者用的是gedit編輯器,如果讀者平時都是用vim那麼就輸入vim /boot/grub/grub.cfg,使用什麼編輯器都可以,然後我們找到cfg檔案中關於windows的部分,作者的看起來像這樣:

    menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {
      insmod part-msdos
      insmod ntfs
      set root='hd0,msdos6'
      if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  9C28EFB228EF899A
      else
      search --no-floppy --fs-uuid --set=root 9C28EFB228EF899A
      fi
      parttool ${root} hidden-
      drivemap -s (hd0) ${root}
      chainloader +1
      }

    這一大坨是個什麼玩意?反正這麼寫引導不了,那就改!
    好在grub是個十分強大的工具,最後作者決定使用search命令修改以上片段。
    如下:

    menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {
        insmod ntfs
        insmod ntldr
      set root='hd0,msdos6'
      search --set -f /bootmgr
      ntldr /bootmgr
      }

    寫完大概就是這個樣子:
    Screenshot3.png圖中高亮部分。

注意!!!set root='hd0,msdos6'中的6是因為作者的windows安裝在/sda6中,不要照抄!! CTRL+S儲存後退出即可。
6. 重啟計算機,這時我們可以發現grub中的windows選項點選後可以成功引導了!
kaiji4.jpg
(Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
反正當時作者看到熟悉的田字格後差點流出了激動的眼淚…
7. 好了,一切恢復!enjoy!

           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net

這裡寫圖片描述