1. 首页>动态要闻 > 信息

GRUB4DOS是什么?怎么用?

作者:张同华
2019-10-05
信息

grub4dos使用教程1grub4dos初级教程-入门篇

1.1grub简介

GRUB是一个遵从Multiboot(多重启动)规范的启动管理程序。

现在接触到的有3种,即GNUGrubLagecy,GNUGrub2和Grubfordos(grub4dos)。

GNUGRUBLagecy其实就是原来的GNUGRUB0.xx,最新版是2005年发布的GNUGRUB0.97。

目前已停止开发,并改名为GNUGRUBLagecy。

GNUGRUB2是第二代GRUB,它将取代原来的GNUGRUB(例如0.9x版),但目前还处于开发阶段,尚未发布正式版。

GNUGRUBLagecy和GNUGRUB2都是GNU组织的项目。

GRUBforDOS(GRUB4DOS)是一个以GNUGRUB为基础的功能强大的引导器。

它可以在DOS和LINUX下运行,也可以通过其他引导器来运行,还可以作为MBR运行。

GRUB4DOS内置了功能完善的BIOS级磁盘仿真。

下面以比较广泛使用的GRUB4DOS为基础进行说明。

GNUGRUB与GRUB4DOS的不同之处,可参看相关说明文件。

1.2如何获得grub4dos最新版

可从以下网址下载GRUB4DOS最新版及较早版本。

http://download.gna.org/grub4dos/

http://download.gna.org/grubutil/

http://grub4dos.jot.com/WikiHome

https://gna.org/projects/grub4dos/

http://grub4dos.sourceforge.net/wiki(官方说明文档)

1.3如何安装grub4dos?

下载grub4dos后,解压缩后就可以了。

核心文件有下面这几个:grldr和grub.exe,及menu.lst(此为样本,需修改)。

如果你需要中文支持,就用chinese子目录中的文件。

安装方法常见的有下面3种。

1.3.1通过WindowsNT的启动菜单进入grub4dos

将grldr文件复制到c:\,去掉boot.ini的只读属性,然后修改c:\boot.ini文件,在boot.ini的最后面加一行:

c:\grldr="StartGRUB4DOS"

并将boot.ini中的timeout值设置为大于0的数字,如:timeout=5,然后保存boot.ini,改回只读属性。

编辑boot.ini前,可在cmd下输入:

attrib-s-r-hc:\boot.ini

解除boot.ini的只读属性,编辑完后输入:

attrib+s+r+hc:\boot.ini

恢复boot.ini的原有属性。

这样,编辑完重新启动计算机,在NT的启动菜单就会出现“StartGRUB4DOS”这一项,选择该项即可进入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.EXE

INSTALL=GRUB.EXE

SHELL=GRUB.EXE

此方法的优点是:不需要修改MBR;可根据需要在脚本或者其它DOS程序中启动GRUB4DOS。

菜单文件menu.lst可保存在grub文件所在目录或其它指定路径。

1.3.3通过mbr启动grub

通过软件包里的bootlace.com(可运行于DOS/Win9x)安装GRLDR引导记录到硬盘或者硬盘映像文件的主引导记录,或者安装到软盘或者软盘映像的引导扇区。

电脑启动时,通过击热键(默认为空格键,可自定义)来启动grub。

比如:

在DOS下安装GRLDR代码到主引导记录:

bootlace.com0x80

在DOS下安装GRLDR代码到软盘:

bootlace.com--floppy--chs0x00

在DOS下安装GRLDR代码到软盘映像:

bootlace.com--floppy--chsfloppy.img

我所使用的命令为:

bootlace--force-backup-mbr--boot-prevmbr-first--time-out=3--hot-key=0x3920--mbr-disable-floppy0x80

表示安装GRLDR代码到MBR时,备份原MBR(--force-backup-mbr),默认启动原MBR,即启动原windowsxp系统(--boot-prevmbr-first),等待时间3秒(--time-out=3),热键为空格键(--hot-key=0x3920),不搜索软盘上的GRLDR(--mbr-disable-floppy)。

也就是说启动时等待3秒,3秒内不击热键的话,启动windowsxp;3秒内击热键则启动grub4dos。

