編碼的世界 / 優質文選 / 女人

通過 Grub 來引導啟動 UBUNTU


2021年11月20日
-   

老樣子,先分享一篇文章——用 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:
root (hd0,5)
kernel /vmlinuz-3.19.0-78-generic ro quiet splash root=/dev/sda5
initrd /initrd.img-3.19.0-78-generic
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 的話,就要用如下命令(和鏈接中的一樣)
root (hd0,0)
kernel /vmlinuz.efi boot=capser iso-scan/filename=/ubuntu-14.04-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8
initrd /initrd.lz
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文件,由於風險較高,筆者暫時還沒嘗試,
愛冒險的朋友試成功了記得出來分享哦

熱門文章