grub4dos新手指南-1

对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。也就是说,使用grub前,我们要准备menu.lst文件。
先讲一些最为常用的命令
help
用来显示其它命令的用法,例子:
help root
default
指定缺省的菜单项,由0开始算起,例子: default 0 该命令必须在第一个title之前指定
timeout
缺省的等待时间,如果在指定的时间(以秒为单位)不按任何键,则会启动缺省的菜单项,例子: timeout 10该命令必须在第一个title之前指定
root
用来指定根设备,例子: root (hd0,0)
rootnoverify
该命令也可以用来指定根设备。root在设置根设备前,先测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试。rootnoverify (hd0,0)
chainloader
把启动扇区的内容装入内存,参数+1指的是把分区的第一个扇区,例子: chainloader +1
boot
启动操作系统。在使用该命令前,必须用kernel或者chainloader把系统内核或者启动扇区/启动文件装入内存。例子: boot
在配置文件中不需要使用这个命令。这是因为GRUB在执行了菜单项的所有命令后,会自动加上boot。该命令一般在命令行界面里使用。

Grub4dos高级功能
虚拟磁盘
GRUB4DOS中的虚拟磁盘是由map命令实现的。map命令的功能介绍如下:
磁盘交换
map命令在GRUB Legacy中也存在,用作磁盘交换。
比如说,你有两只硬盘,但两只硬盘上均有可启动的系统。在第一只硬盘上启动时,不需要特殊的处理,直接用chainloader装载启动扇区就可以了。不过,如果要从第二只硬盘上启动,那么单单用chainloader是不够的,这是因为很多操作系统都缺省地从第一只硬盘上装载启动所需的文件,如果文件不在其上,系统便不能顺利地读取,从而导致启动失败。
一个原始的解决方法是在BIOS中修改启动顺序,把需要启动的硬盘放到最前面。那么,重启计算机后该硬盘便会成为第一只硬盘,从而可以正常启动,但这种方法明显很麻烦。
GRUB中的map命令可以在运行时交换磁盘,而无需修改BIOS。例如:

title Boot First Partition on Second Disk

map (hd0) (hd1)

map (hd1) (hd0)

chainloader (hd1,0)+1

boot

在该例子中,使用了map命令交换了(hd0)和(hd1)。要注意,交换是在命令boot后才生效的。因此在chainloader命令中,读取的仍然是第二只硬盘。

建立虚拟磁盘
在GRUB4DOS中,大大地扩展了map命令的用法。利用该命令可以建立虚拟磁盘,例子:
把(hd0,0)根目录下的aa.dsk文件映射为第二只硬盘,并且使用原来硬盘上的系统启动:

title Create Virtual Disk

map (hd0,0)/aa.dsk (hd1)

root (hd0,0)

chainloader +1

boot

(在该例子中,把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘。)

从aa.dsk里虚拟出来的磁盘中启动:

title Boot From Virtual Disk

map (hd0,0)/aa.dsk (hd0)

map (hd0) (hd1)

map --hook

root (hd0,0)

chainloader +1

boot

上面提到,map命令的映射不是马上起作用的。但是要从虚拟磁盘中启动,就必须从中读取数据,因此需要使映射提前起效。map --hook的作用便是使前面map命令指定的映射立刻生效。

把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动:

title Boot From Virtual Floppy

map (hd0,0)/aa.img (fd0)

map --hook

root (fd0)

chainloader +1

boot
使用这种方式进行映射后,虚拟磁盘的内容和影像文件的内容是同步的,也就是说,如果你修改了虚拟磁盘的内容,影像文件也同样被更新。如果你重启了机器,该修改的效果仍然存在。
在使用这种方式进行映射时,影像文件在磁盘上的存放必须是连续的。

GRUB4DOS中建立的虚拟磁盘,包括以下所说的内存盘,都是通过截取INT 13来实现的。因此在启动了操作系统后,如果该系统是通过INT 13来访问磁盘的,例如各类的DOS,那么在进入系统后仍然可以访问虚拟盘。如果系统是采用其它方式来访问磁盘,例如Linux、Unix和WinNT系列的操作系统,那么在进入系统后便不能访问虚拟盘。但古典系统Win9X系列比较特殊,正常情况下它使用保护模式的驱动来访问磁盘,但如果找不到合适的驱动时,win9x会使用INT 13来访问磁盘,因此,在Win9X下也可以访问虚拟磁盘。

建立虚拟内存盘
用map也可以建立虚拟内存盘,其用法和以上的很相似,你只需要在map建立虚拟盘的命令中加上--mem参数就行了。使用了该映射方式,影像文件的内容是装载到内存后才进行映射。所以你必须有足够的内存来存放影像和启动系统。而且,虚拟磁盘和影像文件是分离的,对虚拟磁盘所作的修改不会被更新到影像文件中。
在这种映射方式中,映像文件在磁盘上的存放不需要是连续的。

