1、转载自豆丁网ERROR 60:File for drive emulation must be in one contiguous disk areagrub 的虚拟光驱不支持过大的 iso 文件 而且这个 iso 文件必需连续存放,用碎片整理软件也无济于事.把这个 iso 文件删除,先整理碎片,然后移动这个 iso 文件到根目录,iso 文件就会以连续的形态存在 。grub4dos 的 map 命令不支持要接管硬件的 windows 安装程序和 windows pe。 error:60 的提示只是问题的一个方面.map 不加-mem 参数进行仿真,要求对应的映像文件在硬盘上一定要连续存放,这
2、就是原因。之所以失败是因为文件没有连续存放。可以用工具 contig,或者 wincontig 整理,实现文件连续存放。用 map -mem 应该总是能够成功的(但要求你的内存足够大)。最新 grub4dos 支持 ISO 的仿真。无论是 no-emulation 可启动模式,还是 floppy or hard disk emulation 可启动模式的 ISO 文件,都支持。用法示例:map (hd0,0)/myiso.iso (hd32)map -hookchainloader (hd32)bootGRUB 设备命名规则仿真 CD/DVD 设备编号为从(hd32)至(0xFF)(hd32)
3、 -第一仿真 CD/DVD 设备# p4 T0 z% ! f5 b+ W4 g( B4 “ c(hd33) -第二仿真 CD/DVD 设备(hd34) -第三仿真 CD/DVD 设备(0xFF) -最后一个仿真 CD/DVD 设备 (如果用 map 命令映射(hd32) 不工作的话请尝试用此参数)2 B% S“ f) X) G% y注:(hd32) 设备等同于 (0xA0) 设备(仅编号规则不同) 。( d2 E6 Y% G z% ?grub4dos 将设备号大于或等于 0xA0 的设备均识别为 CDROM 设备。 g/ b4(hd32) 就等于 (128 + 32),也就是 (0xA0),用
4、 map 仿真时,如果用户指定的磁盘号码大于或者等于 0xA0,那么 map 命令就认定这是 ISO 仿真。也就是说,此时虚拟磁盘的扇区大小是 2048 字节(只有这样才能作为光盘使用,这是“可启动光盘规范”所规定的),而不是通常软盘和硬盘中的 512 字节扇区大小.0xff 是十六进制,换算成十进制是 2550XFF 是 1 个字节,0x00FF 是 2 个字节。0xFF 一个 F 4 位, 2 个 F 就是 8 位 1 个字节=菜单例子=title Windows 3.2 简体中文版 map (hd0,0)/boot/pmwin3.img (fd0) chainloader (hd0,0)
5、/boot/pmwin3.img MAP 必须要求镜像文件连续存放,否则无法启动,它不限制文件大小。grub 中 chainloader +1 '+1'是指示 GRUB 读入分区的第一个扇区的引导记录。 boot 执行引导。以上是一般的 chainloader 方式,对于 DOS 和 WINDOWS,可以用这两条指令进行引导。 =物理或真正的 CD/DVD 驱动从零被编号- (cd0) -第一 CD/DVD 驱动(cd1) -第二 CD/DVD 驱动等.软盘驱动器从零被编号- (fd0) -第一磁盘驱动器(fd1) -其次磁盘驱动器等.PXE 驱动(pd) -被用于的虚拟设备选
6、定 PXE 起动服务器的根目录随机存取存储磁盘驱动(rd) ramdisk-1、linux 的设备是被看成文件,所有文件挂在一个“根”上。IDE 硬盘按顺序表示为/dev/hda,/dev/hdb,.其他硬盘和移动存储设备表示为/dev/sda,/dev/sdb,.每个硬盘 14 表示主分区(有几个就用几个),逻辑分区从 5 开始往后分配,例如 /dev/hda1,/dev/hda5,./dev/sda1,/dev/sda2,/dev/sda5,/dev/sda6,.2、windows 从 C 开始为硬盘及其分区分配盘符(windows 不可识别的分区类型及隐含分区默认不分配盘符),它不按硬盘顺序慢慢分配,而是按先主分区后逻辑分区,然后是光驱、U 盘(及 USB 移动硬盘)*当然也可以修改注册表 mouting 项对盘符重新分配*3、grub 不分 IDE 还是 SCSI 等,统一按 INT 13H(INT 42H)中的 DL 的设备号分配,80H 为 hd0,81H 为hd1,.hd(x,y)中 y 按分区顺序从 0 开始分配。0xff 如果我没记错的话应该是指默认的启动设备驱动器号( 软盘是 0x00,硬盘可能是 0x80)