|
你说的其实就是将软盘虚拟为硬盘。举例:
map --mem (...)/.../floppy.img (hd0)
当 grub4dos 发现你的 IMG 不含 MBR 分区表、同时也在使用 --mem 参数的时候,grub4dos 会自动在内存中为这个 IMG 添加一个分区表。
其实,我这个回复是多余的。因为你肯定知道这个情况。
下面继续讨论相关话题。
如果没有 --mem,那么目前的 grub4dos 还不具有“自动为 IMG 添加虚拟分区表”功能。
--in-situ 不是为 IMG 添加分区表。--in-situ 其实是在对整个硬盘进行虚拟化。它不是仅仅对某个 IMG 的一个连续扇区序列进行虚拟化。--in-situ 把硬盘的分区表给“更改”了(“虚拟化”了),通常是添加了一个表项(比如通常是 hd0,0),让它指向用户所关心的 IMG (或任意一个连续扇区序列)。注意,这里的概念不要弄错。用户虽然只关心 IMG 的虚拟,但整个硬盘都被虚拟了。在虚拟的硬盘上,用户通常除了能够看得见虚拟的 (hd0,0) 之外,还能看见其他真实分区,比如 (hd0,4), (hd0,5),等等。这些分区都是虚拟硬盘 (hd0) 中的一部分。不要以为,经过 --in-situ 虚拟化了的 (hd0) 上只有一个分区(即与 IMG 所对应的那个分区)。经过 --in-situ 虚拟化以后,虚拟硬盘上的分区,比真实硬盘还多了一个分区(多出的这个分区就是 IMG 所对应的那个分区)。真实硬盘上原来有的分区(不管是逻辑分区还是主分区),在虚拟硬盘上也都存在,一个都不少(但其分区编号可能与对应的真实硬盘有所不同)。
另外,grub4dos 确实有一个功能,就是,把一个逻辑分区虚拟成一个含有分区表的硬盘。这种功能比 --in-situ 实现得还要早。也就是说,--in-situ 是后来才开发出来的。
注意,是把逻辑分区虚拟成硬盘,不是把普通扇区序列(比如不含分区表的 IMG 文件)虚拟成硬盘。由于这不是你关心的情况(你关心的是对 IMG 的虚拟,不是对逻辑分区的虚拟),我也就不再详述了。readme 文件里面好像提到过这种功能吧。这一点,我猜你可能早都知道了。但这个功能,似乎很少有人用。
|
|