如何修改ubuntu 的Grub來修改啟動項

2021-06-13 15:12:30 字數 3818 閱讀 8260

基本檔案

在ubuntu中不能通過修改menu.lst檔案來修改啟動配置了,grub2主要包含

1.   /boot/grub/grub.cfg 檔案

2.   /etc/grub.d/ 資料夾

3.   /etc/default/grub 檔案

grub.cfg就是就是配置選項,類似於menu.lst,裡面的格式與menu.lst差不多。但是我們不能通過直接修改這個檔案來修改配置。

grub.cfg的檔案中包含了兩部分的內容,一部分是各個啟動項的定義,第二部分是啟動介面的設定。

功能介紹

/etc/grub.d/資料夾中定義的各個啟動項,其中的資料夾代表了乙個或者多個啟動項,使用的命名規範都是「兩個數字_名稱」,前面的兩個數字確定這個或者這多個啟動項在啟動

介面中的位置,預設的「00_"是預給」00_header"的,「10_"是預留給當前系統核心的,"20_"是預留給第三方程式的,除了這些你都可以使用,增加自己的,比如"05_"數字越小的越前面。

/etc/default/gurb檔案,該檔案主要是啟動介面配置,比如預設的啟動項,等待使用者的選擇時間等。

好了,通過上面的介紹,應該對grub 2有些了解了,聰明的你應該想到要怎麼修改預設啟動項了,有下面三種方法:

•根據以前修改 /boot/grub/menu.lst 的方法那樣直接修改已經生成好的 /boot/grub/grub.cfg。這個方法的優點是簡單,缺點是修改之後會被」update-grub」命令覆蓋掉。 

•修改 /etc/grub.d/ 中啟動項的順序,將你想要預設啟動的項順序設定為較小的值。優點是修改不會被」update-grub」命令覆蓋掉,好像沒啥缺電,只有另外的程式修改為比你的值更小了才會成為預設啟動。 

•修改 /etc/default/grub 中預設的啟動項,設定該檔案中 grub_default 為你想要的值,這個值是生成的 grub.cfg 中各個啟動項的從0開始的下標。該方法優點是修改不會被」update-grub」命令覆蓋,缺點是當啟動項的順序變化之後,下標也就變了。

示例:

拿最簡單最常用的開啟啟動項預設選擇順序和選擇等待時間為例,比如,我要啟動xen修改過的核心。

1.vim  /etc/default/grub

2. 把grub_default= 和 grub_timeout= 兩個字串後面的數字改為我們自己想要的並儲存關閉

怎樣得到需要啟動系統的順序呢,可以通過根據已經生成的 /boot/grub/grub.cfg得到。

這是我的現有啟動項:

[html]view plain

copy

0 ubuntu,linux 3.2.0-27-generic  

1 ubuntu,linux 3.2.0-27-generic (恢復模式)  

2 submenu "previous linux versions":  

[html]view plain

copy

#這是子項  

ubuntu,linux 3.0.0-23-server  

ubuntu,linux 3.0.0-23-server (恢復模式)  

ubuntu,linux 3.0.0-12-server  

ubuntu,linux 3.0.0-12-server (恢復模式)  

3 ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.2.0-27-generic  

ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.2.0-27-generic (恢復模式)  

ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.0.0-23-server  

ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.0.0-23-server (恢復模式)  

ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.0.0-12-server  

ubuntu gnu/linux,xen 4.1-amd64 和 linux 3.0.0-12-server (恢復模式)  

memory test (memtest86+)  

memory test (memtest86+, serial console 115200)  

但是:submenu "previous linux versions"中的系統都屬於2,xen是個編號為3.所以修改grub_default=3。

3. 最後sudo update-grub 不要忘記了。

最簡單的做法:

其實個人覺的最簡單的是直接閱讀/boot/grub/grub.cfg的內容。

查詢關鍵字menuentry。核心的順序就是menuentry的順序。你可能會看到:

[python]view plain

copy

if[ 

"$"!= 

"text"

]; then load_video; fi  

menuentry 'ubuntu,linux 3.5.0-rc1+'

--class

ubuntu --

class

gnu-linux --

class

gnu --

class

os   

menuentry 'ubuntu,linux 3.5.0-rc1+ (恢復模式)'

--class

ubuntu --

class

gnu-linux --

class

gnu --

class

os   

submenu "previous linux versions"

{  menuentry 'ubuntu,linux 3.2.0-27-generic'

--class

ubuntu --

class

gnu-linux --

class

gnu --

class

os {  

recordfail  

gfxmode $linux_gfx_mode  

insmod gzio  

insmod part_gpt  

insmod ext2  

set root='(hd0,gpt2)'

search --no-floppy --fs-uuid --set=root 47caf968

-871e

-40da

-b292-

7d5683ef3e94

出現了submenu就說明裡面包含子選單。例如

1.直接進入主選單的某個核心

我要啟動linux 3.5.0-rc1+,它是主選單的第乙個。我就修改這個檔案中的set default="0"(注意,要取得寫得權利)。

或者直接修改 /etc/default/grub中的grub_default="0"(這樣就要執行update-grub)。

2.使用">"進入子選單

我要啟動

ubuntu,linux 3.2.0-27-generic可以看出,它屬於排在主選單第三位的submenu的子選單的第乙個。所以就修改這個檔案中的set default="2>0"(注意,要取得寫得權利)。

或者直接修改 /etc/default/grub中的grub_default="2>0"(這樣就要執行update-grub)。

ubuntu 修改GRUB的預設啟動系統

問題關鍵 boot grub menu.lst檔案中的default引數 條件 需要root許可權 使用sudo命令 1.引導檔案很重要,所以修改的時候要謹慎,提前備份一下 sudo cp boot grub menu.lst boot grub menu backup.lst 使用root許可權c...

雙系統,修改ubuntu的grub更改啟動項

1 本機環境 雙系統ubuntu 12.04lts 和 windows 7 professional 開機時顯示的是ubuntu 的gurb選單 2 更改配置檔案使 系統預設啟動的是windows7 系統 3 方法 進入ubuntu12.04系統 需要改的檔案命令為 sudo chmod w boo...

如何修改Ubuntu的時間

如何修改ubuntu的時間 utc是格林威治時間,cst是中國標準時間,很顯然cst utc 8。基於此,如果你的cmos是本地時間 也即cst時間 並且你想使用本地時間,那麼你需要做如下修改 shell sudo vim etc default rcs 找到關於utc的設定 utc yes 注釋掉...