无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5440|回复: 9
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2020-3-19 05:55:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
绝对扇区引导是下面的写法:

title 【40】 引导  金士顿SSD-480G-HPA-MBR修改版
chainloader (hd0)40154320+63

grub通过相对扇区号引导文件怎么写?
帮一个朋友安装HPA分区,grldr启动后无法准确识别分区和里面的文件,故想到引导“相对扇区”文件,
比如引导grldr所在位置之后10000个扇区的ISO文件,怎么写?谢谢

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

2#
发表于 2020-3-19 18:02:29 | 只看该作者
用 chenall 为 grub4dos 增添的变量、函数以及编程方法,可以实现。

先列出 grldr 的块号列表,用 blocklist 命令。

再设法解析 blocklist 的输出结果,找到你想要的扇区号数值。

将它加上 10000,得到你的 iso 文件的起始扇区号。

你的 iso 文件就等同于 (hd0)xxxx+yyyy 这个文件了。其中,xxxx 是起始扇区号,yyyy 是 iso 的扇区总数。前提条件是,iso 要连续,即,没有碎块。

接下来,你可以把 (hd0)xxxx+yyyy 当成你的 iso 文件,进行 map 等等之类的操作。
回复

使用道具 举报

3#
 楼主| 发表于 2020-3-19 19:56:38 | 只看该作者


   
   非常感谢“不点”大师回答。。。
回复

使用道具 举报

4#
发表于 2020-3-19 21:48:57 | 只看该作者
好久没有露面了。
回复

使用道具 举报

5#
发表于 2020-3-24 17:02:53 | 只看该作者
备忘一下,map 确实能够跳过一定数目的扇区,再开始映射。请查阅 map 的参数(不过,要查阅源代码才行,公开的文档不一定写明,可视为未公开、半公开的功能)。

但如果想用 img 相对于 grldr 的距离,这种应用场景还是很少会见到的,所以也难有现成的解决方案。大概也只能像前面提到的,用曲折的办法了。

点评

谢谢不点大师亲临指导! 还有个问题,清华同方5.0.7的启动代码,是放在硬盘0扇区及其以后20多个扇区,在硬盘上加载固然没有问题,如果用U盘启动电脑,通过U盘里备份的同方5.0.7的启动代码MBR文件,用grldr引导启动  详情 回复 发表于 2020-3-26 07:26
回复

使用道具 举报

6#
 楼主| 发表于 2020-3-26 07:26:40 | 只看该作者
本帖最后由 天涯海角1216 于 2020-3-26 07:27 编辑
不点 发表于 2020-3-24 17:02
备忘一下,map 确实能够跳过一定数目的扇区,再开始映射。请查阅 map 的参数(不过,要查阅源代码才行,公 ...

谢谢不点大师亲临指导!
还有个问题,清华同方5.0.7的启动代码,是放在硬盘0扇区及其以后20多个扇区,在硬盘上加载固然没有问题,比如硬盘里MBR代码损坏,如果用U盘启动电脑,通过U盘里备份的同方5.0.7的启动代码MBR文件,用grldr引导启动电脑硬盘的清华同方5.0.7程序正常运作,菜单怎么写?
谢谢!

点评

尝试一下这两句?  详情 回复 发表于 2020-3-26 08:51
回复

使用道具 举报

7#
发表于 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
回复

使用道具 举报

8#
 楼主| 发表于 2020-3-26 09:58:26 | 只看该作者
sunsea 发表于 2020-3-26 08:51
尝试一下这两句?

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

谢谢回复!
试了一下,不成功的。

点评

BIOS默认的启动行为是只读0扇区,0扇区的代码负责加载后面20多个扇区……估计0扇区代码找不到后面的了……或许需要弄一个硬盘镜像,本身是空的,然后引导扇区是你的东西,然后map --mem到内存并启动(rootnoverify指  详情 回复 发表于 2020-3-26 10:21
回复

使用道具 举报

9#
发表于 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
回复

使用道具 举报

10#
 楼主| 发表于 2020-3-27 08:30:27 | 只看该作者
本帖最后由 天涯海角1216 于 2020-3-27 08:31 编辑
sunsea 发表于 2020-3-26 10:21
BIOS默认的启动行为是只读0扇区,0扇区的代码负责加载后面20多个扇区……估计0扇区代码找不到后面的了… ...

title  【09】 启动HPA所在盘第2扇区启动同方急救中心
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1)
chainloader 2+1
title  【10】 启动HPA所在盘第459331522扇区启动同方急救中心
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1)
chainloader 459331522+1

title  【11】 从U盘第60597180扇区启动同方急救中心
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1)
chainloader (hd0)60597180+1

title  【13】  /SZ56-TF5.0.3.BIN
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1)
chainloader (hd0)/SZ56-TF5.0.3.BIN
boot

无数次尝试,终于成功!!!
这几个菜单都成功!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-25 01:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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