您的位置首页生活百科

GRUB4DOS是什么?怎么用?

GRUB4DOS是什么?怎么用?

grub4dos使用谨基教程 1 grub4dos初级教程-入门篇1.1 grub简介GRUB 是一个遵从Multiboot(多重启动)规范的启动管理程序。现在接触到的有3种,即GNU Grub Lagecy , GNU Grub2 和 Grub for dos(grub4dos)。GNU GRUB Lagecy其实就是原来的 GNU GRUB 0.xx ,最新版是2005年发布的GNU GRUB 0.97。 目前已停止开发,并改名为 GNU GRUB Lagecy。GNU GRUB2是第二代GRUB,它将取代原来的GNU GRUB(例如0.9x版),但目前还处于开发阶段,尚未发布正式版。GNU GRUB Lagecy和GNU GRUB2都是 GNU 组织的项目。GRUB for DOS(GRUB4DOS)是一个以 GNU GRUB 为基础的功能强大的引导器。它可以在 DOS 和 LINUX下运行,也可以通过其他引导器来运行,还可以作为MBR运行。GRUB4DOS内置了功能完善的 BIOS 级磁盘仿真。下面以比较广泛使用的GRUB4DOS为基础进行说明。GNU GRUB与GRUB4DOS的不同之处,可参看相关说明文件。 1.2 如何获得grub4dos最新版可从以下网址下载GRUB4DOS最新版及较早版本。http://download.gna.org/grub4dos/http://download.gna.org/grubutil/http://grub4dos.jot.com/WikiHomehttps://gna.org/projects/grub4dos/http://grub4dos.sourceforge.net/wiki (官方说明文档)1.3 如何安装grub4dos?下载grub4dos后,解压缩后就可以了。核心文件有下面这几个:grldr和grub.exe,及menu.lst(此为样本,需修改握耐)。如果你需要中文支持,就用chinese子目录中的文件。安装方法常见的有下面3种。1.3.1 通过Windows NT的启动菜单进入grub4dos 将grldr文件复制到c:\,去掉boot.ini的只读属性,然后修改c:\boot.ini文件,在boot.ini的最后面加一行:c:\grldr="Start GRUB4DOS"并将boot.ini中的timeout值设置为大于0的数字,如:timeout=5,然后保存boot.ini,改回只读属性。编辑boot.ini前,可在cmd下输入:attrib -s -r -h c:\boot.ini 解除boot.ini的只读属性,编辑完后输入:attrib +s +r +h c:\boot.ini 恢复boot.ini的原有属性。这样,编辑完重新启动计算机,在NT的启动菜单就会出现“Start GRUB4DOS”这一项,选择该项即可进入grub4dos的环境。 此方法的优点是:不需要修改MBR。初学者使用grub一般都需要grub菜单,把准备好的menu.lst文件放到C:\下(也可放到其它分区根目录或其它指定目录)。menu.lst的编写方法可参考readme.txt或者别人提供的menu.lst。在下面的“1.4 如何使用grub4dos”中将作简单介绍。1.3.2 通过DOS启动grub将机器通过任何可能的方式(软盘,U盘,光盘等)启动到DOS环境(最好是纯DOS环境,即不加载任何驱动程序和TSR程序的DOS环境),然后在DOS下或者AUTOEXEC.BAT中运行grub.exe,即可进入grub4dos。也可在DOS/Windows9x的CONFIG.SYS中使用下列任一方式启动grub。DEVICE=GRUB.EXEINSTALL=GRUB.EXESHELL=GRUB.EXE此方法的优点是:不需要修改MBR;可根据需要在脚本或者其它DOS程序中启动GRUB4DOS。 菜单文件menu.lst可保存在grub文件所在目录或其它指定路径。1.3.3 通过mbr启动grub通过软件包里的bootlace.com(可祥皮谨运行于DOS/Win9x)安装GRLDR引导记录到硬盘或者硬盘映像文件的主引导记录,或者安装到软盘或者软盘映像的引导扇区。电脑启动时,通过击热键(默认为空格键,可自定义)来启动grub。比如:在DOS下安装GRLDR代码到主引导记录:bootlace.com 0x80在DOS下安装GRLDR代码到软盘:bootlace.com --floppy --chs 0x00在DOS下安装GRLDR代码到软盘映像:bootlace.com --floppy --chs floppy.img我所使用的命令为:bootlace --force-backup-mbr --boot-prevmbr-first --time-out=3 --hot-key=0x3920 --mbr-disable-floppy 0x80 表示安装GRLDR代码到MBR时,备份原MBR(--force-backup-mbr),默认启动原MBR,即启动原windows xp系统(--boot-prevmbr-first),等待时间3秒(--time-out=3),热键为空格键(--hot- key=0x3920), 不搜索软盘上的GRLDR(--mbr-disable-floppy)。也就是说启动时等待3秒,3秒内不击热键的话,启动windows xp;3秒内击热键则启动grub4dos。 bootlace的其它参数及自定义热键用法可参看readme.txt文件。装入mbr后,再将grldr和menu.lst文件复制到某分区的根目录(现在支持的文件系统是FAT12,FAT16, FAT32, NTFS,EXT2 or EXT3 的分区。对于Windows用户,最好是fat分区),menu.lst也可保存到其它指定位置。此方法的优点是:不依赖于操作系统;能够自动搜索硬盘上各个分区的grldr文件。 另外,2000/xp/2003/vista环境下可用另一软件grubinst来把GRLDR引导记录安装到硬盘的MBR。grubinst具有图形界面和命令行两种工作模式供选用,并附有比较详细的使用说明,很易于使用。【参看附录 4.1 如何使用grubinst_gui】1.3.4 通过Windows NT的启动菜单进入grub4dos NEW!用批处理自动把grub4dos装入Vista启动项(非MBR)。把grub4dos装入Vista启动项,比装入MBR相对来说要安全。【对于vista系统,不能通过fdisk /mbr来恢复mbr,这样会造成vista无法启动。】关于手动把grub4dos装入Vista的启动项的方法,网上有一些介绍。比起winxp修改Boot.ini来,操作要麻烦不少。主要就是操作过程中要产生一个ID号【如:b88a2da4-0a4e-11dc-813a-00e04c75ef59】,需要手动输入3次,实在是麻烦。 下面的批处理自动完成整个装入操作。-------------------------------@echo offrem by lianjiangclsecho.echo 请以管理员身份运行。echo.pauseset gname=Grub 4 dosset vid=set timeout=5bcdedit /export "Bcd_Backup" >nulbcdedit /create /d "%gname%" /application bootsector >vid.inifor,/f,"tokens=2",%%i,In (vid.ini) Do ( set vid=%%i)del vid.ini >nulbcdedit /set %vid% device boot >nulbcdedit /set %vid% path \grldr.mbr >nulbcdedit /displayorder %vid% /addlast >nulbcdedit /timeout %timeout% >nulif exist grldr.mbr copy grldr.mbr c:\ /y && goto exitecho.echo 稍后请自行把grldr.mbr拷贝到C:\根目录echo.pause:exit-------------------------------下载批处理附件to_bcd.rar此方法的优点是:不需要修改MBR。grub菜单文件的准备同“1.3.1 通过Windows NT的启动菜单进入grub4dos”。1.4 如何使用grub4dos对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。也就是说,使用grub前,我们要准备menu.lst文件。下面是一个menu.lst的例子。(以#开始的行,表示注释,不执行)# 默认延迟时间(秒)timeout 30# 第一项为默认值default 0# 设置图形背景文件splashimage (hd0,0)/boot/grub/xp2008.gz# 设置中文支持的字体文件fontfile (hd0,0)/boot/grub/fontstitle 使用map启动本地硬盘上的瑞星杀毒软盘镜像文件map (hd0,0)/boot/grub/rav.img (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)title 使用memdisk启动本地 Win98 软盘镜像文件kernel (hd0,0)/boot/grub/memdisk.gzinitrd (hd0,0)/boot/grub/win98.imgtitle 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件root (hd0,0)kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppyinitrd /boot/rav.ziptitle 启动第一主分区(hd0,0)上的操作系统rootnoverify (hd0,0)makeactivechainloader +1title 启动第二主分区(hd0,1)上的操作系统rootnoverify (hd0,1)makeactivechainloader +1title 重启reboottitle 关机halt 参考这个例子,我们就可以根据自己需要对菜单进行修改。比如从网上下载了效率源的镜像文件,文件名为XLY.IMG。我们只需把title 使用memdisk启动本地 Win98 软盘镜像文件kernel (hd0,0)/boot/grub/memdisk.gzinitrd (hd0,0)/boot/grub/win98.img改成title 硬盘检测修复工具 效率源 (memdisk)kernel (hd0,0)/boot/grub/memdisk.gzinitrd (hd0,0)/boot/grub/xly.img或者改成title 硬盘检测修复工具 效率源 (map)map (hd0,0)/boot/grub/xly.img (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)同时把xly.img文件保存到第一主分区(一般是C:)的boot\grub目录下。当然也可以保存到其它路径。比如xly.img文件保存到C:\boot下,则menu.lst文件相应改为:map (hd0,0)/boot/xly.img (fd0)又如xly.img文件保存到D:\test下,则menu.lst文件相应改为:map (hd0,4)/test/xly.img (fd0)(参看下面的注意d) 从上面的例子可以看出,启动软盘镜象,有两种方式,即用memdisk或用map。用memdisk时,img文件可压缩;在img文件大小为非1.44MB或2.88MB标准镜像时,需要指定CHS参数。img文件的CHS参数可用winimage获得。即例子中的:title 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件root (hd0,0)kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppyinitrd /boot/rav.zip另外,菜单文件中的文件路径可用相对路径(如:/boot/rav.zip)或绝对路径(如:(hd0,0)/boot/grub/xly.img)表示。map方式对软盘映像大小没有限制,但要求必须连续存放。改进的map --mem则无此限制。比如:map --mem /boot/xxx.ima (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)注意:a, 菜单文件中所用的memdisk.gz文件,不包括在grub4dos的发行包里,需自行准备。可从gnu grub软件包或从其它基于grub的工具(如一键ghost,本人的gghost)中获得。b, 菜单中所用的其它文件如xp2008.gz(背景文件)、fonts(中文字体文件)及各种镜像文件等,均需拷贝到文件中指定路径。 fontfile命令不可单独使用,需与splashimage一起使用。c, 菜单文件中的命令全部使用小写。d, 初学者使用绝对路径时要注意GRUB对设备的命名方法。系统的第一个硬盘驱动器表示成(hd0),其上的第一个分区表示为(hd0,0),也就是说对于硬盘,采用(hdx,y)的形式来表示,x、y都是从0开始计数的,x表示硬盘号,y表示分区号。由于主分区只能有四个,所以第一硬盘的四个主分区分别用(hd0,0)~(hd0,3)来表示;逻辑分区则从(hd0,4)开始算,即第一逻辑分区用(hd0,4),第二逻辑分区用(hd0,5)来表示,依次类推。一般机子的硬盘都是一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。 光盘用(cd)表示,第一软驱用(fd0)表示。下面是我现在使用的菜单效果图及menu.lst文件,供参考。color white/green yellow/greendefault 1timeout 3#fontfile /boot/grub/fonts#splashimage /boot/grub/bg.xpm.gz#password --md5 $1$8$D0mfzTIQXv2Ma2b5bWH0b.title 0, Boot from Hard Drive (hd0,0)root (hd0,0)chainloader +1title 1, GreenGhost [Ghost v8.3/v11] (MAP-HOOK)map --mem /boot/grub/gghost.img (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)title 2, GreenGhost [Ghost v8.3/v11] (MEMDISK)kernel /boot/grub/memdisk.gz c=200 h=2 s=36 floppyinitrd /boot/grub/gghost.img title 3, GreenGhost [Ghost v8.3/v11] (MAP-HOOK) [disable a20]map --mem /boot/grub/gghost.img (fd0)map --hookchainloader --disable-a20 (fd0)+1rootnoverify (fd0)title 4, Microsoft Windows NT/2K/XPfind --set-root /ntldrchainloader /ntldrtitle 5, Microsoft Windows Vistafind --set-root /bootmgrchainloader /bootmgrtitle 6, Boot from Hard Drive (hd0,1)root (hd0,1)chainloader +1title 7, Rebootreboottitle 8, Shutdownhalt1.5 结言Grub4dos具有强大的功能,上面介绍的只是grub4dos的一些最基本用法,更多的用法可在掌握基本用法的基础上,自己查阅资料了解。