1、grub加载img文件的方法是:
在grub下面输入以下命令(假定img镜像在c盘根目录):
map (hd0,0)/xx.img (fd0)
chainloader (hd0,0)/xx.img
rootnoverify (fd0)
boot
2、IDE硬盘用hd开始,SCSI硬盘用sd开头,软盘用fd开头。windows命名是从0算起。
(hd0,0)。表示C盘。
(hd0,4)。表示D盘。当然这里指的是(第一个逻辑分区,如果D盘也是主分区,应该写成hd0,1)
系统的第一个硬盘驱动器表示成(hd0),其上的第一个分区表示为(hd0,0),也就是说对于硬盘,采用(hdx,y)的形式来表示,x、y都是从0开始计数的,x表示硬盘号,y表示分区号。
3、由于主分区只能有四个,所以第一硬盘的四个主分区分别用(hd0,0)~(hd0,3)来表示;逻辑分区则从(hd0,4)开始算,即第一逻辑分区用(hd0,4),第二逻辑分区用(hd0,5)来表示,依次类推。
4、电脑一般只有一个硬盘,一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。 光盘用(cd)表示,第一软驱用(fd0)表示。
文件的表示:( , ) /path/to/file
chainloader 是用来加载Win文件的~~
initrd 才是用来加载img,gz等文件的~~~
建议看下WinPE教程~~
map to_drive from_drive
映射驱动器from_drive到to_drive。这条指令当你在chainload一些操作系统的时候可能是必须的,这些操作系统如果不是在第一个硬盘上可能不能正常启动,所以需要进行映射。如下:
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)
#用来对付双硬盘的~~
chainloader [`--force] file
把file装入内存进行chainload,除了能够通过文件系统得到文件外,这条指令也可以用磁盘块列表的方式读入磁盘中的数据块,如+1`指定从当前分区读出第一个扇区进行引导。如果指定了`--force`参数,则无论文件是否有合法的签名都强迫读入,当你在引导SCO UnixWare时需要用这个参数。
blocklist file
显示文件file在所占磁盘块的列表。
initrd file ...
为Linux格式的启动映象装载初始化的ramdisk,并且在内存中的Linux setup area中设置适当的参数。
不知道为什么一楼搞得那么复杂?
其实img就是软盘的镜像,就好像iso是光盘的镜像。
其实就是这几行命令而已,在grub下面打:
map (hd0,0)/xx.img (fd0) //此处假定你的img镜像是在c盘根目录
chainloader (hd0,0)/xx.img
rootnoverify (fd0)
boot
另外,最新的grub4dos已经支持非1.44M的img镜像了,你可以下载矮人dos等dos img文件来用grub引导。
grub?linux的那个引导加载器?
用map干嘛?用root指定根文件系统即可,kernel加载linux内核,initrd加载虚拟磁盘镜像,你到底要加载一个什么样的文件?chainloader看其名字你就知道是链式引导加载,典型的例子就是windows的ntldr,读一个块加1所以一般启动windows就是chainloader +1