GRUB4DOS:一个超级强大的操作系统启动管理器
概述
grub4dos来源于 gnu grub legacy ——即 gnu grub 0.97,青出于蓝而胜于蓝!题外话:gnu grub 2 正处于不断的开发阶段,并未正式发布!
- 跨平台:grub4dos可以启动任何类型的操作系统:liunx;windows;dos等等
- 多种安装形态:mbr(非文件方式存在);分区(非文件方式存在);和其他引导器结合(如微软的引导器,以普通分区根目录的文件的形式存在)
- 多种运行形态:dos下的设备驱动文件形式;普通dos命令形式;基本引导器形态
- 多种操作形态:自动预设菜单;命令行
版本
最新版本:截止该随笔写作时为0.4.4-2009-06-20
启动菜单配置文件menu.lst
grub4dos 和 gnu grub 一样,使用menu.lst作为标准的启动菜单配置文件。
grub4dos推荐menu.lst文件放在和grldr相同的目录下
基本知识
- 硬盘设备:(hdm):m序号从 0 开始,注意:设备也可以使用bios的标识序号标识,如第一个硬盘也可以表示为(0x80) 或(120)
- 硬盘分区:(hdm,n):m序号从 0 开始,注意:设备也可以使用bios的标识序号标识,如第一个硬盘也可以表示为(0x80) 或(120)。n是m硬盘的分区号,从0开始——对于主分区为0-3,对于扩展分区为4-25。
- 硬盘分区的子分区:(hdm,n,k):m序号从 0 开始,注意:设备也可以使用bios的标识序号标识,如第一个硬盘也可以表示为(0x80) 或(120)。n是m硬盘的分区号,从0开始——对于主分区为0-3,对于扩展分区为4-25。对于ffs、ufs文件系统,子分区的号为字母标识,从“a”开始。
- 软盘设备:(fdm):m序号从 0 开始,表示第一个软盘
- 文件名字:在设备名字+路径+文件名。注意:路径分隔符为linux风格的“/”
- 定位扇区:类似文件名,由位移+访问的数量构成,当位移为0时,可以省略0,但“+”不可以省略!
- 默认根设备:root 命令,可以指定默认的全局根设备名。之后不指明根设备的文件都默认是在全局根设备上
必备技巧
- tab键:补足功能
- esc键:取消命令模式,退回基本菜单模式
- help [cmd]:随时随地获取帮助
核心使用指南、示例
chainloader 和 kernel
- 启动dos、windows95、98、me:chainloader (hd0,0)/io.sys
- 启动windowsNT、2000、xp、2003:chainloader (hd0,0)/ntldr
- 启动windows vista、 7、2008:chainloader (hd0,0)/bootmanager
- 启动linux:kernel (hd0,0)/vmlinuz initrd (hd0,0)/initrd
map
- 标准的map功能:模拟bios进行磁盘交换,必须成对设置,boot以后生效!map (hd0) (hd1) map (hd1) (hd0)
- grub4dos扩展:拦截int13,虚拟硬盘:map (hd0,0)/vd.disk (hd1),vd.disk文件物理存储上必须连续
- grub4dos扩展:拦截int13,虚拟软盘:map (hd0,0)/vd.flp (fd0),vd.disk文件物理存储上必须连续
- grub4dos扩展:指示map映射立即生效:map –hook
- grub4dos扩展:将虚拟设备放入内存:在map后添加 –mem 参数即可:map –mem (hd0,0)/ramdisk.disk (hd1)
- grub4dos扩展:自动生成mbr功能,不论是文件系统 还是 磁盘系统,grub4dos可用自动检测,必要是补充上mbr
- grub4dos扩展:加载整个硬盘分区:map –mem (hd0,0)[0]+1
- grub4dos扩展:虚拟内存设备(md)
- grub4dos扩展:虚拟随机访问内存设备(rd)
- grub4dos扩展:虚拟网络设备(nd)
- grub4dos扩展:虚拟光驱设备(cd)
- grub4dos扩展:显示当前磁盘映射状态:map –status
- grub4dos扩展:设置虚拟设备为只读:map –read-only
- grub4dos扩展:设置虚拟设备为假写:map –fake-wirte
cat
- grup4dos扩展:可用使用–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字节。
使用光驱:不支持joliet扩展的光盘
- grub支持的光驱设备是(cd):指的是使用光驱启动grub所在的设备
- cdrom –init:初始化所有cdrom设备
- map –hook:为所有cdrom设备分配设备名:依次为cd0、cd1….
- cdrom –stop:停止所有cdrom设备
- map –unhook:删除cdrom设备名