導航:首頁 > 編程語言 > 代碼更改grub內容

代碼更改grub內容

發布時間:2024-01-24 15:16:19

linux 如何修改 Grub

要修改grub,請注意以下幾個重要文件

1. /boot/grub/grub.cfg

此檔案中包含了GRUB選單資訊。

注意他的開頭,說明了這是由/etc/grub.d與/etc/default/grub所生成的,不要自己編輯。這個檔案還是唯讀屬性,就是要避免你直接去編輯。

若是你修改了這個檔案,只要更新核心,或是以指令更新grub選單,之前的修改就會被覆蓋掉。所以除非不得已,請不要去動這個檔案。要修改,請繼續往下看。

2. /etc/default/grub

此檔案為使用者修改grub設定的主要檔案,真的改爛了請不要急,在/usr/share/grub/default/里還有一份,復制回來即可。

要修改這個檔案,請輸入

sudo gedit /etc/default/grub

3. /etc/grub.d目錄

此目錄放置檔案,會在sudo update-grub時,合並到/boot/grub/grub.cfg中。

注意這些檔案名稱結構,前面都有數字。數字越小的,在合並時放在越前面。常有人問到,grub menu要怎麼更改選項的順序?就是更改數字的大小。

此外請你在這目錄下輸入ls -l,看一下各檔案的屬性,有沒有看到都有x屬性(可執行)?變動x屬性,可以決定這個選項要不要出現在選單內。

以下介紹 /etc/default/grub 所使用的參數,我只介紹大家比較會去修改到的。

1. GRUB_DEFAULT - 設定預設選單選項。有以下幾種作法。

GRUB_DEFAULT=0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。

GRUB_DEFAULT="xxxx" 在此例中,選單中的位置不會有影響。例如:GRUB_DEFAULT="Ubuntu, Linux 3.11.0-13-generic"。注意要完整全稱。

GRUB_DEFAULT=saved 由儲存預設的作業系統開機。可以用grub-reboot和grub-set-default指令來設定預設作業系統。預設作業系統不會由來自選單中的互動式選擇而被設定。

sudo grub-set-default 0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。

sudo grub-set-default "xxxx" 以選單名稱來設定

sudo grub-reboot 0 以位置來設定下次重啟開機選項。第一筆選單選項為 0,第二筆為 1,以此類推。

sudo grub-reboot "xxxx" 以選單名稱來重啟開機

2. GRUB_HIDDEN_TIMEOUT - 此設定用來決定GRUB選單會有多長時間不被顯示。

GRUB_HIDDEN_TIMEOUT=0 在單一作業系統電腦中,會立刻以預設作業系統開機。在只有一個作業系統狀況下,這是預設的設定。假如還是要顯示選單,請在這行前加上 # 注銷掉,並確認 GRUB_TIMEOUT 設定為正整數。

GRUB_HIDDEN_TIMEOUT=X x為秒數,空白畫面幾秒後,系統將會依照預設開機,不會出現選單。當螢幕是空白時,使用者可以按下任何鍵以顯示選單。

3. GRUB_HIDDEN_TIMEOUT_QUIET - 在空白畫面時,是否顯示倒數計時器

GRUB_HIDDEN_TIMEOUT_QUIET=true '不'顯示計時器

GRUB_HIDDEN_TIMEOUT_QUIET=fault 顯示計時器

4. GRUB_TIMEOUT - 選單顯示多久之後自動以預設作業系統開機

GRUB_TIMEOUT=10 10秒後以預設系統開機

GRUB_TIMEOUT=-1 持續顯示選單,直到使用者選擇

5. GRUB_GFXMODE - 設定grub選單顯示的解析度。一般是註解掉。

GRUB_GFXMODE=640x480 以640x480模式顯示。

除非開機時選單顯示就有問題,不然不要啟用這個參數,據說會影響進入grub選單的時間。真的要啟用,後面的數值請依照你顯卡可以支援的模式填入,如1280x1024x16,800x600x24,640x480

6. GRUB_DISABLE_LINUX_RECOVERY - 救援模式要不要顯示?

你在選單中是不是都有看到救援模式(recovery mode)?假如你的電腦一向穩定,而且你不太會去動到系統,可以考慮去除 # 註解

GRUB_DISABLE_LINUX_RECOVERY=true '不' 顯示救援模式

7. GRUB_DISABLE_OS_PROBER - 對其他分割區作業系統的檢查

