1.1  grub简介

GRUB 是一个遵从Multiboot(多重启动)规范的启动管理程序。现在接触到的有3种,即GNU Grub Lagecy , GNU Grub2 和 Grub for dos(grub4dos)。

GNU GRUB Lagecy其实就是原来的 GNU GRUB 0.xx ,最新版是2005年发布的GNU GRUB 0.97。 目前已停止开发,并改名为 GNU GRUB Lagecy。

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

GNU GRUB Lagecy和GNU GRUB2都是 GNU 组织的项目。

GRUB for DOS(GRUB4DOS)是一个以 GNU GRUB 为基础的功能强大的引导器。它可以在 DOS 和 LINUX下运行,也可以通过其他引导器来运行,还可以作为MBR运行。GRUB4DOS内置了功能完善的 BIOS 级磁盘仿真。
GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重 操作系统 启动管理器。用来引导不同系统,如windows,linux。
在X86 架构的机器中,Linux、BSD 或其它Unix类的 操作系统 中GRUB、LILO 是大家最为常用,应该说是主流。

Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 7后,我们再安装一个Windows 8 ,在机器启动的会有一个菜单让我们选择进入是进入Windows 7 还是进入Windows 8。NTLOADER就是一个多系统启动引导管理器,(这里不多介绍~在接下来日志会有)

grub4dos0.4.4下载地址:    grub4dos-0.4.4-2009-01-11.zip (806.54 KB, 下载次数: 20)

1.2  通过mbr启动grub (命令修改)
GRUB4DOS:(占用18个扇区,老版本占用16个扇区)是强大的引导程序,可以安装在MBR ,也可以安装在分区 PBR ,若安装在MBR,则可以搜索所有分区,启动其指定文件-GRLDR(不需读入分区PBR) ,从而正常启动。
引导过程为: MBR → grldr

通过软件包里的bootlace.com(可运行于DOS/Win9x)安装GRLDR引导记录到硬盘或者硬盘映像文件的主引导记录,或者安装到软盘或者软盘映像的引导扇区。电脑启动时,通过击热键(默认为空格键,可自定义)来启动grub。

比如:
在DOS下安装GRLDR代码到主引导记录:
bootlace.com 0x80

在DOS下安装GRLDR代码到软盘:
bootlace.com --floppy --chs 0x00

在DOS下安装GRLDR代码到软盘映像:
bootlace.com --floppy --chs floppy.img

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

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

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

装入mbr后,再将grldr和menu.lst文件复制到某分区的根目录(现在支持的文件系统是FAT12,FAT16, FAT32, NTFS,EXT2 or EXT3 的分区。对于Windows用户,最好是fat分区),menu.lst也可保存到其它指定位置。

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

以上为用命令安装grub4dos,命令看上去比较复杂且不易操作,所以我们可以用bootice.exe(百度一下,就能下到)这个软件修改MBR和PBR
  注    
注:主引导记录可为其他形式如hdd+/zip/NT等、例如主引导记录为hdd+,pbr为grub4dos 可引导活动分区的grldr文件,读取menu.lst列表。pbr为NT时可引导NTLDR或BOOTMGR(修改PBR).
主引导记录为NT时同理,pbr可为NT/GRLDR/BOOTMGR,引导对应文件。

1.4 如何使用grub4dos
A:  grub的启动菜单是由grldr读取menu.lst这个文件而来的,所以系统启动设备。进入grub启动界面后,有哪些系统,选择哪个系统进入,能否进入都取决于menu.lst这个文件,所以编辑menu.lst至关重要。
GRUB 里的设备命名法则 它使用了UNIX对设备的命名方法.比如我们拥有两块硬盘,那么采用这种形式(hdx,y), 这里,x,y, 都是从0开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个sata接口上. 对 hd0 来说, 请看下图:

