无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4464|回复: 9
打印 上一主题 下一主题

[求助] grub通过相对扇区号引导文件

[复制链接]
1#
发表于 2020-3-26 08:51:53 | 显示全部楼层
本帖最后由 sunsea 于 2020-3-26 08:54 编辑
天涯海角1216 发表于 2020-3-26 07:26
谢谢不点大师亲临指导!
还有个问题,清华同方5.0.7的启动代码,是放在硬盘0扇区及其以后20多个扇区,在 ...
  1. chainloader --force /XXXX.bin#(备份文件)
  2. rootnoverify (hdX,Y) #你的硬盘和适当的分区
  3. boot
复制代码

尝试一下这两句?

引用自本区置顶的帮助帖子:
例2:

直接启动 WinNT/2K/XP 的 NTLDR 和 Win9x/ME 的 IO.SYS, 以及FreeDOS 的 KERNEL.SYS.

例如:

chainloader --edx=0xPPYY (hd0,0)/ntldr
boot

chainloader --edx=0xYY (hd0,0)/io.sys
boot

chainloader --ebx=0xYY (hd0,0)/kernel.sys
boot

十六进制的YY 指定了启动驱动器号,十六进制的PP指定了 NTLDR 的启动分区号。如果启动驱动器是软驱,PP应该是一个十六进制的值ff,即十进制的255.
对于 Freedos 的 KERNEL.SYS , 选项--edx不能执行,请使用--ebx 。当文件位于它们平常的位置时,选项 --edx (--ebx)可以省略。但某些情况下,这些选项是必需的。

例如,假设被调用的ntldr文件在ext2分区(hd2,8)中,而你又希望它认为(hd0,7)的 windows 分区是启动分区,那么--edx就是必需的:

chainloader --edx=0x0780 (hd2,8)/ntldr

对于DOS核心(即,IO.SYS和KERNEL.SYS),启动分区号是没有意义的,因此你只需指定恰当的启动驱动器号YY(不过指定了启动分区号也是无害的)。
上面的PPYY也可以在chainloader命令之后通过root和rootnoverify命令来指定。

例如:

chainloader (hd2,6)/kernel.sys
rootnoverify (hd0)    <-------- YY=80
boot

chainloader (hd0,0)/ntldr
rootnoverify (hd0,5)    <-------- YY=80, PP=05
boot



点评

谢谢回复! 试了一下,不成功的。  详情 回复 发表于 2020-3-26 09:58
回复

使用道具 举报

2#
发表于 2020-3-26 10:21:52 | 显示全部楼层
本帖最后由 sunsea 于 2020-3-26 10:27 编辑
天涯海角1216 发表于 2020-3-26 09:58
谢谢回复!
试了一下,不成功的。

BIOS默认的启动行为是只读0扇区,0扇区的代码负责加载后面20多个扇区……估计0扇区代码找不到后面的了……或许需要弄一个硬盘镜像,本身是空的,然后引导扇区是你的东西,然后map --mem到内存并启动(rootnoverify指定一下EDX)
仅提供思路……这种多扇区的引导代码确实麻烦
要是有办法解析一下它0扇区的行为就好了……然后用g4d复刻一下

点评

title 【09】 启动HPA所在盘第2扇区启动同方急救中心 map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1) chainloader 2+1 title 【10】 启动HPA所在盘第459331522扇区启动同方急救中心 map (hd0) (hd1)  详情 回复 发表于 2020-3-27 08:30
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-15 17:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表