Grub for dos 入门教程.docx
- 文档编号:10540123
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:26
- 大小:552.08KB
Grub for dos 入门教程.docx
《Grub for dos 入门教程.docx》由会员分享,可在线阅读,更多相关《Grub for dos 入门教程.docx(26页珍藏版)》请在冰豆网上搜索。
Grubfordos入门教程
Grubfordos入门教程
1入门篇
为何写此初级教程?
假如你是第一次听说grub,你可能说我不需要grub。
那么,你是否用过“一键ghost”,“超级急救盘”,或者“矮人DOS工具箱”?
如果你用过的话,那么你实际上已经在用grub了。
grub4dos相关的资料互联网上并不少,grub4dos软件包里也有说明文件,可是绝大多数资料并不适合刚接触grub的人。
初学者下载了grub4dos软件包后,面对一大堆(约40个)的文件,即使大概看了readme.txt文件后,也很可能仍然是一团雾水,不知从何处入手。
出现这种状况的一个主要原因是,此软件是作者利用业余时间开发的,开发者在有限的时间里集中精力于排除软件bug,从而无过多剩余精力撰写文档。
其实,初步使用这个软件并不难,可以说非常简单。
下面的内容参考了有关资料,并结合自己的使用经验,供初学者参考,希望能对你入门grub有所帮助。
我自身也是接触grub不久,对grub的了解还很肤浅,错误之处,在所难免,还望不吝指出。
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/
https:
//gna.org/projects/grub4dos/
(官方说明文档)
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的环境。
【图1】
此方法的优点是:
不需要修改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
通过软件包里的(可运行于DOS/Win9x)安装GRLDR引导记录到硬盘或者硬盘映像文件的主引导记录,或者安装到软盘或者软盘映像的引导扇区。
电脑启动时,通过击热键(默认为空格键,可自定义)来启动grub。
比如:
在DOS下安装GRLDR代码到主引导记录:
0x80
在DOS下安装GRLDR代码到软盘:
--floppy--chs0x00
在DOS下安装GRLDR代码到软盘映像:
--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=GRUBforDOS
setvid=
settimeout=5
bcdedit>bcdtemp.txt
typebcdtemp.txt|find"\grldr.mbr">nul&&echo.&&echoBCD启动项中已有grub4dos的项目,无需再安装。
&&pause&&gotoexit
bcdedit/export"Bcd_Backup">nul
bcdedit/create/d"%gname%"/applicationbootsector>vid.ini
for,/f,"tokens=2delims={",%%i,In(vid.ini)Do(
setvida=%%i
)
for,/f,"tokens=1delims=}",%%i,In("%vida%")Do(
setvid={%%i}
)
echo%vid%>vid.ini
bcdedit/set%vid%deviceboot>nul
bcdedit/set%vid%path\grldr.mbr>nul
bcdedit/displayorder%vid%/addlast>nul
bcdedit/timeout%timeout%>nul
ifexistgrldr.mbrcopygrldr.mbr%systemdrive%\/y&&gotoexit
echo.
echo稍后请自行把grldr.mbr拷贝到%systemdrive%\根目录
echo.
pause
:
exit
delbcdtemp.txt>nul
-------------------------------
此方法的优点是:
不需要修改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
此菜单文件的运行效果如下图。
【图2】
参考这个例子,我们就可以根据自己需要对菜单进行修改。
比如从网上下载了效率源的镜像文件,文件名为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)表示。
如我的硬盘有两个主分区,其余为逻辑分区。
用(hdx,y)的方法表示如下图:
下面是我现在使用的菜单效果图及menu.lst文件,供参考。
【图3】
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的一些最基本用法,更多的用法可在掌握基本用法的基础上,自己查阅资料了解。
2grub4dos初级教程-应用篇
2.1硬盘上应用
硬盘上应用grub,首先要进行安装,安装/启动方式主要有3中,即通过WindowsNT的启动菜单进入grub4dos;通过DOS启动grub;通过mbr启动grub。
【参看1.3如何安装grub4dos】
安装完grub后,需要准备菜单文件menu.lst。
2.1.1加载软盘镜像
对于Windows用户,用grub加载软盘镜象是最常用的功能之一。
由于windows2k/xp已脱离了dos,因此进行包括系统备份/恢复在内的一些dos下操作,成为初学者的一个难题。
以前我们可能就需要用启动光盘等才能进入dos,光盘的特性决定了很难及时方便地更新光盘上的工具。
grub的出现与应用,解决了这个难题。
我们不仅无需借助其它的介质就能进入dos环境,而且能及时更新工具。
网上下载的各种系统维护工具,很多都是img形式,无需把文件提取出来,稍微修改menu.lst就能使用,各种工具也能和谐共处,使用非常方便。
如何把下载的xxx.img加入grub启动菜单呢?
你只要把xxx.img保存到C:
\boot\grub目录下,编辑menu.lst,加入下面内容就行了。
titleBootfromFloppyimageXXX
map--mem/boot/grub/xxx.img(fd0)
map--hook
chainloader(fd0)+1
rootnoverify(fd0)
注意:
a,这几行内容不能加在最前面,因为前面是一些对全局有效的设置。
b,你需要的工具都可以这种方式加进去。
c,也许你有很多工具,都加进menu的话,显得很乱。
平时常用的可能也就一两个工具,不少只是偶尔一用。
对于这种情况,可以采取下面的方法。
即:
把常用的写入菜单,同时在菜单中写一个通用启动img文件的内容。
比如上面的:
titleBootfromFloppyimageXXX
map--mem/boot/grub/xxx.img(fd0)
map--hook
chainloader(fd0)+1
rootnoverify(fd0)
可以在启动grub进入菜单后,选择“BootfromFloppyimageXXX”后,按“e”进入编辑状态,移动方向键,修改xxx.img为需要启动的文件名,回车,按“b”启动即可。
(img文件保存在其它路径的话,则改成相应的路径。
)
2.1.2启动WinPE
有些系统维护操作在dos下操作不太方便,甚至不能进行。
WinPE的出现,给我们带来了很多方便。
下面以广受好评的“老九WinPE老毛桃修改版_1111版”为例,介绍如何用grub启动WinPE。
(ISO中已带有安装程序,我这里介绍的是在menu.lst中加入通用的winpe选项。
)
步骤:
1,下载“老九WinPE老毛桃修改版_1111版”,解压后得到BootCD.ISO。
2,用虚拟光驱或UltraISO等提取iso中的WINPE.IS_,WINNT.XPE和WXPE\SETUPLDR.BIN,把这3个文件拷贝到C:
\,并把SETUPLDR.BIN改名为ldrxpe。
需要外置程序的,还需把XPEMENU.INI和“外置程序”目录一起拷贝到任一盘符的根目录。
【图4】【图5】
3,在menu.lst中加入
titleMicroWindowsXPE(byLaoMaotao)
chainloader/ldrxpe
启动grub时选择“MicroWindowsXPE(byLaoMaotao)”就能启动WinPE了。
这样就能在windows界面下进行系统维护、安装等操作。
【图6】【图7】【图8】
2.1.3启动系统
对于单一硬盘装了多系统及多硬盘装了多系统的,用grub可以方便地对各系统进行启动管理。
比如在menu.lst中可加入下面的选项:
title启动第一硬盘第一主分区(hd0,0)上的操作系统
rootnoverify(hd0,0)
makeactive
chainloader+1
title启动第一硬盘第二主分区(hd0,1)上的操作系统
rootnoverify(hd0,1)
makeactive
chainloader+1
title启动WindowsNT/2000/XP/2003
find--set-root/ntldr
chainloader/ntldr
title启动MicrosoftW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Grub for dos 入门教程
![提示](https://static.bdocx.com/images/bang_tan.gif)