|
回复 #8 2010ingxii 的帖子
hook 之类的字眼,控制 grub4dos 的 int13 是否接管 BIOS 的 int13。
如果 hook 处于 on 的状态,则 grub4dos 建立的虚拟磁盘是生效的。
如果 hook 处于 off 状态,则 grub4dos 建立的虚拟磁盘是暂时不起作用的。
如果不曾建立任何虚拟磁盘,则 hook 会出错,因为根本无需 hook。
如果已经建立了虚拟磁盘,此时可以 hook ,让它生效。
如果在 hook 处于 on 的状态,又建立了新的虚拟磁盘(或者删除了旧的虚拟磁盘),则新的虚拟磁盘(或者新的删除动作)没有立即生效,必须使用 unhook 再使用 hook 才能使得新的修改生效。等价地,使用 rehook 也可。
如果已经建立了虚拟磁盘,并且 hook 已经生效,此时又用 unmap 等方法撤销了某些(或者全部)映射,此时,起作用的仍旧是先前的映射,新的 unmap 没有生效。需要用一条 unhook 或者 rehook 才使得新的修改生效。
如果本来就没有建立任何虚拟磁盘,则 unmap 和 unhook 都属于 “空操作”,不执行任何动作。
如果用 map 建立了某些映射,但忘了执行 hook,则在 boot 命令执行的时候,会自动补充(追加)执行一个 hook 的动作。这是为了兼容原来的 GNU GRUB 的处理方式。
请经常地、习惯性地使用 map --status 来判断 map 的状态。
map --mem 需要花时间把映像文件拷贝到内存。但 hook 的执行是不需要时间的。因为 hook 只是修改状态,这几乎不需要时间。把映像文件拷贝到内存,不等于已经 hook 了。因此,还需要 hook,否则,虚拟磁盘依旧是没有生效的。 |
|