Grubinst初级使用教程
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 安装引导扇区到指定硬盘(或硬盘映像)的分区I。
-p=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编译。