理解GRUB2工作原理及配置选项与方法
GRUB2是借鑒GRUB改寫到更加安全強大到多系統(tǒng)引導(dǎo)程序,現(xiàn)在大部分較新的Linux發(fā)行版都是使用GRUB2作為引導(dǎo)程序的。
GRUB2采用了模塊化設(shè)計,使得GRUB2核心更加精煉,使用更加靈活,同時也就不需要像 GRUB那樣分為stage1,stage1_5,stage2這樣三個階段了。
GRUB2和GRUB相比具有如下一些新特征:
無 stage1 stage1.5 stage2
配置文件采用新語法,支持腳本,假如新的命令,配置文件名為 grub.cfg
配置文件 grub.cfg不可寫,由 grub2-mkconfig 自動產(chǎn)生,由 update2-grub 維護(hù)。
分區(qū)號不再從 0開始,而是從 1開始
支持更多到文件系統(tǒng),如:ext4、hfs、ntfs,并可以直接從 lvm和raid中讀取文件/li>
grub2有更可靠的方法在磁盤上有多系統(tǒng)時發(fā)現(xiàn)文件和目標(biāo)內(nèi)核,可以用命令發(fā)現(xiàn)系統(tǒng)設(shè)備號或者UUID。
引入了設(shè)備模塊,使得 core 鏡像保持更小到尺寸
在啟動時沒有選擇菜單的話,按住shift即可強制顯示菜單
GRUB2主要鏡像文件:
boot.img
boot.img 相當(dāng)與 GRUB 的 stage1 它被寫入 MBR或 boot分區(qū),它不能識別任何文件系統(tǒng),在GRUB2安裝時GRUB2內(nèi)核鏡像在磁盤中到位置寫入到 boot.img 中,這就使得 boot.img 能夠在不能識別文件系統(tǒng)的情況下加載內(nèi)核鏡像。
cdboot.img
當(dāng)從CD引導(dǎo)情況下被寫入內(nèi)核鏡像第一個扇區(qū)到內(nèi)容,它負(fù)責(zé)加載其余的內(nèi)核鏡像到內(nèi)存。
diskboot.img
當(dāng)從磁盤引導(dǎo)情況下被寫入內(nèi)核鏡像第一個扇區(qū)到內(nèi)容,它負(fù)責(zé)加載其余的內(nèi)核鏡像到內(nèi)存。
pxeboot.img
當(dāng)從網(wǎng)絡(luò)啟動時使用到的。
kernel.img
此鏡像包含GRUB2運行時包含的基本工具,框架驅(qū)動、文件句柄、環(huán)境變量、安全模式命令行解析器等,他可以直接使用但是通常它會被編譯進(jìn)所有的內(nèi)核鏡像中使用。
core.img
這是GRUB2的內(nèi)核鏡像,它由grub-mkimage程序?qū)ernel.img和一些模塊動態(tài)編譯而成,一般情況下他已經(jīng)包含足夠的模塊去訪問/boot/grub,模塊機制使得內(nèi)核鏡像能保持很小的尺寸。在某種程度上,它可以被視為 GRUB 中的 stage2。
*.mod
這是一些可以動態(tài)加載的一些模塊,當(dāng)我們需要時,可以將它們可以被動態(tài)加載編譯進(jìn)內(nèi)核鏡像,也可以使用insmod手動加載。他們就代替 GRUB 中的 stage1_5 之類到鏡像。
安裝 GRUB2
一、grub2-install 腳本
1.安裝 GRUB 文件到 /boot/grub2
2.復(fù)制/usr/www.douniu178.com lib/grub/i386-pc/ 目錄下的*.mod、www.douniu157.com*.lst、*.img到/boot/grub目錄下
3.調(diào)用grub2-probe掃描計算機并收集磁盤和分區(qū)信息
4.調(diào)用grub2-mkimage構(gòu)建一個新的new.img
5.grub2-setup把grub的boot.img寫入MBR中,把core.img寫進(jìn)設(shè)備的第一個扇區(qū)
二、grub2-install 不會調(diào)用 grub2-mkconfig生成grub.cfg 我們需要手動調(diào)用。
1.grub2-mkconfig腳本調(diào)用grub2-mkdevicemap和grub2-probe生成grub.cfg
2.調(diào)用 grub2-set-default設(shè)置進(jìn)入系統(tǒng)的默認(rèn)內(nèi)核
3.調(diào)用 grub2-mkdevicemap生成新的device.map,grub-mkdevicemap程序可以創(chuàng)建
device.map文件,在執(zhí)行g(shù)rub-install時會自動執(zhí)行他以創(chuàng)建映像關(guān)系,如果文件不存在,
則會讀取/boot/grub2/www.mhylpt.com devicd.map這個文件,如果映像文件存在,
則grub讀取他創(chuàng)建BIOS drives to OS drives
GRUB2配置
GRUB2不再使用 menu.list,而是使用全新的配置文件 /boot/grub2/grub.cfg,文件權(quán)限為 444,其目的就是為避免手動更新,我們可以借助 grub2-mkconfig -o /www.furong157.com boot/grub2/www.boshenyl.cn grub.cfg 命令來更新。/boot/grub2 下到模塊可以按需自動加載,模塊可以在配置文件中配置,每個模塊以 ### BEGIN /etc/grub.d/module_config_name ###開始,以### END /etc/grub.d/module_config_name ### 結(jié)束,這些對應(yīng)的模塊文件位于 /etc/grub.d目錄之下,次目錄下的文件名前面到數(shù)字決定了文件的執(zhí)行順序,數(shù)字越小越先執(zhí)行,自定義選項在40_custom中定義,這些文件必須有執(zhí)行權(quán)限才會被update-grub讀取,并把配置合并到grub.cfg中。
/etc/grub.d/00_header
配置初始的顯示項目,如默認(rèn)選項,時間限制等,一般由/etc/default/grub導(dǎo)入,一般不需要配置
/etc/grub.d/05_debian_theme
配置引導(dǎo)畫面,文字顏色等主題
/etc/grub.d/www.furggw.com 10_linux
定位當(dāng)前操作系統(tǒng)使用中的root設(shè)備內(nèi)核的位置
30_os-prober
用來搜索linux和其他系統(tǒng),此腳本中的變量用來指定在/boot/grub/grub.cfg 和 grub2菜單中的名稱顯示方式,可以修改/etc/default/grub光比這個腳本
40_custom
用來加入用戶自定義的菜單樣板,將會在執(zhí)行update-grub時更新至grub.cfg中
41_custom
判斷custom.cfg此配置文件是否存在,如果存在就加載它
GRUB2在每次生成grub.cfg的時候,都會檢查并設(shè)置 /etc/default/grub 配置選項,我們可以通過修改/etc/default/grub來改變 GRUB2到行為。
常用配置選項有以下這些:
GRUB_DEFAULT
制定默認(rèn)菜單選擇項,可以是從0開始數(shù)字,也可以是 title 后面的字符串,
當(dāng)值是‘saved’時有特殊含義:默認(rèn)的菜單選則項會被保存在GRUB_SAVEDEFAULT中,
下次啟動時會從這個值啟動。當(dāng)值為saved時可以用grub2-set-default和grub2-reboot來設(shè)置默認(rèn)啟動項,
grub2-set-default到下次修改前都有效,grub2-reboot下次啟動時生效
GRUB_SAVEDEFAULT
只有這個值是true,GRUB_DEFAULT是saved時才會生效
GRUB_TIMEOUT
選擇菜單的顯示時間,默認(rèn)是5,值是0表示不顯示菜單選項,值是-1表示無限等待用戶選擇
GRUB_HIDDEN_TIMEOUT
GRUB2第一次執(zhí)行時會尋找其他操作系統(tǒng),如果沒有檢測到則會將菜單隱藏,
如果有其他操作系統(tǒng)才會顯示菜單,如果參數(shù)大于0,則會等待響應(yīng)的秒數(shù),
但是不會顯示菜單,可以按住shift顯示菜單。
GRUB_DISTRIBUTOR
菜單中的描述名稱,采用命令lsb_release判斷,應(yīng)該是紅帽系列的,如果不是就歸為Debian
GRUB_CMDLINE_LINUX
此行將追加到所有的linux 定義內(nèi)核行的后面,不論是救援模式還是一般模式
GRUB_CMDLINE_LINUX_DEFAULT
次選項只會追加在一般模式后面,同上
GRUB_TERMINAL=console
啟用console,默認(rèn)不啟用
GRUB_DISABLE_LINUX_UUID=true
在GRUB2中指定root時可以使用UUID,默認(rèn)不啟用
GRUB_GFXMODE=640×480
圖形化菜單的分辨率,默認(rèn)不啟用
GRUB_DISABLE_LINUX_RECOVERY=true
禁止顯示救援模式
This entry was written by zpz, posted on 2012 年 11 月 13 日 at 下午 12:01, filed under linux, linux系統(tǒng)管理, shell and tagged grub, GRUB2, grub配置. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.
轉(zhuǎn)載于:https://www.cnblogs.com/qwangxiao/p/8661728.html
總結(jié)
以上是生活随笔為你收集整理的理解GRUB2工作原理及配置选项与方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓下使用 dropbear 开启SSH
- 下一篇: Linux 准确查找结构体定义位置