bootlace的其它参数及自定义热键用法可参看readme.txt文件。

装入mbr后,再将grldr和menu.lst文件复制到某分区的根目录(现在支持的文件系统是FAT12,FAT16,FAT32,NTFS,EXT2orEXT3的分区。

对于Windows用户,最好是fat分区),menu.lst也可保存到其它指定位置。

此方法的优点是:不依赖于操作系统;能够自动搜索硬盘上各个分区的grldr文件。

另外,2000/xp/2003/vista环境下可用另一软件grubinst来把GRLDR引导记录安装到硬盘的MBR。

grubinst具有图形界面和命令行两种工作模式供选用,并附有比较详细的使用说明,很易于使用。

【参看附录4.1如何使用grubinst_gui】

1.3.4通过WindowsNT的启动菜单进入grub4dosNEW!

用批处理自动把grub4dos装入Vista启动项(非MBR)。

把grub4dos装入Vista启动项,比装入MBR相对来说要安全。

【对于vista系统,不能通过fdisk/mbr来恢复mbr,这样会造成vista无法启动。

关于手动把grub4dos装入Vista的启动项的方法,网上有一些介绍。

比起winxp修改Boot.ini来,操作要麻烦不少。

主要就是操作过程中要产生一个ID号【如:b88a2da4-0a4e-11dc-813a-00e04c75ef59】,需要手动输入3次,实在是麻烦。

下面的批处理自动完成整个装入操作。

-------------------------------

@echooff

rembylianjiang

cls

echo.

echo请以管理员身份运行。

echo.

pause

setgname=Grub4dos

setvid=

settimeout=5

bcdedit/export"Bcd_Backup">nul

bcdedit/create/d"%gname%"/applicationbootsector>vid.ini

for,/f,"tokens=2",%%i,In(vid.ini)Do(

setvid=%%i

)

delvid.ini>nul

bcdedit/set%vid%deviceboot>nul

bcdedit/set%vid%path\grldr.mbr>nul

bcdedit/displayorder%vid%/addlast>nul

bcdedit/timeout%timeout%>nul

ifexistgrldr.mbrcopygrldr.mbrc:\/y&&gotoexit

echo.

echo稍后请自行把grldr.mbr拷贝到C:\根目录

echo.

pause

:exit

-------------------------------

下载批处理附件to_bcd.rar

此方法的优点是:不需要修改MBR。

grub菜单文件的准备同“1.3.1通过WindowsNT的启动菜单进入grub4dos”。

1.4如何使用grub4dos

对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。

也就是说,使用grub前,我们要准备menu.lst文件。

下面是一个menu.lst的例子。

