第1章 GRUB4DOS入门    1

1.1 用途    1

1.2 安装    1

1.2.1 修改MBR    1

1.2.2 修改PBR    3

1.2.3 DOS    4

1.2.4 boot.ini    4

1.2.5 bootmgr    5

1.3 启动菜单    6

1.3.1 内置菜单    6

1.3.2 外置菜单    7

1.4 美化启动界面    8

1.4.1 gfxmenu    8

1.4.2 graphicsmode    9

1.5 后记    10

第1章 GRUB4DOS入门

1.1 用途

GRUB4DOS能做什么?

1、如果您的PC上安装有多个操作系统,可使用GRUB4DOS引导它们;

2、即使您的PC上只有一个操作系统,可以通过GRUB4DOS引导Windows PE系统,方便系统的维护工作。如:在Windows PE里对硬盘进行分区;在Windows PE里进行Ghost……

1.2 安装

GRUB4DOS的下载网址为:http://download.gna.org/grub4dos/

安装GRUB4DOS的方法有很多,下面介绍常用的几个方法。

1.2.1 修改MBR

运行BOOTICE v1.3.2,选择磁盘(要求是MBR分区格式),然后单击"主引导记录"按钮。

图1.1

程序显示如下。请选中"GRUB4DOS 0.4.5c/0.4.6a(grldr.mbr)",然后单击"安装/配置"按钮。

图1.2

程序显示如下界面,直接单击"写入磁盘"按钮即可修改磁盘的MBR。

图1.3

说明:

、修改MBR是一件有风险的事情。操作不当将导致您的PC无法正常启动,操作时务必小心仔细;

2、上述操作的实质是把grldr.mbr文件内容写入磁盘的MBR。并不是全部写入,而是写入前8192字节(即16扇区,每扇区512个字节);

3、修改MBR后,启动电脑后MBR会首先查找活动主分区根目录下是否有grldr文件,然后依次查找其它各个分区根目录。找到grldr文件后,将控制权移交给grldr文件。

1.2.2 修改PBR

修改过程如下图所示。操作步骤为:

1、保证MBR为"Windows NT 6.x MBR"。现在的主流操作系统是Windows 7/Windows 8,一般不用修改MBR;

2、修改活动主分区的PBR为BOOTMGR;

3、修改活动主分区的PBR为GRUB4DOS。

启动过程:MBR(Windows NT 6.x MBR)会载入活动主分区前12扇区的引导程序(所以第2步必不可少)。引导程序的前4个扇区被改写为GRUB4DOS引导程序,它会加载本分区内根目录下的grldr文件,继续完成系统的启动工作。

图1.4

修改MBR或PBR是一件有风险的事情。操作不当将导致您的PC无法正常启动,操作时务必小心仔细。

1.2.3 DOS

启动电脑进入DOS或Windows 98系统。然后在DOS下运行grub.exe,它会载入grldr文件,显示GRUB4DOS的启动界面。

也可在启动DOS或Windows 98时自动运行grub.exe,其方法有两个:

1、编辑AUTOEXEC.BAT,使其运行grub.exe;

2、编辑CONFIG.SYS文件,如下所示:

DEVICE=GRUB.EXE

INSTALL=GRUB.EXE

SHELL=GRUB.EXE

1.2.4 boot.ini

假定操作系统为Windows2000/XP/2003,那么系统启动时会根据boot.ini显示启动菜单。编辑boot.ini即可实现GRUB4DOS的运行。

具体操作为:将grldr、grldr.mbr、menu.lst复制到Windows2000/XP/2003的系统盘根目录下。修改系统盘根目录下的boot.ini文件:

图1.5

编辑完后保存,然后重启电脑。在启动菜单就会出现"GRUB4DOS"这一项,选择该项即可进入grub4dos的环境。如下图所示:

图1.6

启动过程:MBR==>激活的主分区(即Windows系统盘)PBR==>ntldr==>boot.ini==>grldr.mbr==>grldr

1.2.5 bootmgr

假定操作系统为Vista/Windows 7/Windows 8/Windows 10,那么系统启动的过程有所变化:MBR==>激活的主分区(即Windows系统盘)PBR==>bootmgr

bootmgr显示的启动菜单保存在系统盘根目录的boot\BCD文件里。此文件不再是文本格式,可使用bcdedit.exe对BCD文件进行编辑。命令如下(请以管理员身份运行)

bcdedit /create /d "GRUB4DOS" /application bootsector

bcdedit /set {id} device partition=C:

bcdedit /set {id} path gdldr.mbr

bcdedit /displayorder {id} /addlast

bcdedit /default {id}

上面的{id}是由第一条命令产生的。

bcdedit.exe是一个命令行程序,操作起来还要记录{id},非常不方便。可使用BOOTICE来编辑BCD文件,如下图所示:

图1.7

1.3 启动菜单

GRUB4DOS的启动菜单,由grldr文件负责配置。这里,启动菜单分为内置和外置两种。

1.3.1 内置菜单

内置启动菜单在grldr文件内部,可使用BOOTICE软件打开grldr文件进行编辑。具体的操作步骤如下。

运行BOOTICE软件,单击下图的"启动编辑器"按钮

图1.8

显示界面如下图所示

图1.9

上图单击"打开文件"按钮,载入GRLDR文件。即可对其进行编辑。注意:如果含有汉字,请务必保存为UTF-8格式。

1.3.2 外置菜单

GRLDR文件的内容缺省如下所示:

pxe detect

configfile

default 0

timeout 1

title find /menu.lst, /boot/grub/menu.lst, /grub/menu.lst

errorcheck off

