通過 Grub 來引導啟動 UBUNTU

CopperDong發表於2018-05-24

老樣子,先分享一篇文章——用 EasyBCD 硬碟安裝 Ubuntu(適用於Windows 7/8)

http://forum.ubuntu.org.cn/viewtopic.php?t=392854


本文適用人群:對GRUB沒有基礎,但是遇到與博主相同問題,同時希望對GRUB有所瞭解的朋友


處理了兩種情況,先對情況進行說明:

    1、UBUNTU升級後,不能正常進入,通過GRUB命令列引導進入UBUNTU

        博主手賤,昨天晚上一路點選升級,於是乎將UBUNTU14.04升級了,到了哪個版本也不知道。直到今天早上起床開機,直接在GRUB引導介面點選UBUNTU後,沒有進入那熟悉的紫紅色的介面,然後,就沒有然後了...

        博主的機子裝的 WINDOWS7 和 UBUNTU 雙系統,因為之前 ubuntu 也出過一次問題,grub又不熟悉,不想重蹈覆轍,所以還是保持了 windows 的 grub 引導。

    2、需要安裝UBUNTU,通過GRUB命令列引導載入.iso檔案

        沒有光碟,直接通過載入 iso 映象進行 ubuntu 的安裝。


好了,兩種情況都說明完成,下面說具體的方法,前提條件有3:

    1、按照連結中的方法安裝的NeoGrub

    2、將ubuntu的iso檔案複製到C盤根目錄

    3、將ubuntu的iso檔案中的/capser目錄下的vmlinuz.efi和initrd.lz檔案複製到C盤根目錄



這裡記錄的方法,均為從開機以後,進入NeoGrub引導載入器以後,也就是從介面

進入到

按照右下角提示,點 C 進入命令列模式,提示符為 grub>


兩種操作方法均在命令列中執行。

對於第一種情況,在已經安裝好的系統,僅僅不能正常的引導,可以通過如下的grub命令進入ubuntu:

[plain] view plain copy
  1. root (hd0,5)  
  2. kernel /vmlinuz-3.19.0-78-generic ro quiet splash root=/dev/sda5  
  3. initrd /initrd.img-3.19.0-78-generic  
  4. boot  
    root 設定工作路徑,類似於 cd,不方便的是它只能設定絕對路徑。這個命令不要怕,隨便用,在寫好 “root (hd” 後用 tab 鍵可以補全,如下圖。


    kernel 設定核心。前一條 root 命令已經將工作路徑切換到 ubuntu 的 boot 路徑下,路徑下直接輸入 /vml 進行補全即可得到核心,同時新增 ro、quiet、splash選項(設定為圖形介面,否則是命令列),設定引數 root=/dev/sda5。這裡一定要說一下這個 root 引數,也就是造成圖 “grub 命令列” 中無法找到的問題所在。這裡新增的 root=/dev/sda5 為載入 ubuntu 時的根目錄,參考下圖(使用 df -h檢視),及 / 的掛載點。然而一般的都是在 sda6。


    initrd 專業解釋為 Load an initial ramdisk for a Linux kernel image, and set the appropriate parameters in the Linux setup area in memory。

暫且繞過,我理解為啟動配置吧。

    boot 啟動系統。

而對於第二種情況,需要新安裝一個系統,通過載入 iso 的話,就要用如下命令(和連結中的一樣)


[plain] view plain copy
  1. root (hd0,0)  
  2. kernel /vmlinuz.efi boot=capser iso-scan/filename=/ubuntu-14.04-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8  
  3. initrd /initrd.lz  
  4. boot  


想要說明的是,必須使用 iso-scan 來載入 iso 檔案,而 kernel 命令中的 /vmlinuz.efi ,和 initrd 命令中的 /inintrd.lz ,就是從映象檔案中拷貝出來的兩個檔案,

/ubuntu-14.04-desktop-i386.iso 就是 ubuntu 映象。

這裡 / 不能少,表示工作路徑的根目錄,同時 root(hd0,0) 就是 C 盤的位置了,可以通過 ls 命令檢視其中的檔案,就知道了。

—— 對於需要安裝的同學,進去後一定要按照連結中的,先 umount 掉映象再安裝哦,否則後果自負哦。

小結一下:

其實搞了這麼久,就瞭解了兩個命令 root 和 ls,剩下的都是直接使用。 grub 命令列中的引數基本上都沒有 -- 做標識,所以注意 root 命令和 kernel 引數 root 的區別就好。

而最讓人糾結的就是路徑的確認問題,幾個地方可以注意一下(映象安裝的不涉及此問題):

1、在安裝時,進行分割槽,記錄好根目錄 / 的掛載點

2、進入系統後,使用 df -h 檢視根目錄 / 的掛載點

3、在 GRUB 命令列中可以通過 ls 檢視路徑中的檔案,從而確定工作路徑(只是一種判斷方法)



加註:

通過GRUB命令列進入UBUNTU肯定不是長久之計,當發生樓主的情況或者安裝完成後GRUB中沒有UBUNTU的GRUB資訊時,一次性永久解決的方法就是:

進入 windows 中,開啟 EASYBCD,然後新增新條目,在 Linux/BSD 選項卡下,勾選“使用EasyBCD的GRUB副本,然後點選”新增條目“即可自動搜尋並新增新的GRUB資訊。


2017/5/11 新增:

        還有一種比較麻煩的永久解決辦法,就是自己去修改WIN下面的grub檔案,由於風險較高,筆者暫時還沒嘗試,

愛冒險的朋友試成功了記得出來分享哦

相關文章