例子:把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘,并且从aa.dsk里虚拟出来的磁盘中启动:

title Boot From Virtual Disk

map --mem (hd0,0)/aa.dsk (hd0)

map (hd0) (hd1)

map --hook

root (hd0,0)

chainloader +1

boot

把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动:

title Boot From Virtual Floppy

map --mem (hd0,0)/aa.img (fd0)

map --hook

root (fd0)

chainloader +1

boot

自动生成MBR
映像文件有两种类型。一种是文件系统映像,它里面只包含某一个文件系统的数据。另一种是磁盘映像,它里面包含了类似于物理硬盘的结构,也就是,映像以MBR开始,然后才是文件系统的数据。对于虚拟内存盘,其结构是类似于真实硬盘的,因此在使用map命令进行映射时,应该使用磁盘影像。
GRUB4DOS考虑到了这个问题。为了让用户使用更加方便,GRUB4DOS作了如下的改进:当把磁盘影像读入内存时,程序会检测其结构,如果发现是文件系统影像,那么在它前面自动生成MBR,把它变为磁盘影像。因此,无论用户选择使用文件系统影像还是磁盘影像,装载到内存后都会变成正确的格式。
自动生成MBR。

还有一个应用,就是直接从硬盘上的装载分区,从而生成虚拟磁盘。例如:
title Load Partition From Disk

map --mem (hd0,0)+1 (hd0)

(注意:在map命令中,(hd0,0)+1是指整个(hd0,0)分区,而不是(hd0,0)的第一个扇区。这种表示只是在map命令中适用,在其它的地方,(hd0,0)+1 还是原来的意义。)

map (hd0) (hd1)

map --hook

root (hd0,0)

chainloader +1

boot   
该菜单的功能是把硬盘上第一个分区装载到内存,并自动在其前面加上MBR生成虚拟磁盘。然后把该虚拟磁盘映射为第一只硬盘,原来的硬盘映射为第二只硬盘。最后,从虚拟磁盘中启动。

在使用该菜单启动后,系统分区的内容和好像和原来一样,但这时实际是使用在内存里的虚拟磁盘。对分区的修改会在重启机器后消失。

该菜单是把整个分区的内容装载到内存,要确定内存足够大,否则命令不会成功。

虚拟设备(md)
在GRUB4DOS中,你可以用设备(md)来访问整个内存,就和用(nd)访问网络设备,用(cd)来访问光盘类似。
GRUB4DOS也扩展了cat命令,它可以用--hex来以十六进制输出,也可以用--locate=STRING来在文件中搜索字符串。
例子:
cat --hex (hd0)+1    以十六进制形式显示第一只硬盘的MBR。
cat --hex (hd0,0)+1    以十六进制形式显示第一只硬盘第一个分区的启动扇区
cat --hex (md)+2    以十六进制形式显示内存开始1K的内容,这里其实是中断向量表。
cat --hex (md)0x800+1    以十六进制形式显示内存从0x800 * 512 = 1M 开始512字节的内容,也就是从扩展内存开始的512字节。
虚拟设备(rd)
用虚拟设备(md)可以访问从地址0开始的物理内存,而使用(rd)则可以访问从某一地址开始的内存。
map --rd-base=ADDR    用来设置(rd)内存设备的开始地址(以字节为单位)。
map --rd-size=SIZE    用来设置(rd)内存设备的长度(以字节为单位)。
当把grub.exe作为linux内核启动时,可以用指定初始盘。进入grub后,(rd)设备的开始地址和长度自动设置为初始盘的地址和长度。因此,可以在grub中用(rd)设备来访问初始盘。
map --ram-drive=RD   
用来设定访问(rd)内存设备的BIOS设备名。缺省值是0x7F,表示(rd)对应的虚拟盘是软盘设备。如果(rd)对应的虚拟盘是硬盘设备,那么需要设置RD, 使得 0x80< RD < 0xFF。
map的其他参数
* --status
用于显示当前的磁盘映射。    map --status   
* --floppies=M, --harddrives=N
指定软盘/硬盘的数目。    map --harddrvies=2    使用该命令后,本地硬盘的数目设为2。
* --memdisk-raw=RAW
RAW取值0或1(缺省是1)。RAW=0时,使用int15/ah=87h读扩展内存。RAW=1时,使用内部的函数来读扩展内存。    map --memdisk-raw=0   
* --safe-mbr-hook=SMH ,--int13-scheme=SCH
这两个参数是为了在Windows 9X下能正常使用虚拟盘而设的。
SMH取值0或1(缺省是1),当你在Windows 9X下使用虚拟盘时出现问题时,可以试试使用以下的命令:    map --safe-mbr-hook=0   
SCH取值也是0或1(缺省是1),当你在Windows 9X下使用虚拟盘时出现问题时,也可以试试使用以下的命令:   map --int13-scheme=0   
* --read-only
使用了该参数后,当前进行映射的磁盘被设为只读模式。    map --mem --read-only (hd0,0)/aa.dsk (hd1)   
* --fake-write
使用了该参数后,当前进行映射的磁盘看似可写,但写入的内容均被丢弃。    map --mem --fake-write (hd0,0)/aa.dsk (hd1) 

