量心尺 杨叛:利用GRUB引导系统

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 12:06:02
用户名:   密码:登录注册
查看文章
利用GRUB引导系统
2010-05-25 22:37
一 引言:
grldr是grub里面的一个文件,对grub不熟悉的朋友可能不知道,但是如果你用过嬴政一键GHPST、MAXDOS、矮人DOS工具箱等等软件, 你就应该知道这个名字:这些软件无一例外都是使用grub或者grldr引导他们保存在你硬盘的软盘镜像或者系统引导文件的。没有grub和grldr (包括avldr、isomenu等等都是由grub或者grldr派生出来的,本文教你修改grldr,也是你自己派生出一个个性化硬盘引导文件的方法 和途径。),就不会由上述这些软件的存在。
二 grub、grldr使用方法简介:
其实使用起来很简单的,但是如果没有接触过的话你会没有任何头绪,就像我刚刚接触它时一样。
1、文件存放位置
把grldr及菜单配置文件menu.lst复制到系统盘任意目录(以C盘根目录为例,其它目录只需要加入路径即可。其中grldr会自动搜索菜单配置文件并加载,但是menu.lst最好存放在C盘根目录,免得到时候搜索不到不能加载引起错误)。
把需要grldr引导的文件(如DOS.IMG、GHOST83.IMG等镜像文件)保存在硬盘。
2、编辑menu.lst
盘符表示方法:
硬盘:(hd0,0)表示第一分区第一硬盘。但是第二分区确是用(hd0,4)表示,以后均在4的基础上增加数值。
(hd0,0)~(hd0,3)指的是主分区表里第1个到第4个位置的分区,而对于MS的逻辑分区而言,是从(hd0,4)开始算的,即(hd0,4)=D盘,(hd0,5)=E盘。。。。。。
软盘:(fd0)表示第一软驱
光驱用(cd)表示。
3、在编辑好menu.lst之后,只需要在boot.ini上面加入一行: CODE:
c:\grldr="显示文字"
即可,带路径的也可以是这样c:\文件夹路径名\grldr="显示文字"
以上这些是编辑menu.lst必须了解的,其实不难记的。
menu.lst说明:
以下面这个为例:
color black/cyan yellow/cyan ----- 菜单文字和背景颜色
timeout 30                          - ----等待时间
default /default                    -----默认启动项
title XXXXXXXXXXX                -----菜单标题及显示内容
一些常见菜单命令:
A、启动硬盘上的XP/2003/2000系统
title find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root /ntldr
chainloader /ntldr
savedefault --wait=2
或者直接给出路径(不给路径默认C盘根目录,find --set-root 是自动搜索并加载命令):
title find and load NTLDR of Windows NT/2K/XP
chainloader (hd0,0)/ntldr
savedefault --wait=2
B、启动硬盘上的Win9x/Me
title find and load IO.SYS of Windows 9x/Me
fallback 3
find --set-root /io.sys
chainloader /io.sys
savedefault --wait=2
C、引导IMG镜像文件
map --mem (hd0,0)/rdos.img (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
D、作为光盘引导文件时引导光盘上面的IMG文件
map --mem (cd)/rdos.img (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
命令不熟悉照搬上面的命令即可。
CODE:
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.
color black/cyan yellow/cyan
timeout 30
default /default
title find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root /ntldr
chainloader /ntldr
savedefault --wait=2
title find and load CMLDR of Windows NT/2K/XP
fallback 2
find --set-root /cmldr
chainloader /cmldr
savedefault --wait=2
title find and load IO.SYS of Windows 9x/Me
fallback 3
find --set-root /io.sys
chainloader /io.sys
savedefault --wait=2
title find and boot Mandriva with menu.lst already installed
fallback 4
find --set-root /etc/mandriva-release
savedefault --wait=2
configfile /boot/grub/menu.lst
title find and boot Linux with menu.lst already installed
fallback 5
find --set-root /sbin/init
savedefault --wait=2
configfile /boot/grub/menu.lst
title commandline
savedefault --wait=2
commandline
title floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
savedefault --wait=2
title back to dos
savedefault --wait=2
quit
title reboot
savedefault --wait=2
reboot
title halt
savedefault --wait=2
halt
title memdrive duplicated from floppy image file (hd0,0)/sbm.bin
map --mem (hd0,0)/sbm.bin (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
savedefault --wait=2
title memdrive based on win98 partition (hd0,6)
map --mem (hd0,6)+1 (hd0)
# map --mem (hd0,0)/win98.gz (hd0)
map --hook
chainloader (hd0)+1
rootnoverify (hd0)
savedefault --wait=2
map --mem (hd0,0)/rdos.img (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
三 个性化grldr之修改menu.lst名称。
给menu.lst改名,不仅是个性化的一部分,还可以避免同类软件安装过多造成menu.lst重复及冲突的一个方法。但是如果只是简单给menu.lst改一下名字,你会发现你已经陷入了困境。那么,怎么改呢?
1、运行UltraEdit-32等同类软件,选择文件-打开,打开grldr;
2、搜索-替换,勾选“查找ASCII”和“匹配大小写”,在“查找什么”栏填入“menu.lst”,“替换为”填写你需要改的名字,8位字符,比如我改成“winzheng”,点击“全部替换”;
3、改成大写字母再替换一次。
4、保存退出。
好了,现在grldr的菜单配置文件已经不是menu.lst而是winzheng了,编辑是你只需要用记事本打开编辑就行了。
四 个性化grldr之给grldr改名
这也是避免grldr重复、打造个性的一个重要方面。
1、首先给grldr重命名,比如改为:wzbbs
2、用UltraEdit-32打开wzbbs,搜索-替换,勾选“查找ASCII”和“匹配大小写”,在“查找什么”栏填入“grldr”,“替换为”填写“wzbbs”,比如我改成“winzheng”,点击“全部替换”;
3、改成大写字母再替换一次。
4、保存退出。
好,现在grldr已经变成wzbbs可以使用了,在boot.ini添加C:\WZBBS即可调用wzbbs来引导了。
五 个性化grldr之内置菜单
内置菜单的好处就是隐秘,别人很难看到你的菜单内容。
方法:
用UltraEdit-32打开grldr(wzbbs),搜索-查找,填写“title”回车,再按一下F3键,就到了如图所示的地方,grldr的内置菜单就在这里编辑了。由于这里空间有限,所以不能填写太多内容,可是如果内容不多的话,剩余部分可以用“.”来填充。
说明:
1、title后面要有一个空格。
2、菜单内容在右栏编辑。
3、根据menu.lst内容,每一行技术后,在左边栏里加入0D 0A两个16进制字符。
4、内容不能超出图示区域。
六 grldr个性化之光盘引导。
grldr不仅可以作为硬盘引导文件,还可以作为引导文件做光盘启动。
使用方法:
1、给grldr(wzbbs)改名,加上后缀“bif”,
2、UltraISO新建光盘镜像;
3、启动光盘-加载引导文件,选择wzbbs.bif,确定即可。
4、外置菜单的,将外置菜单放入ISO文件的根目录。
5、菜单编辑,注意路径,光盘根目录用“(cd)/”表示,如光盘的WINZHENG目录,就是“(cd)/WINZHENG/”
6、比如启动光盘BOOT目录下的DOS.IMG文件,命令就是:
title DOS
map --mem (cd)/BOOT/DOS.IMG (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
上面的命令记住就是了。这个命令引导的IMG速度是比较快的。
7、引导其它文件道理是一样的,记住要加入路径。
写完了,大家试一下,步骤:
1、改menu.lst和grldr名字,并拷贝到C盘根目录。
2、在C盘根目录放一个DOS的IMG镜像。
3、编辑改名后的menu.lst,命令为:
title DOS
map --mem (hd0,0)/BOOT/DOS.IMG (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
4、在boot.ini加入一句“C:\XXXXX”(XXXXX改名后grldr的名字)
5、重启系统验证一下。
七、通过GRUB引导Windows操作系统;
1、通过编辑 menu.lst 来引导Windows 系统;
如果您的Windows所处于的分区在(hd0,0),可以在menu.lst 加如下的一段就能引导起来了;
title WinXp
rootnoverify (hd0,0)
chainloader +1
如果您的机器有两块硬盘,而Windows 位于第二个硬盘的第一个分区,也就是(hd1,0)
您可以用grub的map来指令来操作把两块硬盘的序列对调,这样就不用在BIOS中设置了;在menu.lst中加如下的内容,比如下面的;
title WinXp
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd0,0)
chainloader +1
makeactive
如果Windows的分区不位于硬盘的第一个分区怎么办呢?比如在(hd0,2);
这个也好办吧,把rootnoverify 这行的(hd0,0)改为 (hd0,2)
title WinXp
rootnoverify (hd0,2)
chainloader +1
makeactive
如果Windows的在第二个硬盘的某个分区,比如说是位于(hd1,2),则要用到map指令;
title WinXp
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,2)
chainloader +1
makeactive
如果有多个Windows 系统,怎么才能引导出来呢?应该用hide 和unhide指令操作;比如我们安装了两个Windows ,一个是位于(hd0,0)的windows 98 ,另一个是安装的是位于(hd0,1)的WindowsXP;这时我们就要用到hide指令了;
title Win98
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
chainloader +1
makeactive
title WinXP
unhide (hd0,1)
hide (hd0,0)
rootnoverify (hd0,1)
chainloader +1
makeactive
2、通过GRUB指令来引导Windows ;
其实我们会写menu.lst了,在menu.lst中的除了title外,都是一条条指令;如果我们启动Windows ,只是输入指令就行了;
比如 Windows的分区在 (hd0,0),我们在开机后,按ctrl+c ,进入GRUB的命令模式;就可以用下面的
grub> rootnoverify (hd0,0)
grub> chainloader +1
grub> boot
其它同理... ...
八、GRUB丢失或损坏的应对策略;
如果GRUB是Linux版本才出会这样的问题;WINGRUB可以不写在MBR上;所以不会出现这样的问题。WINGRUB用起来比较简单。menu.lst 和命令行的用法和Linux版本的GRUB是一样的;
1、由于重新安装Windows或其它未知原因而导致GRUB的丢失;
您可以通过系统安装盘、livecd进入修复模式;
请参考:《Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用》
首先:您根据前面所说grub-install来安装GRUB到/boot所在的分区;要仔细看文档,/boot是不是处于一个独立的分区是重要的,执行的命令也不同;
其次:要执行grub ,然后通过 root (hd[0-n],y)来指定/boot所位于的分区,然后接着执行 setup (hd0),这样就写入MBR了,比如下面的例子;
grub>root (hd0,6)
grub>setup (hd0)
grub>quit
重新引导就会再次出现MBR的菜单了或命令行的提示符了;
2、如果出现GRUB提示符,而不出现GRUB的菜单,如何引导系统;
存在的问题可能是/boot/grub/menu.lst丢失,要自己写一个才行;您可以用命令行来启动系统,进入系统后写一写menu.lst就OK了。前面已经谈过了;
写好后还要建一个grub.conf的链接,如下:
[root@localhost ~]# cd /boot/grub
[root@localhost grub]# ln -s menu.lst grub.conf
类别:电脑技巧集锦 | |添加到搜藏 |分享到i贴吧 | 浏览(38) |评论 (0)
上一篇:百度有啊正招人扩张 平台和产品...    下一篇:WINPE中 OP.WIM的修改方法
最近读者:
网友评论:
     发表评论:

©2011 Baidu