|
>>假如能够把这个问题做好,达到两全其美,那也是好事。
-------------------
我分析了下。 应该可以的。
1(ud)本身的问题。
由于(ud) 绑定的 是物理磁盘。
这样,没有map 动态调整的 麻烦。
因为 map 动态调整,不会调整 物理磁盘 号。
多个硬盘也没问题。
从硬盘启动时,总是0x80. 也不受map影响。
2grldr启动的时候,要检查是否从ud启动。如果是的,则把 ud 区当作当前 root 区
-------------------
这个也根本不是问题。这个是有规范的。
启动磁盘,本来就和(ud)没有一点关系。
启动磁盘 依据规范,是通过dl传递的。 传递的多少,就是多少。
启动分区,本来就和(ud)没有一点关系。
启动磁盘 依据规范,也传递过来的。 传递的多少,就是多少。不是有(ud)决定的。
只有从MBR启动时,或者类似情况。此时 分区号为255,表示没有分区,而从“整个磁盘”启动。
此时 才会 “检查是否从ud启动,如果是的,则把 ud 区当作当前 root 区”.
比如:
1) 从 (hd0,0) chainloader /grldr
此时指定了 分区号, 根分区和 (ud)无关。 根分区为(hd0,0)
此时,会继承原来的 (ud). 注意是继承的,而不是分析(hd0,0) 的这个hd0而得来的。
2) 从(ud) chainloader /grldr
此时,会继承原来的 (ud). 并用继承的(ud)作为root。
注意是继承的,而不是分析得来的。
3) 从(hd0) chainloader /grldr
(1)此时,会自动继承原来的 (ud).
注意是继承的,而不是分析(hd0,0) 的这个hd0而得来的。
(2)如果没有开关禁止,
如果逻辑磁盘(hd0) 对应一个物理磁盘或其头部,分析物理磁盘对应区域, 如果是完的(ud), "则把 ud 区当作当前 root 区"。 同时更新(ud)
否则直接把(hd0) "当作当前 root 区"。 ((ud).还是原来的(ud))
(3)如果有开关禁止, 不分析逻辑磁盘(hd0), 直接把(hd0) "当作当前 root 区" ((ud).还是原来的(ud))
|
|