GRUB4DOS

更新时间:2023-12-20 23:34

GRUB4DOS是一个优秀的双(多)系统引导软件,是 GNU GRUB 的一个分支,使用GRUB4DOS可以很方便的引导各种操作系统,比如DOS、Windows、 Linux等。是一个可以把U盘制作成光盘似的来进行装系统的启动引导工具。

起源

该项目是由tinybit(不点)于2003年发起的,活跃的开发者主要有tinybit,bean,chenall,yaya,roy和karyonix等。

特色

作为GNU GRUB启动引导程序的扩充,grub4dos将焦点放在兼容性上。这体现在这几个方面上:

当系统已经安装有操作系统和启动引导程序时,它可以以多种多样的方式被加载。编写条目时它可以被DOS作为普通应用程序加载,或者被GNU/Linux使用kexec系统调用作为内核文件加载。此外,NTLDR、BOOTMGR和其它Linux下的启动引导程序均可加载之。

当安装为首先启动的启动引导程序时,它能启动各种各样的操作系统,其中包括GNU/Linux,Windows,DOS等,并支持各种媒质,如CD-ROM,软盘,硬盘,U盘,PXE等等。

GRUB4DOS 最大的成功之处就是既学习了windows的方便易用,又引入linux的强大功能。

命令索引

blocklist 输出文件的块清单表达法。

boot 引导已加载的操作系统或扇区链式加载器。

bootp 通过BOOTP初始化网络设备。

cat 显示指定文件的内容。

cdrom 初始化或者停止所有的 ATAPI CDROM 设备。

chainloader 加载扇区链式加载器。

cmp 比较两个文件, 并且报告两者之间的差异。

color 改变菜单的颜色。

configfile 将指定文件作为配置文件予以加载。

debug 打开/关闭调试模式。

default 把 NUM 项菜单设为缺省值。

device 声明BIOS驱动器对应的实际物理设备。

dhcp 通过DHCP初试化网络设备。

splashimage 图形模式下载入背景图片文件。

foreground 设置图形模式下的前景色。

background 设置图形模式下的背景色。

clear 清屏。

displayapm 显示 APM BIOS 的相关信息。

displaymem 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。

displaymem 显示诸多文件的内容。

embed 如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。

fallback 如果调用当前的菜单项时出现错误,则跳转到 NUM 项后重试。

commandline 进入命令行方式。

find 在所有分区上查找文件名, 并显示包含该文件的设备。

fstest 切换文件系统的试验模式。

geometry 输出驱动器的相关信息。

halt 关闭系统(计算机)。

help 显示内部命令的帮助信息。

hiddenmenu 隐藏菜单。

hide 通过在分区类型上置隐藏标志,隐藏指定分区。

ifconfig 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。

impsprobe 探测 Intel 多处理器规范 1.1/1.4 配置表并使所找到的各处理器启动进入闭循环。

initrd 加载Linux格式的初始化虚拟盘, 并设置必要的参数。

install 安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。

ioprobe 侦测指定设备的 I/O 端口号。

kernel 尝试载入主引导影像文件(Linux内核格式)。

lock 如果用户未被认证,则终止命令的执行。

makeactive 将 root 设备置为活动分区

map 对设备进行映射。

md5crypt 产生一个 MD5 格式的密码。

module 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。

modulenounzip 与 'module' 类似, 但是禁用了自动解压缩

pager 没有参数时,切换页模式。

partnew 创建一个新的主分区

parttype 改变指定分区(PARTITION)的分区类型(TYPE)。

password 设置密码。

pause 终止命令的运行,并给出一段信息。任意键按下后,将继续。

quit 从 GRUB 命令行中退出。

rarp 用 RARP 初始化网络设备。

read 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。

write 写一个 32 位的值 VAL 到内存地址 ADDR。

reboot 重启系统(计算机)。

fontfile 指定中文字体文件,并切换到中文显示方式。

root 设置根分区。

