版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yehuohan/article/details/51248875
记一下自己用的grub4dos的配置:
安装
- grub4dos下载:http://grub4dos.chenall.net/
- 安装方式:bootice 或 grubinst 或 bootlace.com
- bootice: http://www.ipauly.com/, 除了安装外还有众多其它功能;
- grubinst:安装方便;
- bootlace.com:最好对dos命令比较熟悉,对硬盘分区命名等参数熟悉。
grub使用
设备命名
- 设备有ud, pd, nd, hd, cd, fd,
hd:磁盘类
cd:光驱类
fd:软驱类 - 对应的16进制数值
fd0 : 0x00
pxe : 0x21
ud : 0x23
hd0 : 0x80
hd32 : 0xa0
hd127 : 0xff - 其它规则
():空括号,表示当前设备
(md):内存驱动器,实现了将整个内存作为一个磁盘驱动器来访问
(hd0):第一块硬盘,0x80即是第一块硬盘,bootlace.com 0x80 即安装grldr到第一块硬盘
(hd1):第二块硬盘,0x81即是第二块硬盘
(hd-1):最后一个硬盘
(hd0, 0):第一块硬盘第一主分区,主分区(包括扩展分区在内)最多4个(0~3)
(hd0, 4):第一块硬盘第一逻辑分区,逻辑分区从4开始
(hd0)+1:将第一块硬盘的第1个扇区当作一个文件
(hd0, 0)+2:将第一块硬盘的第一个分区的前2个扇区当作一个文件
(hd0)512+2:将第一块硬盘的第512个扇区后的2个扇区当作一个文件
命令参数
配置文件有问题时,自己就可以敲命令启动了。
GRUB --config-file=str
// 启动grub,str可以是命令(如str可以为 "reboot"),也可以是lst文件(如str可以为 (hd0,0)/menu.lst)
ls (hd0,0)/boot/
// 列出boot下的目录和文件
ls /boot
// 列出boot开头的目录和文件
ls dev
// 列出所有驱动器(不包括分区)
debug on
find
// 列出所有磁盘,包括分区(必须在debug on模式下)
find --set-root /ntldr
// 查找包含/ntldr的设备,把第一个找到的设为当前设备
find --set-root uuid () xxxxxxxx
uuid xxxxxxxx
// 设置uuid为xxxxxxxx的分区分根分区
uuid ()
uuid (hd0,0)
// 显示设备的uuid
root
// 显示当前设设备名称及相当信息
root (hd0,0)
// 把(hd0,0)作为当前磁盘
map /pe.iso (0xff)
map --hook
// 将pe.iso映射到(hd127)仿真磁盘,pe.iso要求连续存放,不能有碎片
map --mem /pe.iso (0xff)
// 将pe.iso加载到内存,然后映射,pe.iso可以有碎片,要求内存容量比pe.iso大
map () (hd0)
map (hd0) ()
map --rehook
// 磁盘交换,即把当前设备变成第一块硬盘
uuid
// 列出所有设备的uuid
uudi (hd0,0)
// 列出(hd0,0)的uuid
configfile /menu.lst
// 加当menu菜单配置文件
halt
// 关机
reboot
// 重启
kernel [--no-mem-option][--type=TYPE]FILE [ARG...]
// 尝试载入主引导影像文件。其它项将被作为内核的命令行参数而传递给内核。
// 使用此命令以前,内核所用到的模块应该被重新载入。
// 参数 --type 用于说明内核的类型,包括 "netbsd", "freebsd", "openbsd", "linux", "biglinux" 和 "multiboot"。
// 参数 --no-mem-option 用于说明不必自动传递 Linux 的内存参数。
initrd FILE[FILE...]
// 加载Linux格式的初始化虚拟盘, 并设置必要的参数。
/*从iso启动Kali实例,镜像在/iso/kali/kali-linux-2016.1-amd64.iso*/
find --set-root /iso/kali/kali-linux-2016.1-amd64.iso
kernel /iso/kali/vmlinuz boot=live config boot=live username=root hostname=kali boot=live username=root hostname=kali findiso=/iso/kali/kali-linux-2016.1-amd64.iso
initrd /iso/kali/initrd.img
// "/iso/kali/vmlinuz":从kali镜像中提取的vmlinuz文件
// "boot = live ...findiso=/iso/...":从镜像引导文件中提取的参数
// "/iso/kali/initrd.img":从kali镜像中提取的initrd.img文件
// 若镜像已经解,可以直接加载镜像中已经有的引导,或直接加载引导文件
chainloader [--force]FILE
// 加载扇区链式加载器,注意:在命令行下使用该命令后还需再执行 boot 命令才会真正启动。
chainloader /ntldr
// 加载ntldr启动文件
chainloader (hd0,0)+1
// 加载(hd0,0)的第一扇区
chainloader --force /bootmgr
// 加载bootmgr,忽略启动标识有效性,强制启动
boot -1 (或boot -int18)
// 根据Bios顺序启动下一设备
配置
地址:https://github.com/yehuohan/_bak_winly-grub4dos-rEFInd,具体见里面的readme.txt