大家應該都知道sudo update-grub可以找到在其他分割區的作業系統,製成選單。但有時我就是不想要他顯示到選單內,那怎麼辦?那注銷掉這一行就可以不檢查其他分割區有沒有作業系統。

GRUB_DISABLE_OS_PROBER=true '不'檢查其他作業系統

8. GRUB_BACKGROUND - 背景影像所在。這個參數,需要自行加入。

GRUB_BACKGROUND= 以/usr/share/background/xxx.jpg當作選單背景。可以.png, .jpg, 或.tga等格式

㈡ 如何修改新內核linux下的grub配置

sudo gedit /boot/grub/grub.cfg
gedit可以換成nano,vim等看你用什麼文本編輯器了。
grub.cfg是新版grub。以前版本的是menu.list(lst??)

㈢ Linux啟動時顯示Grub命令行及修改

1、在啟動linux系統時,如果/boot/grub/grub.cfg文件損壞或者不存在時,啟動linux時,就會有Grub命令行的提示。
如下操作,將系統自帶的grub.cfg文件改名。
2、重新啟動系統後,發現和自己預想的一樣,沒有出現引導菜單。
3、在grub命令提示符下,可以使用一些命令載入內核和文件系統,設置根目錄的分區。
有的grub使用
linux
/boot/vmlinuz-xx
有的grub使用kernel
/boot/vmlinuz-xx,可自己輸入一個首字母,按TAB鍵查看,演示的grub支持的是linux命令
4、過一會出現下面的界面。
->
sudo
update-grub
->sudo
grub-install
/dev/sda
輸入這兩個命令後,新的grub.cfg就生成了,跟之前文件的一樣(前提是沒有對文件做任何更改)。

㈣ linux下怎麼修改grub.cfg

1、grub2的啟動配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst。

2、如果你是多系統,有Ubuntu和windows,那麼用下面的命令,可以使grub2得到所以可以啟動的系統。

sudo update-grub

實際就是讓系統自己生成合適的grub.cfg文件。

3、這個grub.cfg文件是只讀屬性,so如果你要修改它,需要許可權。sudochmod+w/boot/grub/grub.cfg 然後可以編輯grub.cfg了。

㈤ 關於ubuntu的grub2引導

步驟如下:

a 進入grub的命令模式。進入grub界面後按C鍵進入命令行界面。

b 先熟悉一下grub 的一些命令 grub>help

c 熟悉一下cat命令

d root指令來指定/boot所在的分區

e kernel指令來指定linux的內核,及所在的分區

f 用initrd命令來指定initrd文件

g boot引導系統

cat命令的用法

cat指令是用來查看文件內容的,有時不知道Linux的/boot分區,以及/根分區所在的位置,要查看/etc/fstab的內容來得知, 這時,就要用到cat (hd[0-n],y)/etc/fstab 來獲得這些內容;注意要學會用tab鍵命令補齊的功能;

