概述
grub4dos來源于 gnu grub legacy ——即 gnu grub 0.97,青出于藍而勝于藍!題外話:gnu grub 2 正處于不斷的開發(fā)階段,并未正式發(fā)布!
- 跨平臺:grub4dos可以啟動任何類型的操作系統(tǒng):liunx;windows;dos等等
- 多種安裝形態(tài):mbr(非文件方式存在);分區(qū)(非文件方式存在);和其他引導器結(jié)合(如微軟的引導器,以普通分區(qū)根目錄的文件的形式存在)
- 多種運行形態(tài):dos下的設(shè)備驅(qū)動文件形式;普通dos命令形式;基本引導器形態(tài)
- 多種操作形態(tài):自動預設(shè)菜單;命令行
版本
最新版本:截止該隨筆寫作時為0.4.4-2009-06-20
啟動菜單配置文件menu.lst
grub4dos 和 gnu grub 一樣,使用menu.lst作為標準的啟動菜單配置文件。
grub4dos推薦menu.lst文件放在和grldr相同的目錄下
基本知識
- 硬盤設(shè)備:(hdm):m序號從 0 開始,注意:設(shè)備也可以使用bios的標識序號標識,如第一個硬盤也可以表示為(0x80) 或(120)
- 硬盤分區(qū):(hdm,n):m序號從 0 開始,注意:設(shè)備也可以使用bios的標識序號標識,如第一個硬盤也可以表示為(0x80) 或(120)。n是m硬盤的分區(qū)號,從0開始——對于主分區(qū)為0-3,對于擴展分區(qū)為4-25。
- 硬盤分區(qū)的子分區(qū):(hdm,n,k):m序號從 0 開始,注意:設(shè)備也可以使用bios的標識序號標識,如第一個硬盤也可以表示為(0x80) 或(120)。n是m硬盤的分區(qū)號,從0開始——對于主分區(qū)為0-3,對于擴展分區(qū)為4-25。對于ffs、ufs文件系統(tǒng),子分區(qū)的號為字母標識,從“a”開始。
- 軟盤設(shè)備:(fdm):m序號從 0 開始,表示第一個軟盤
- 文件名字:在設(shè)備名字+路徑+文件名。注意:路徑分隔符為linux風格的“/”
- 定位扇區(qū):類似文件名,由位移+訪問的數(shù)量構(gòu)成,當位移為0時,可以省略0,但“+”不可以省略!
- 默認根設(shè)備:root 命令,可以指定默認的全局根設(shè)備名。之后不指明根設(shè)備的文件都默認是在全局根設(shè)備上
必備技巧
- tab鍵:補足功能
- esc鍵:取消命令模式,退回基本菜單模式
- help [cmd]:隨時隨地獲取幫助
核心使用指南、示例
chainloader 和 kernel
- 啟動dos、windows95、98、me:chainloader (hd0,0)/io.sys
- 啟動windowsNT、2000、xp、2003:chainloader (hd0,0)/ntldr
- 啟動windows vista、 7、2008:chainloader (hd0,0)/bootmanager
- 啟動linux:kernel (hd0,0)/vmlinuz initrd (hd0,0)/initrd
map
- 標準的map功能:模擬bios進行磁盤交換,必須成對設(shè)置,boot以后生效!map (hd0) (hd1) map (hd1) (hd0)
- grub4dos擴展:攔截int13,虛擬硬盤:map (hd0,0)/vd.disk (hd1),vd.disk文件物理存儲上必須連續(xù)
- grub4dos擴展:攔截int13,虛擬軟盤:map (hd0,0)/vd.flp (fd0),vd.disk文件物理存儲上必須連續(xù)
- grub4dos擴展:指示map映射立即生效:map --hook
- grub4dos擴展:將虛擬設(shè)備放入內(nèi)存:在map后添加 --mem 參數(shù)即可:map --mem (hd0,0)/ramdisk.disk (hd1)
- grub4dos擴展:自動生成mbr功能,不論是文件系統(tǒng) 還是 磁盤系統(tǒng),grub4dos可用自動檢測,必要是補充上mbr
- grub4dos擴展:加載整個硬盤分區(qū):map --mem (hd0,0)[0]+1
- grub4dos擴展:虛擬內(nèi)存設(shè)備(md)
- grub4dos擴展:虛擬隨機訪問內(nèi)存設(shè)備(rd)
- grub4dos擴展:虛擬網(wǎng)絡(luò)設(shè)備(nd)
- grub4dos擴展:虛擬光驅(qū)設(shè)備(cd)
- grub4dos擴展:顯示當前磁盤映射狀態(tài):map --status
- grub4dos擴展:設(shè)置虛擬設(shè)備為只讀:map --read-only
- grub4dos擴展:設(shè)置虛擬設(shè)備為假寫:map --fake-wirte
cat
- grup4dos擴展:可用使用--hex參數(shù)來顯示十六進制的數(shù)據(jù),也可以--locate=string來搜索字符串
- cat --hex (hd0)+1: 以十六進制形式顯示第一只硬盤的MBR。
- cat --hex (hd0,0)+1: 以十六進制形式顯示第一只硬盤第一個分區(qū)的啟動扇區(qū)
- cat --hex (md)+2: 以十六進制形式顯示內(nèi)存開始1K的內(nèi)容,這里其實是中斷向量表。
- cat --hex (md)0x800+1: 以十六進制形式顯示內(nèi)存從0x800 * 512 = 1M 開始512字節(jié)的內(nèi)容,也就是從擴展內(nèi)存開始的512字節(jié)。
使用光驅(qū):不支持joliet擴展的光盤
- grub支持的光驅(qū)設(shè)備是(cd):指的是使用光驅(qū)啟動grub所在的設(shè)備
- cdrom --init:初始化所有cdrom設(shè)備
- map --hook:為所有cdrom設(shè)備分配設(shè)備名:依次為cd0、cd1....
- cdrom --stop:停止所有cdrom設(shè)備
- map --unhook:刪除cdrom設(shè)備名