2011-11-24

Grubinst 初級使用 (Grub4DOS utility)

1. 介紹
grubinst是一個用來將GRUB4DOS安裝到硬盤的MBR(或者分區的引導扇區)以及映像文件中的工具。

grubinst.exe是一個命令行方式的程序,它的功能基本上與不點的GRUB4DOS發行包中的bootlace.com(可以運行在純DOS或者Linux環境)相同,但是跟bootlace.com不同,grubinst完全是用C語言開發的,能夠在Windows NT/2K/XP、Linux和FreeBSD等操作系統下編譯並運行。

grubinst_gui.exe是grubinst.exe的圖形界面shell程序,對於那些不熟悉命令行操作的用戶來說,它提供了更友好的圖形操作界面,目前,grubinst_gui.exe只能運行在Windows操作系統(事實上是只能運行在NT/2K/XP環境)下。

另外請注意,當前版本的grubinst不支持在Windows 95/98/ME下修改硬盤的MBR,對於這些操作系統,請使用bootlace.com。

2. grubinst跟bootlace.com的區別
在bootlace.com裡,硬盤盤等設備只能用設備的BIOS識別號來表示,如0x80表示第一塊硬盤,0x81表示第二塊硬盤等等。而在grubinst中,硬盤則可以用特定的設備文件名來表示(跟grub的傳統類似),如(hd0), (hd1)...。軟驅暫時還不支持這種表示方式。

grubinst支持幾個新的選項,主要用於恢復原來的MBR。

--save-mbr=FILENAME

This option is used to save the original MBR to FILENAME 這個選項用於保存原來的MBR到文件中。

--restore-mbr=FILENAME

這個選項用來從前面保存的文件中恢復原來的MBR。

--restore-prevmbr

這個選項用來恢復保存在硬盤或者映像文件中第二個扇區的原來的MBR。

正常情況下,原來的MBR只有一個扇區,它被保存在新的GRLDR MBR中的第二個扇區中。你可以用--restore-prevmbr選項來恢復它。然而,如果原來的MBR的長度超過一個扇區,例如,你安裝了別的引導管理軟件,那麼GRLDR MBR就沒有足夠的空間保存原來的MBR。在這種情況下,你應該使用--save-mbr=FILENAME將原來的MBR保存到一個外部文件中,需要時再使用--restore-mbr=FILENAME選項從保存的文件中恢復它。

3. 用法及示例
取自grubinst 1.1的--help。

grubinst   [選項]   設備或文件
選項:

--help,-h 顯示本幫助
--pause 退出前暫停
--version 顯示grubinst版本信息
--verbose,-v 輸出詳細信息
--list-part,-l 列出設備或者文件中的所有分區信息
--save=FN,-s=FN 保存原來的MBR/引導扇區到文件FN中。
--restore=FN,-r=FN 從前面備份的FN中恢復原來的MBR/引導扇區
--restore-prevmbr,-r 恢復保存在設備或者文件第二扇區中的原來的MBR
--read-only,-t 只是模擬操作,沒有真正的寫操作(測試模式)
--no-backup-mbr 不在第二扇區中備份原來的MBR。
--force-backup-mbr 強製備份原來的MBR到第二扇區(默認選項)
--mbr-enable-floppy 在軟驅上搜索grldr(默認選項)
--mbr-disable-floppy 禁止搜索軟驅上的grldr
--mbr-enable-osbr 當分區表非法時(通常是某操作系統的引導扇區),仍然啟動原來的MBR(默認選項)
--mbr-disable-osbr 當分區表非法時(通常是某操作系統的引導扇區),禁止啟動原來的MBR。
--duce (不明白,無法翻譯)disable the feature of unconditional entrance
to the command-line.
--boot-prevmbr-first 在搜索GRLDR之前嘗試首先啟動原來的MBR
--boot-prevmbr-last 在啟動原來的MBR之前先搜索GRLDR(默認選項)
--preferred-drive=D 優先啟動磁盤編號, 0 <= D < 255.
--preferred-partition=P 優先啟動分區編號, 0 <= P < 255.
--time-out=T,-t=T 在啟動原來的MBR之前等待T秒,如果T是0xff,無限等待,默認等待5秒
--hot-key=K,-k=K 如果在啟動原來的MBR之前按下了指定鍵,則啟動GRUB。K的長度為一個字(word),也就是int16/AH=1中斷的AX寄存器值。高位字節是對應按鍵的掃瞄碼,低位字節是ASCII碼。默認按鍵是0x3920,也就是空格鍵。
--key-name=S 指定熱鍵的顯示名
--floppy,-f 如果安裝目標是軟驅,則指定這個選項。
--floppy=N 如果安裝目標是硬盤的某個分區,則指定這個選項。N用來指定分區編號:0,
1,2和3對應主分區,4,5,6,...對應邏輯分區。
--sectors-per-track=S 對--floppy選項指定每磁道扇區數,1 <= S <= 63, 默認是63.
--heads=H 對--floppy選項指定磁頭數,1 <= H <= 256, 默認是255.
--start-sector=B 對--floppy=N選項指定隱藏扇區數。
--total-sectors=C 對--floppy選項指定總扇區數,默認是0。
--lba 對--floppy選項使用LBA方式。如果軟驅的BIOS支持LBA,你可以指定這個選項。
按規定所有的軟驅BIOS都支持CHS方式,所以最好指定--chs選項。如果既沒指定
--lba也沒指定--chs,則LBA指示字節(一般是啟動扇區第3字節)的值不會被改
變。
--chs 對--floppy選項使用chs方式。如果你的軟驅BIOS不支持LBA方式,你應該指定
--chs選項。我們假定所有的軟驅BIOS都支持CHS方式,所以推薦使用--chs選項。
如果既沒指定--lba也沒指定--chs,則LBA指示字節(一般是啟動扇區第3字節)
的值不會被改變。
--install-partition=I, -p=I 安裝引導扇區到指定硬盤(或硬盤映像)的分區I。
--boot-file=F,-b=F 改變默認啟動文件名(默認是grldr)。
--load-seg=S 改變啟動文件的默認內存加載段(默認是0x2000:0)。
--grub2,-2 裝載grub2的內核g2ldr而不是grldr。
--output,-o 輸出內置的grldr.mbr(受-b參數的影響)。

示例 1: 安裝GRLDR MBR到第一個硬盤

grubinst (hd0)

示例 2: 安裝GRLDR MBR 到磁盤映像文件disk.dsk

grubinst disk.dsk

示例 3: 恢復第一塊硬盤的單扇區MBR

grubinst --restore-prevmbr (hd0)

示例 4: 安裝GRLDR MBR到第一塊硬盤並保存原來的MBR到MBR.sav文件中。

grubinst --save-mbr=MBR.sav (hd0)

示例 5: 從保存的MBR.sav中恢復原來的MBR。

grubinst --restore-mbr=MBR.sav (hd0)

示例 6: 在啟動時10秒內按下空格才加載GRUB

grubinst --boot-prevmbr-first --time-out=10 (hd0)

4. 編譯方法
要編譯grubinst,在Linux/FreeBSD下你需要GCC,在Windows NT/2K/XP下你需要mingw或者Visual C++ 6.0。

mingw:

make -f Makefile.mgw

Visual C++ 6.0:

nmake -f Makefile.vc6

Linux GCC:

make -f Makefile.lnx

FreeBSD GCC:

make -f Makefile.bsd

這裡提供的二進制代碼使用mingw編譯。

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.