Grubinst初级使用教程

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编译。

原文地址:https://www.cnblogs.com/suping/p/3890975.html