(注, C: 为第一主分区, 其他分区是扩展分区.由于主分区只能有四个,即 0,1,2,3, 所以第一个扩展分区的编号从 4 开始.)
这是硬盘,那么光驱采用(cd). 网络设备使用 (nd).
那么,这里就要提及 GRUB 里的一个很首要的概念了, 即 "根(/)", 或者 root. 其实,它就是一个源一样的东西,与草木的"根"相类似. 在GRUB中,其它的文件对象都域于此. 所以,一旦你指定了一个根,后续的操作除非显示地说明,否则都是对"根"而言的.
其实在某种意义上来说,和相对/绝对路径有点关联性. ;-) 正如,你所猜到的那样, GRUB 使用 root 命令来指定根设备(通常都是文件系统).

B:从U盘上的应用初步了解menu.lst的修改
在优盘上应用grub,与软盘类似,主要有两种方式,即通过DOS启动grub和把GRLDR引导记录安装到优盘的引导扇区。

使用bootice写入引导,使得U盘具有引导功能,然后设置BIOS从U盘启动或者开机按快捷键(这里不多介绍)

不同的启动模式,U盘启动进入dos后,在你的电脑上可能是A盘,也可能C盘。
由于u盘容量大,在u盘上就可以存放各种工具及WinPE。

当显示为A盘时,使用方法类似于软盘。

menu.lst文件中启动img镜像文件的用法如:

title GreenGhost [Ghost v8.3/v11] (MAP-HOOK)
map --mem (fd0)/boot/grub/gghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

当显示为C盘时,使用方法类似于硬盘。

menu.lst文件中启动img镜像文件的用法如:

title GreenGhost [Ghost v8.3/v11] (MAP-HOOK)
map --mem (hd0,0)/boot/grub/gghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

在上面的例子里,menu.lst中引用文件使用的是绝对路径,即(fd0)/boot/grub/gghost.img和(hd0,0)/boot/grub/gghost.img,这种用法对于特定的机子是没有问题的。但在同一U盘,要使用到不同机子时,可能带来一个问题。也就是可能不同的机子,要用不同的menu.lst文件,否则不能正常启动工具。那么,能否用什么办法,不用这么麻烦呢?答案是肯定的,那就是使用"find --set-root"和相对路径来实现。这样就不必为U盘被识别为fd还是hd烦恼了。

比如,你可以在u盘根目录建一个特征文件,如myudisk.txt

这样在启动u盘上的img镜像文件就可用下面的方法来实现:

title GreenGhost [Ghost v8.3/v11] (MAP-HOOK)
find --set-root /myudisk.txt
map --mem /boot/grub/gghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

启动u盘上的WinPE就可用:

title Micro Windows XPE (by LaoMaotao) 
find --set-root /myudisk.txt
chainloader /ldrxpe
本人硬盘上PE menu.lst:
title LAOMAOTAO PE
find --set-root /LMT.iso 
map /LMT.iso (0xff)
map --hook
chainloader (0xff)


title Ton8PE_V4.0
find --set-root /Ton8PE_V4.0.iso
map /Ton8PE_V4.0.iso (0xff)
map --hook
chainloader (0xff)
title   『YLMF PE』
find --set-root --ignore-floppies --ignore-cd /YlmF_PH/grub/back.gz || find --set-root /YlmF_PH/grub/back.gz
chainloader ()/YlmF_PH/grub/peldr

参考其它示例,通过编辑你的menu.lst,你就能够充分发挥U盘的效能。
具体的menu.lst今后会单独介绍。
先到这  有什么问题欢迎跟帖