grub> cat ( 按tab 鍵會出來hd0或hd1之類的;

grub> cat (hd0, 註:輸入hd0,然後再按tab鍵;會出來分區之類的;

grub> cat (hd0,6)

Possible partitions are:

Partition num: 0, Filesystem type unknown, partition type 0x7

Partition num: 4, Filesystem type is fat, partition type 0xb

Partition num: 5, Filesystem type is reiserfs, partition type 0x83

Partition num: 6, Filesystem type is ext2fs, partition type 0x83

Partition num: 7, Filesystem type unknown, partition type 0x83

Partition num: 8, Filesystem type is reiserfs, partition type 0x83

Partition num: 9, Filesystem type unknown, partition type 0x82

grub> cat (hd0,6)/etc/fstab 註:比如我想查看一下 (hd0,6)/etc/fstab的內容就這樣輸入;

LABEL=/ / ext3 defaults 1 1

/dev/devpts /dev/pts devpts gid=5,mode=620 0 0

/dev/shm /dev/shm tmpfs defaults 0 0

/dev/proc /proc proc defaults 0 0

/dev/sys /sys sysfs defaults 0 0

LABEL=SWAP-hda1 swap swap defaults 0 0

/dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,

managed 0 0

主要查看/etc/fstab中的內容,主要是Linux的/分區及/boot是否是獨立的分區;如果沒有/boot類似的行,證明/boot和 Linux的/處於同一個硬碟分區;比如上面的例子中LABEL=/ 這行是極為重要的;說明Linux系統就安在標簽為LABEL=/的分區中;

如果您的Linux系統/boot和/沒有位於同一個分區,可能cat (hd[a-n],y) 查到的是類似下面的;

LABEL=/ / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

root (hd[0-n,y) 指令來指定/boot所在的分區;

其實這個root (hd[0,n],y)是可以省略的,如果省略了,要在kerenl 命令中指定;前面已經說過 (hd[0-n],y)硬碟分區的表示方法的用途;主要是用來指定 /boot所在的分區;

eg:

grub> root (hd0,0)

kernel 指令,用來指定Linux的內核,及/所在的分區;

kernel 這個指令可能初學者有點怕,不知道內核在哪個分區,及內核文件名的全稱是什麼。不要忘記tab鍵的命令補齊的應用;

如果已經通過root (hd[0-n],y) 指定了/boot所在的分區,語法有兩個:

如果/boot和Linux的/位於同一個分區,應該是下面的一種格式;

kernel /boot/vmlinuz在這里按tab鍵來補齊,就看到內核全稱了 ro root=/dev/hd[a-z]X

如果/boot有自己獨立的分區,應該是;

kernel /vmlinuz在這里按tab鍵來補齊,就看到內核全稱了 ro root=/dev/hd[a-z]X

在這里 root=/dev/hd[a-z]X 是Linux 的/根所位於的分區,如果不知道是哪個分區,就用tab出來的來計算,一個一個的嘗試;或用cat (hd[0-n],y)/etc/fstab 中得到Linux的/所在的分區或分區的標簽;

grub> kernel /boot/在這里按tab鍵;這樣就列出/boot中的文件了;

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369

_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55

.1 xen-syms xen.gz

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

註解: root=LABEL=/ 是Linux的/所在的分區的文件系統的標簽;如果您知道Linux的/在哪個具體的分區,用root=/dev/hd[a-z]X來指定也行。比如下面的一行也是可以的;

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

也可以把/boot所在的分區的指定 root (hd[0-n],y)這行省掉,直接在kernel 中指定/boot所在的分區;所以就在下面的語法;

如果是/boot和Linux的根同處一個分區;

kernel (hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X

比如:

grub>kernel

如果是/boot和Linux所在的根不在一個分區;則是;

kernel (hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]X

grub> kernel (hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

[Linux-bzImage, setup=0x1e00, size=0x18e473]

或下面的輸入,以cat 出/etc/fstab內容為准;

grub> kernel (hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

initrd 命令行來指定initrd文件;

grub> initrd /boot/initrd在這里tab 來補齊;

grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img

[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

如果/boot是獨立的一個分區,應該是如下樣子的語法;比如下面的;

grub> initrd /initrd在這里tab 來補齊;

grub> initrd /initrd-2.6.11-1.1369_FC4.img

[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

boot 引導系統;

grub>boot

下面是在我機器上的命令:

grub> cat (hd0,0)/etc/fstab

# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1

/dev/devpts /dev/pts devpts gid=5,mode=620 0 0

/dev/shm /dev/shm tmpfs defaults 0 0

/dev/proc /proc proc defaults 0 0

/dev/sys /sys sysfs defaults 0 0

LABEL=SWAP-hda1 swap swap defaults 0 0

/dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0

grub> root (hd0,0)

Filesystem type is ext2fs, partition type 0x83

grub> kernel /boot/在這里按tab補齊,全列出/boot所有的文件;

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4

memtest86+-1.55.1 xen-syms xen.gz

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

grub> initrd /boot/在這里按tab補齊

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK

memtest86+-1.55.1 xen-syms xen.gz

grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 注;輸入intrd文件名的全名;

[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

grub> boot

閱讀全文

與代碼更改grub內容相關的資料

熱點內容
mdfldf是什麼文件 瀏覽:569
文件在桌面怎麼刪除干凈 瀏覽:439
馬蘭士67cd機版本 瀏覽:542
javaweb爬蟲程序 瀏覽:537
word中千位分隔符 瀏覽:392
迷你編程七天任務的地圖怎麼過 瀏覽:844
word2003格式不對 瀏覽:86
百度雲怎麼編輯文件在哪裡 瀏覽:304
起名app數據哪裡來的 瀏覽:888
微信怎麼去泡妞 瀏覽:52
百度廣告html代碼 瀏覽:244
qq瀏覽器轉換完成後的文件在哪裡 瀏覽:623
jsp中的session 瀏覽:621
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567

友情鏈接