rootnoverify 类似`root'指令, 但不测试安装该分区。

savedefault 将当前项设置为默认的引导项。

serial 初始化一个串口设备。

setkey 改变键盘映射关系。

setup 自动安装GRUB.

terminal 选择一个终端。

terminfo 指定终端的功能。

testload 以多种不同的方式读取文件(由FILE指定)的整个内容,并予以比较,以测试文件系统的代码。

testvbe 测试所指定(MODE)的 VBE 模式。

setvbe 为后续的每个kernel命令行设置VBE模式。

tftpserver 指定 TFTP 服务器的 IP 地址。

timeout 设置在自动启动缺省菜单前所等待的秒数。

title 命名菜单项。

unhide 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。

uppermem 强制指定仅有(KBYTES) KB 的上位内存

vbeprobe 侦测 VBE 的信息。

使用说明

安装:

下载grubinst.exe,运行将grub4dos安装到硬盘MBR(master boot record),即硬盘第一扇区,但大于2T的分区类型为GPT(非MBR),新手最好不要安装到主机硬盘上,可选择U盘等外接设备安装,然后把解压的文件grldr ,error等全都拷贝到启动盘根目录,启动时按F12选择外设启动即可。

解压GRUB4DOS后,将其中的grub.exe文件放在你的一个FAT32分区中。

修复:

1.使用DOS启动盘解压缩GRUB4DOS的目录。这样就进入了GRUB环境,可以看到一个 grub>提示符。

2.恢复GRUB引导记录。在 grub> 提示符下键入:

root (hdx,y)

kernel (hdx,y)/boot/yourkernelname ro root=/dev/hdxx

setup (hd0)

上面第一条命令是指定你的/boot分区位置,如果/boot没有单独分区,那么就是你的/分区。

第二条命令指定内核位置,具体位置根据自己的实际情况确定。

第三条命令是将GRUB引导记录写入MBR。

如果对Linux分区位置不十分清楚,可以使用Tab键补全功能来查看确定。执行完setup命令后会看到“succeed!”字样,此时重启即可。

3.如果只是想启动Linux,而不是修复GRUB,那么可以在进入DOS后键入下面命令启动你的Linux系统。

其中参数同上。

wingrub(GRUB4DOS)的安装:

在上面的网址中,有下载页面,里面说的就是wingrub;

(1)、安装:

(1)安装grub软件到机器中,点鼠标应该会吧,就直接按它默认的安装,下一步、下一步就安装好了;

(2)安装grub;

打开 wingrub程序,选择 tools菜单,然后点击 install grub ,出来一个对话框;

这里面有两个方法供我们选择;(个人建议选B)

(A) 我们直接点一下Boot From Grub Partion 就行,然后点击,右边的下接框;选择要安装在哪个分区中,然后按最下边的[install];

您可能在下拉的菜单的对话框中,看到的是 (hd0,0)或者 (hd0,1)等,那就选(hd0,0);如果您只看到(hd0,1),说明您的第一个分区是NTFS的,这也没有什么,很正常;如果您看不到什么下拉框,您就看下面的办法;

(B)您可以点 Systerm Device ,然后在右边的选择框中,选C ; 然后再点BOOT FROM BOOT.INI 就好,如果不行就换;在Title 中写入mygrub ; 然后在 Time OUT 写上 10;

A和B还是有点小小的区别,A的方法是开机就能看到所有的在menu.lst中系统;而 B,则必须按一下刚才我们所填写的mygrub ,然后才能看到在menu.lst所提到的系统;

3、配置 grub ;

一分钟都不到就OK ;只要掌握一点小小的技巧;有何难呢??

可以看得到;

(0)打开wingrub,点tools =>partioinlist (分区列表),这里能了解到机器的分区,比如我们可能看到的 FAT32的分区是 (hd0,1)等等,事实上,我们的确需要fat32分来来存放下载的Linux光盘映象;我们通过这个能知道我们把光盘ISO存放到(hdX,Y)了,也能知道(hdX,Y)所对应的Windows分区的是哪个,是C,还是D ,还是E ,明白了吧;

(1)首先我们找一个FAT 32的分区,把下载下来的ISO直接放到分区的根目录下面,不要放在任何目录中;

(2)还是在这个分区,建一个目录,比如是linux,从下来下来的第一张ISO中isolinux中抽取 vmlinuz 和 initrd.img 两个文件,放到linux目录中; 注意只放这两个文件,不要放其它的内容,如果放了其它的,可能出现安装到中途退出的情况;

注意:目录是名是小写的;在书写menu.lst 时,我们要用半角英文,标点之类的全是半角的;title root kernel initrd 全是小写的英文;切注意大小写;

(3)书写menu.lst ,怎么书写,对我来说难吗?不难!

我们打开menu.lst 后,可能里面已经有内容了,比如有个 timeout 10 ,如果没有这行可以自己写上;没有什么难的;

timeout 10 #这是开机等待进入系统的时间,是10秒

title WindowsXP # 我们的机器 中都有 windows ,这个就是用来启动windows的;总共有四行,不要弄错了,可以照抄到你的配置文件中;

root (hd0,0)

makeactive

chainloader +1

简单的 menu.lst 配置 linux 引导说明;通过menu.lst ,我们可以配置 Linux的启动和引导;不只是安装的引导,也可以引导已经安装好的Linux系统;语法结构有下的四条,举例如下:总共

有两个书写格式,任选其一;

格式一:最简单:

代码:

title redflag5

root (hd0,1)

kernel (hd0,1)/linux/vmlinuz

initrd (hd0,1)/linux/initrd.img

title 这行就是我们在开机时,所看到的菜单 ,显示的就是 redflag5 ,要加在 title 的后面,title是必须保留的,是grub的语法的标签 ,我们可以在title 后面写我们想要加的东西,这是自己可

以定义的,比如 title redflag5也是可以的;

root (hd0,1) 这行能用 以root开头,然后加一个空格,至于您把vmlinuz和initrd.img 放在哪个分区了,用打开 wingrub,点tools =>partioinlist (分区列表) 中查到

kernel 这行,以kernel 开头,然后加一个空格,主要说的是vmlinuz文件放在哪个分区,哪个目录了;除了kernel 后面有一个空格外,在这行中,其它地方没有空格;这行说的是我们用放在(hd0,1)分区下的linux目录中的kernel 来内核来启动;

initrd 这行, 和 kernel 那行类似;没有什么难的,自己的文件放在哪个分区,哪个目录了,自己最知道吧;

格式二:比较麻烦一点:理解着看吧;

代码:

title redflag5

root (hd0,1)

kernel /linux/vmlinuz ro root=/dev/hda6

initrd /linux/initrd.img

title 这行就是我们在开机时,所看到的菜单 ,显示的就是 redflag5 ,要加在 title 的后面,title是必须保留的,是grub的语法的标签 ,我们可以在title 后面写我们想要加的东西,这是自己可以定义的,比如 title fc4setup也是可以的;

root 这行,在本例中是 root (hd0,1),这行就是我们打开 wingrub,点tools =>partioinlist (分区列表) 中查到的;我们通过这个知道我们把解压出来的 vmlinuz和initrd.img 所处的分区和路径;

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}