系统启动之——grub4dos篇相关推荐

  1. 鹅厂流出两份Android Framework技术宝典火了,完整版 PDF 限时开放下载

    前言 最近互联网大厂的"裁员潮"愈演愈烈-- 如何破局?我想最重要的一点:不断提升个人价值. Android Framework的重要性 Android Framework 开发虽 ...

  2. 错误提示没了_ESC错误排查-系统启动篇

    # ECS从入门到精通(错误排查) # Linux启动与登录问题 Linux 启动与登录问题是 ECS 的高频问题,而往往处理不及时会直接影响到 用户业务的正常可持续运行,因此也变成了我们处理问题优先 ...

  3. grub4dos初级教程-入门篇

    grub4dos初级教程-入门篇 2008年04月21日 星期一 15:37 0 为何写此初级教程? 假如你是第一次听说grub,你可能说我不需要grub.那么,你是否用过"一键ghost& ...

  4. Android系统启动-init篇

    基于Android 6.0的源码剖析, 分析Android启动过程进程号为1的init进程的工作内容 /system/core/init/Init.h /system/core/init/Init.c ...

  5. 操作系统启动篇--01

    操作系统启动篇--01 计算机起源 从白纸到图灵机 从图灵机到通用图灵机 从通用图灵机到计算机 打开电源,计算机执行的第一句指令什么? 0x7c00处存放的代码 引导扇区代码: bootsect.s ...

  6. [ZT]grub4dos初级教程-入门篇

    From:http://hi.baidu.com/rabeta/blog/item/4814a81bd7d9d91c8618bff0.html 0 为何写此初级教程? 假如你是第一次听说grub,你可 ...

  7. 无线多操作系统启动之uInitrd阶段NFS挂载篇

    Focusstart · 2014/06/06 14:23 0x00 背景 项目组在无线环境下实现了Ubuntu12.04和Android4.0系统在Pandaboard ES开发板上的无线加载.启动 ...

  8. Android系统启动-zygote篇

    基于Android 6.0的源码剖析, 分析Android启动过程的Zygote进程 /frameworks/base/cmds/app_process/App_main.cpp (内含AppRunt ...

  9. android 重启app_[Boot]Android系统启动-zygote篇

    本文转载自Gityuan的博客,原文地址为:http://gityuan.com/2016/02/13/android-zygote/ 转载请注明作者及原文链接. 基于Android 6.0的源码剖析 ...

最新文章

  1. java 内存溢出 内存泄露_java 内存泄露、内存溢出、内存不足
  2. Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
  3. jquery 插件闭包
  4. AspectCore.Extension.Reflection : .NET Core反射扩展库
  5. python Box-Cox数据变化与逆变化
  6. 前端小白案例-爱新鲜抽屉式特效制作
  7. JS获取键盘码并判断按键
  8. 随手写了个android应用
  9. 教学管理系统数据库设计Mysql_教务管理系统数据库设计方案.docx
  10. c语言单片机烧写器,单片机烧写器是什么 烧写器怎么用
  11. Cabbage教学(2)——类型转换与字符串操作
  12. 有备无患!DBS高性价比方案助力富途证券备份上云
  13. SAP中决定销售订单出现在MRP运算中的因素
  14. trie树模板(前缀树)
  15. 玩转Tomcat高级篇
  16. jsp作业--计算矩形、圆形面积
  17. 软件测试 | 测试开发 | 一种基于视频帧差异视频卡顿检测方案
  18. javamail QQ邮箱发送实例
  19. FireDebug使用
  20. MSTP 解决链路负载均衡与链路检测

热门文章

  1. 计算机毕业设计(附源码)python校园一卡通管理系统
  2. Mysql查询语句正则匹配
  3. 惠普光影精灵台式机安装Ubuntu16.04
  4. 笔记整理5----Java语言高级(五--完结)21 字符流与字节流+22 多线程+23 网络编程
  5. 双守护进程保护程序运行
  6. php 百度地图api获取经纬度,调用百度地图API接口获取地铁站的经纬度信息
  7. Flink parallelism 和 Slot 介绍
  8. 单招计算机面试技巧和注意事项,单招考试的面试技巧和注意事项.doc
  9. iOS开发mac工具
  10. 抖音 TikTok蝉联全球移动应用收入冠军