configfile /menu.lst

configfile /boot/grub/menu.lst

configfile /grub/menu.lst

find --set-root --ignore-floppies --ignore-cd /menu.lst && configfile /menu.lst

find --set-root --ignore-floppies --ignore-cd /boot/grub/menu.lst && configfile /boot/grub/menu.lst

find --set-root --ignore-floppies --ignore-cd /grub/menu.lst && configfile /grub/menu.lst

errorcheck on

commandline

title commandline

commandline

title reboot

reboot

title halt

halt

它的含义是:查找文件menu.lst,并根据该文件内容显示启动菜单。所以,不用修改GRLDR。直接修改文件menu.lst,也可以达到编辑启动菜单的目的。

注意:如果含有汉字,请务必保存menu.lst为UTF-8格式。

1.4 美化启动界面

GRUB4DOS的启动界面在默认情况下不能显示汉字,不能显示底图。为此,需要美化启动界面。这里介绍两种方法。

1.4.1 gfxmenu

下面,最关键的语句就是gfxmenu /MESSAGE,它将根据文件MESSAGE显示图形界面。

color white/black black/white white/black white/black

timeout 3

default 0

gfxmenu /MESSAGE

title DOS

map --mem /HJMac/MaxDOS93.ima (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

可使用软件MsgDiyer 2.0.3来编辑MESSAGE文件,如下图所示

图1.10

单击上图中的"虚拟机中预览"或"模拟预览"按钮,可以不用重启电脑即可查看启动界面。

1.4.2 graphicsmode

下面,最关键的语句就是graphicsmode、splashimage、font。

debug off

calc 29<<2+*0x8304 > nul

calc *%@retval%+8 > nul

calc *%@retval%=*%@retval%&0xffffff > nul

call Fn.0 0x40000 "!BAT\necho -P:0000 $[0000]\t\t\t\t\t\t\t\t\t\0" && initscript (md)0x200+1

color=0xFFFFFF

color border=0xFFFFFF

write 0x8274 0x2001

graphicsmode -1 1024 768

splashimage /back.bmp

font /微软雅黑.hex

default 11

timeout 120

graphicsmode语句中的-1表示将显示模式切换为VBE模式;1024和768表示屏幕分辨率。

splashimage /back.bmp 表示底图为back.bmp(1024x768,24位位图)。

font /微软雅黑.hex 表示载入字体文件"微软雅黑.hex"。

说明:

1、经笔者测试发现:splashimage似乎只能从FAT32格式的分区里载入底图文件。如果分区格式是NTFS,则无法载入底图文件;

2、头5条语句用来去除启动界面的提示字符串、菜单边框,具体含义笔者也不清楚,直接复制即可;

3、write 0x8274 0x2001自动给每个启动项编号。

1.5 后记

了解了以上内容,剩下的就是学习、精通GRUB4DOS命令了。因为笔者是初学者,就不浪费口舌了。需要用到的命令直接上网搜索,是学习GRUB4DOS命令最好的方式。

GRUB4DOS入门的更多相关文章

  1. Xorboot-UEFI新手入门教程

    Xorboot-UEFI新手入门教程        Xorboot-UEFI是一款UEFI下轻量级的图形化多系统引导程序,pauly于2014年国庆节期间发布了预览版.搜了下论坛,关于Xorboot- ...

  2. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  5. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  6. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  7. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  8. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  9. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

随机推荐

  1. Android开发之Theme、Style探索及源码浅析

    1 背景 前段时间群里有伙伴问到了关于Android开发中Theme与Style的问题,当然,这类东西在网上随便一搜一大把模板,所以关于怎么用的问题我想这里也就不做太多的说明了,我们这里把重点放在理解 ...

  2. 测可用!ecshop立即购买和加入购物车按钮共存的方法

    网上方法很多,但都不能用的,有的是老版本的,有的方法本身就不完整. 应大多数客户要求,我们重新整理下教程,希望对大家有用. 亲测可用!ecshop立即购买和加入购物车按钮共存的方法 第一步:修改ecs ...

  3. MVC4 经典增删改查详情demo

    MVC4 经典增删改查详情demo 源码 不解释 Mvc4增删改查详情Demo.7z public ActionResult Detail(int? id)  {    ViewData.Model ...

  4. dg_MeetingRoom 居中显示

    标题栏 居中 DataGridViewCellStyle headerStyle = new DataGridViewCellStyle(); //dg_MeetingRoom 头居中样式 heade ...

  5. 我的android学习经历22

    eclipse自动退出 今天打开eclipse的时候出现自动退出,也就是打不开了 我上网查了一下,把工作区间改了一下就好了 修改默认工作区间的如下:(不是默认的话直接修改就好) eclipse\con ...

  6. 梯度下降法VS随机梯度下降法 (Python的实现)

    # -*- coding: cp936 -*- import numpy as np from scipy import stats import matplotlib.pyplot as plt # ...

  7. Populating Display Item Value On Query In Oracle Forms

    Write Post-Query trigger for the block you want to fetch the field value for display item.ExampleBeg ...

  8. Change Or Set Report Object Property At Run Time In Oracle Forms Using Set_Report_Object_Property Command

    Sets the Report object property at run time in Oracle Forms of an report object. The following are t ...

  9. Django基础-过滤器

    1.可以通过过滤器来修改变量的显示,过滤器的形式是:{{ variable | filter }},管道符号'|'代表使用过滤器 2.过滤器能够采用链式的方式使用,例如:{{ text | escap ...

  10. STORM_0004_windows下zookeeper的伪集群的搭建

    -----------------------------------------------------START------------------------------------------ ...