时间: 2024-10-02 21:31:46

grub4dos新手指南-1的相关文章

grub4dos新手指南-2

Grub4dos 新手指南 一.GRUB4DOS的配置文件Grub4dos 有三个文件,grldr.grldr.mbr和menu.lst,配置文件是menu.lst,和GRUB一样.该文件一般放在和启动文件GRLDR同样的目录里.其结构举个简单栗子: default 0title Boot First Partitionroot (hd0,0)chainloader +1 title Boot Second Partitionroot (hd0,1)chainloader +1 title来指定

MVC新手指南

MVC新手指南 2010-04-06 09:54:23 18839 次阅读 0 条评论 本文感谢东西提供 模型-视图-控制器(MVC)可能是近年来网络编程圈子里最常被提及的模式之一.目前与网络应用开发沾边的人听到和看到这个字母缩写的次数肯定不下百次. 今天,我们将详细阐述一下MVC的含义,以及它变的如此流行的原因. 古老的历史…MVC不是一种设计模式(design pattern),它是一种架构模式(Architectural pattern),用以描述应用程序的结构以及结构中各部分的职责和交互

Markdown 新手指南

Markdown 新手指南 「简书」作为一款「写作软件」在诞生之初就支持了 Markdown,Markdown 是一种「电子邮件」风格的「标记语言」,我们强烈推荐所有写作者学习和掌握该语言.为什么?可以参考: 『为什么作家应该用 Markdown 保存自己的文稿』. 『Markdown写作浅谈』 在此,我们总结 Markdown 的优点如下: 纯文本,所以兼容性极强,可以用所有文本编辑器打开. 让你专注于文字而不是排版. 格式转换方便,Markdown 的文本你可以轻松转换为 html.电子书等

不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)因为vboot菜单不好弄,兼容性不太好,破解版有些只能识别500M内存,所以不想用vboot.想在不格式化原有系统盘的情况下,用grub4dos+firadisk安装Ghost版XP到VHD,目前已成功,步骤如下:1.工具:grub4dos,firadisk驱动包,bootice,深度G

新手指南:DVWA-1.9全级别教程之SQL Injection

*本文原创作者:lonehand,转载须注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版本,且没有针对DVWA high级别的教程,因此萌发了一个撰写新手教程的想法,错误的地方还请大家指正. DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,

Toxy新手指南 - 乔疯子 - 博客园

Toxy新手指南 - 乔疯子 - 博客园 Toxy新手指南

抛弃优启Grub4dos和PE大多数时间可以这样用

在能够进入Windows的情况下,Grub4dos和PE大多数时间可以这样用 http://yunpan.cn/cyuuUtUQMfmGN 提取码 c2ac Grub4dos的出现颠覆了传统的EZBOOT光盘启动模式,很多人用grub4dos来实现优盘启动,同时grub4dos能够安装到本地硬盘上,启动WINPE.看到电脑城维修员经常用USB启动电脑,ghost安装系统,优盘换来换去,时常感到很纳闷,电脑本来能够进入Windows,为什么不直接从硬盘启动PE,而一定要格式化之后从优盘启动PE?

grub4dos通用菜单及相关工具包

grub4dos通用菜单及相关工具包 一直以来,大家都是利用WINPE来维护.安装系统,而WINPE多用grub4dos来引导,从引导介质来讲,主要有本地硬盘hd.优盘ud.光盘cd.PXE网络pd,启动PE的方式有解开启动和整体启动.而怎样快速简单地安装PE到不同介质,手头一直没有合适的工具包,为了方便,我用写了几个批处理文件,快速地安装PE到不同介质,主要实现以下目的:1.grub4dos的菜单文件menu.lst只有一个,适用于hd/ud/cd/ud等不同启动方式,具有通用性,“Write

grub4dos和winsetupfromusb1.4

其实grub4dos也是一个多系统启动盘制作软件,GRUB4DOS 最大的成功之处就是既学习了windows的方便易用,又引入linux的强大功能.http://baike.baidu.com/link?url=vFkYDEOTmdnw0dLueYeNz0V48egdnjpHczS3YwWiSsXtM7krYaE6KiDohCT4hlo5-LihtQU7fYhXuURazx_OKK 他结合一些其他的软件一起用,比如软碟通,但是他的操作复杂,而且也没有winsetupfromusb1.4的功能多,