grub2編譯
『壹』 請教Grub2的安裝
編譯: ./configure make sudo make install 默認路徑為 /usr/local/ 安裝: 先mount上要安裝grub的分區,然後 sudo grub-install [--root-directory=DIR] /dev/hda //引導記錄安裝到mbr,[ grub文件安裝到 DIR/boot/grub/ ] sudo grub-install [--root-directory=DIR] /dev/hda3 //引導記錄安裝到分區3,[ grub文件安裝到 DIR/boot/grub/ ] grub-install 是一個腳本,它完成以下任務: * 調用 grub-mkdevicemap 創建設備映像文件 /boot/grub/device.map * 復制 *.mod *.lst *.img 文件到 /boot/grub/ * 調用 grub-probe 自動偵測文件系統類型 * 調用 grub-mkimage 生高物敏成grub2內核文件 /boot/grub/戚枝core.img * 調用 grub-setup 安裝引導記錄到mbr或分區 創建grub菜單: update-grub 它也是一個腳本,將根據 /usr/local/etc/grub.d/ 里的文件自螞帆動創建 /boot/grub/grub.cfg 最後對這個菜單文件手工修改成適合的樣子即可 以下是一個安裝的例子: root@sunshine-laptop:/dev# mkdir /media/sda8 root@sunshine-laptop:/dev# mount /dev/sda8 /media/sda8 root@sunshine-laptop:/dev# // sda8為系統 / (/boot)掛載點 指定/dev/sda 寫入mbr root@sunshine-laptop:~# grub-install --root-directory=/media/sda8 /dev/sda Installation finished. No error reported. This is the contents of the device map /media/sda8/boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (hd0) /dev/sda root@sunshine-laptop:~# // 如果這里/dev/sda 指定為優盤的設備就會把grub2寫入u盤,可以用該u盤引導系統。
『貳』 編譯grub2-mips啟動器,製作 MIPS 架構的 grubmips64el.efi
一. 實驗環境
二. grub 介皮伏拍紹
三. 在x86架構下,對grub1 與 grub2 引導階段剖析(再去結合龍芯PMON、昆侖固件、UEFI固件分廳改析啟動過程,因為龍芯固件已包含 bootloader 功能,對燃羨比分析)
四. 分區類型選擇(X86情況下)
五. 製作 grubmips64el.efi
九. 參考資料
『叄』 Fedora 16中/boot/grub2/grub2.cfg的內容是什麼
grub2和以前grub不太一樣,grub2.cfg是由腳本生成的,不需要你修改(系統也不希望你修改)
如果你要編輯grub有兩個地方可以選擇
1./etc/default/grub 可以設置默認啟動項和內核參數等等(ubuntu下有這個文件,fedora忘了)
2./etc/grub.d/
這下面你會看到 類似00_header 的文件,這就是腳本啦,前面的00應該是編譯順序,具體要修改你還是看看教程吧
修改完成
用root許可權執行 grub2-mkconfig -o /boot/grub2/grub2.cfg 更新grub (這命令是fedora的我記得很清楚,比ubuntu下的長多了= =!)
『肆』 請教如何用grub2引導linux內核
執行update-grub應該可以找到新內核的引導吧?如果不行,編輯grub.cfg手動添加啟動項:
menuentry "我的Ubuntu " {
linux /boot/vmlinuz-xxx
initrd /boot/initrd-xxx.lz
}
或者編輯/etc/grub.d/40_os-prober,將上面代碼添加到文件末。然後執行update-grub。