(以#开始的行,表示注释,不执行)

#默认延迟时间(秒)

timeout30

#第一项为默认值

default0

#设置图形背景文件

splashimage(hd0,0)/boot/grub/xp2008.gz

#设置中文支持的字体文件

fontfile(hd0,0)/boot/grub/fonts

title使用map启动本地硬盘上的瑞星杀毒软盘镜像文件

map(hd0,0)/boot/grub/rav.img(fd0)

map--hook

chainloader(fd0)+1

rootnoverify(fd0)

title使用memdisk启动本地Win98软盘镜像文件

kernel(hd0,0)/boot/grub/memdisk.gz

initrd(hd0,0)/boot/grub/win98.img

title使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件

root(hd0,0)

kernel/boot/grub/memdisk.gzc=80h=12s=36floppy

initrd/boot/rav.zip

title启动第一主分区(hd0,0)上的操作系统

rootnoverify(hd0,0)

makeactive

chainloader+1

title启动第二主分区(hd0,1)上的操作系统

rootnoverify(hd0,1)

makeactive

chainloader+1

title重启

reboot

title关机

halt

参考这个例子,我们就可以根据自己需要对菜单进行修改。

比如从网上下载了效率源的镜像文件,文件名为XLY.IMG。

我们只需把

title使用memdisk启动本地Win98软盘镜像文件

kernel(hd0,0)/boot/grub/memdisk.gz

initrd(hd0,0)/boot/grub/win98.img

改成

title硬盘检测修复工具效率源(memdisk)

kernel(hd0,0)/boot/grub/memdisk.gz

initrd(hd0,0)/boot/grub/xly.img

或者改成

title硬盘检测修复工具效率源(map)

map(hd0,0)/boot/grub/xly.img(fd0)

map--hook

chainloader(fd0)+1

rootnoverify(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.gzc=80h=12s=36floppy

initrd/boot/rav.zip

另外,菜单文件中的文件路径可用相对路径(如:/boot/rav.zip)或绝对路径(如:(hd0,0)/boot/grub/xly.img)表示。

map方式对软盘映像大小没有限制,但要求必须连续存放。

改进的map--mem则无此限制。

比如:

map--mem/boot/xxx.ima(fd0)

map--hook

chainloader(fd0)+1

rootnoverify(fd0)

注意:

a,菜单文件中所用的memdisk.gz文件,不包括在grub4dos的发行包里,需自行准备。

可从gnugrub软件包或从其它基于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文件,供参考。

colorwhite/greenyellow/green

default1

timeout3

#fontfile/boot/grub/fonts

#splashimage/boot/grub/bg.xpm.gz

#password--md5$1$8$D0mfzTIQXv2Ma2b5bWH0b.

title0,BootfromHardDrive(hd0,0)

root(hd0,0)

chainloader+1

title1,GreenGhost[Ghostv8.3/v11](MAP-HOOK)

map--mem/boot/grub/gghost.img(fd0)

map--hook

chainloader(fd0)+1

rootnoverify(fd0)

title2,GreenGhost[Ghostv8.3/v11](MEMDISK)

kernel/boot/grub/memdisk.gzc=200h=2s=36floppy

initrd/boot/grub/gghost.img

title3,GreenGhost[Ghostv8.3/v11](MAP-HOOK)[disablea20]

map--mem/boot/grub/gghost.img(fd0)

map--hook

chainloader--disable-a20(fd0)+1

rootnoverify(fd0)

title4,MicrosoftWindowsNT/2K/XP

find--set-root/ntldr

chainloader/ntldr

title5,MicrosoftWindowsVista

find--set-root/bootmgr

chainloader/bootmgr

title6,BootfromHardDrive(hd0,1)

root(hd0,1)

chainloader+1

title7,Reboot

reboot

title8,Shutdown

halt

1.5结言

Grub4dos具有强大的功能,上面介绍的只是grub4dos的一些最基本用法,更多的用法可在掌握基本用法的基础上,自己查阅资料了解。

GRUB4DOS是什么?怎么用?

推荐阅读
  • 日照好玩的地方和吃海鲜应该去哪听说日

    日照好玩的地方:万平口:"旅游来日照,必到万平口",已成为各地游客的共识。刘家湾赶海园:以赶海系列活动为主,集旅游、休闲、度假、民俗、健身于一体的综合旅游园。竹洞天:位于山东省日照市城区西端的将帅沟毛竹…

    信息 2024-09-20
  • 什么是铸造

    铸造是指将室温中为液态,但不久后将要固态化的物质倒入特定形状的铸模待其凝固成形的加工方式。 被铸物质多半原为固态但加热至液态的金属(例:铜、铁、铝、锡、铅等),而铸模的材料可以是沙、金属甚至陶瓷。 因应…

    信息 2024-09-20
  • 变形金刚中博派和狂派各有哪些人物

    博派:擎天柱,铁皮,大黄蜂,爵士,棘齿。狂派:威震天,红蜘蛛,眩晕,吵闹,萨克,碎骨魔,路障,迷乱。…

    信息 2024-09-20
  • 一平方毫米的铜线能过多少安的电流

    1平方毫米的铜线在不同电流下通过的安培数不同。最大是18A:(1)60A以下,选1平方毫米的铜线安全载流量是6A;(2)60~100A,选1平方毫米的铜线,安全载流量是5A;(3)100A以上,选1平方毫米的铜线,安全载流量是2.5A 。…

    信息 2024-09-20
  • 中华人民共和国城乡规划法第四十条有规

    自2008年1月1日起施行的《中华人民共和国城乡规划法》第四十条:在城市、镇规划区内进行建筑物、构筑物、道路、管线和其他工程建设的,建设单位或者个人应当向城市、县人民政府城乡规划主管部门或者省、自治区、直辖…

    信息 2024-09-20