无忧启动论坛

标题: 如何编辑.mbr文件? [打印本页]

作者: sysop    时间: 2016-3-30 08:32
标题: 如何编辑.mbr文件?
我电脑第一分区是ext4分区,GRUB4DOS的grldr.mbr、vboot的vbootldr.mbr都卡死在try (hd0,0)ext2不能启动。
但是VHDX辅助处理工具 2013生成的vhldr.mbr、wubi装ubuntu生成的wubildr.mbr可以识别ext4分区,正常启动。
bootmgr直接引导grldr可以,直接引导vbootldr试了下不行。。。
可以修改mbr把遍历开始 (hd0,0)改为 (hd0,1)就好了,跳过ext4分区。
用winhex改了下也不行呀。
能看懂的只有英文部分,应该不是改这个位置吧,这个只是提示语?其余都是乱码、16进制看不懂呀。

捕获.JPG (93.19 KB, 下载次数: 242)

捕获.JPG

作者: sysop    时间: 2016-3-30 08:35
想装个xp,电脑没有多余的分区了
一直没成功 引导都搞不定
最接近成功的一次用“ 抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD” 出来xp启动滚动条不动了。。。
作者: fuldho    时间: 2016-3-30 10:11
WinHex
作者: sysop    时间: 2016-3-30 10:15
fuldho 发表于 2016-3-30 10:11
WinHex

怎么找到hd0,0呢?
作者: chenall    时间: 2016-3-30 10:39
以下资料来自grub4dos_readme


  1. 以下内容供开发人员参考.....
  2. ******************************************************************************
  3. ***               grldr.mbr - Details about the control bytes              ***
  4. ******************************************************************************
  5.                   grldr.mbr - 其控制字节的详述

  6. 有六个字节可以控制GRLDR.MBR引导过程。

  7. 偏移量  长度    说明

  8. ======        ======        ==============================================================
  9. 5ah        1          第 0 位=1 :禁止搜索软盘上的GRLDR 。
  10.                   第 0 位=0 :允许搜索软盘上的GRLDR 。

  11.                   第 1 位=1 :禁止引导分区表无效的原主引导记录
  12.                             (通常是一个操作系统的引导扇区)
  13.                   第 1 位=0 :允许引导分区表无效的原主引导记录
  14.                             (通常是一个操作系统的引导扇区)

  15.                   第 2 位 = 1 :禁止无条件进入命令行 (见下面的`--duce')
  16.                   第 2 位 = 0 :允许无条件进入命令行(见下面的`--duce')

  17.                   第 3 位= 1 :禁止改变磁盘几何参数(见下面的 `--chs-no-tune')
  18.                   第 3 位= 0 :允许改变磁盘几何参数(见下面的 `--chs-no-tune')

  19.                   第 4 位到第 6 位:被保留

  20.                   第 7 位=1:在搜索 GRLDR 之后尝试引导原先的主引导记录
  21.                   第 7 位=0:在搜索 GRLDR 之前尝试引导原先的主引导记录

  22. 5bh        1        等待键被按下时的暂停秒数。0xff代表始终暂停(即无休止的)。


  23. 5ch        2        热键代码。高字节是扫描码,低字节是ASCII码。默认值是0x3920,代
  24.                 表的是空格键。如果此键被按下,GRUB将在引导原先的主引导记录之前
  25.                 启动。见“ int16 键盘扫描码”。

  26. 5eh        1        优先引导的驱动器号,0xff 代表没有。

  27. 5fh        1        优先引导的分区号,0xff 代表整个驱动器。

  28.                 如果优先引导的驱动器号是0xff,搜索 GRLDR 的顺序是:

  29.                         (hd0,0), (hd0,1), ..., (hd0,L),(L=max partition number)
  30.                         (hd1,0), (hd1,1), ..., (hd1,M),(M=max partition number)
  31.                         ... ... ... ... ... ... ... ...
  32.                         (hdX,0), (hdX,1), ..., (hdX,N),(N=max partition number)
  33.                                                        (X=max harddrive number)
  34.                         (fd0)

  35.                
  36.                 否则,如果优先引导的驱动器号假定为Y (且不等于0xff),而优先引导
  37.                 的分区号为K,那么搜索 GRLDR 的顺序和上面一样。

  38.               
  39.                 注意:如果Y小于0x80 ,那么这个(Y)驱动器代表软驱,否则就是硬盘驱动器。
  40.                       而(Y,K)代表Y号硬盘驱动器上的 k 号分区。
复制代码

作者: sysop    时间: 2016-3-30 12:21
chenall 发表于 2016-3-30 10:39
以下资料来自grub4dos_readme

谢谢 我试试
作者: 2011yaya2007777    时间: 2016-3-30 14:51
我电脑第一分区是ext4分区

请把这个磁盘的 MBR 1扇区,以及 ext4 分区从 0x400 起始的2扇区打包上来。
作者: sysop    时间: 2016-3-30 15:53
2011yaya2007777 发表于 2016-3-30 14:51
请把这个磁盘的 MBR 1扇区,以及 ext4 分区从 0x400 起始的2扇区打包上来。

呵呵

MBR.zip

898 Bytes, 下载次数: 22, 下载积分: 无忧币 -2


作者: 2011yaya2007777    时间: 2016-3-30 16:19
ext4.bin 没有内容,不对。
你把 ext4 分区 复制 0x1000 字节。
作者: sysop    时间: 2016-3-31 08:15
2011yaya2007777 发表于 2016-3-30 16:19
ext4.bin 没有内容,不对。
你把 ext4 分区 复制 0x1000 字节。

昨天下午不小心点错了BOOTICE把引导搞坏了 进不去系统了 弄了个linux livecd修好grub2
晚上网站又访问不了了

mbr.zip

901 Bytes, 下载次数: 8, 下载积分: 无忧币 -2


作者: 2011yaya2007777    时间: 2016-3-31 08:22
从 MBR 看,第一分区在 0x3f 扇区,即 0x7e00 字节处,这应当是 ext4 分区吧。
复制 0x7e00 到 0x8e00 之间的内容。
作者: sysop    时间: 2016-3-31 10:59
2011yaya2007777 发表于 2016-3-31 08:22
从 MBR 看,第一分区在 0x3f 扇区,即 0x7e00 字节处,这应当是 ext4 分区吧。
复制 0x7e00 到 0x8e00 之 ...

ext4.zip

391 Bytes, 下载次数: 3, 下载积分: 无忧币 -2


作者: 2011yaya2007777    时间: 2016-3-31 12:45
普通的 ext4 32位分区,应当能启动。你使用 的 grldr 版本是?
作者: sysop    时间: 2016-3-31 18:12
2011yaya2007777 发表于 2016-3-31 12:45
普通的 ext4 32位分区,应当能启动。你使用 的 grldr 版本是?

0.4.6a
grldr.mbr卡死在try (hd0,0)ext2不能启动
grldr可以启动
作者: 2011yaya2007777    时间: 2016-3-31 20:07
哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?
作者: sysop    时间: 2016-3-31 20:17
2011yaya2007777 发表于 2016-3-31 20:07
哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?

除grub2外其余引导文件 系统都在 第四分区 ntfs
不是启动 (hd0,0)
是启动第四分区 搜到 (hd0,0)时候卡住了

具体日期我忘了 用的别人的模板
我试试最新版哈
作者: sysop    时间: 2016-3-31 20:32
2011yaya2007777 发表于 2016-3-31 20:07
哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?


我试了下grub4dos-0.4.6a-2016-03-26还是同样的问题
引导顺序
第一分区ext4 grub2
第三分区ntfs bootmgr
第四分区ntfs grldr.mbr

捕获2.PNG (10.14 KB, 下载次数: 249)

捕获2.PNG

捕获.PNG (68.6 KB, 下载次数: 247)

捕获.PNG

作者: 不点    时间: 2016-3-31 20:34
sysop 发表于 2016-3-31 20:17
除grub2外其余引导文件 系统都在 第四分区 ntfs
不是启动 (hd0,0)
是启动第四分区 搜到 (hd0,0)时候卡 ...

打PP,不试试最新版,都来报告所谓 bug。

旧版 grldr.mbr 支持 ext2 和 ext3,但碰上 ext4,则会死机。

yaya 改进后的 0.4.6a 启动代码,才支持搜索 ext4 分区的 grldr 文件。


作者: 2011yaya2007777    时间: 2016-3-31 21:35
还是一头雾水。是某个启动程序,首先启动第四分区的 grldr.mbr ,然后从第四分区 搜到 (hd0,0)时候卡住了?
作者: lsc1117    时间: 2016-3-31 21:57
16位进制编码器
作者: 不点    时间: 2016-3-31 22:01
本帖最后由 不点 于 2016-3-31 22:19 编辑

他说的不太清楚。我猜,他是说:

首先启动 grub2,然后,由 grub2 负责启动 bootmgr,再由 bootmgr 启动 grldr.mbr。此时,grldr.mbr 在搜索 ext4 分区时死掉了。

他前面还提到,wubildr.mbr 能够成功被 bootmgr 启动。wubildr.mbr 是使用旧版的 grldr.mbr,有可能是 0.4.4 的版本。就是说,旧版的 grldr.mbr 虽然不能识别 ext4 分区,但却能够忽略它,跳过它,搜索后面的分区。




作者: 不点    时间: 2016-3-31 22:25
sysop 发表于 2016-3-31 20:32
我试了下grub4dos-0.4.6a-2016-03-26还是同样的问题
引导顺序
第一分区ext4 grub2

你能否试试 0.4.5c 版里面的 grldr.mbr?就是说,让你的 bootmgr 加载 0.4.5c 版的 grldr.mbr,其他都不动(其他文件依旧采用 0.4.6a 的)。看看有什么结果?
作者: sysop    时间: 2016-3-31 23:10
不点 发表于 2016-3-31 22:01
他说的不太清楚。我猜,他是说:

首先启动 grub2,然后,由 grub2 负责启动 bootmgr,再由 bootmgr 启动 ...

恩 就是这个意思
作者: sysop    时间: 2016-3-31 23:12
不点 发表于 2016-3-31 22:25
你能否试试 0.4.5c 版里面的 grldr.mbr?就是说,让你的 bootmgr 加载 0.4.5c 版的 grldr.mbr,其他都不 ...

grub4dos-0.4.5c-2016-01-18可用
呵呵 这样解决了
成功跳过ext4分区启动

有没有大神改下vbootldr.mbr跳过ext4分区呀
作者: 不点    时间: 2016-4-1 08:04
sysop 发表于 2016-3-31 23:12
grub4dos-0.4.5c-2016-01-18可用
呵呵 这样解决了
成功跳过ext4分区启动

sysop 兄,你的测试反馈很棒。据此信息,我再作一分析,供开发者参考。

先前你之所以用 wubildr.mbr 成功跳过 ext4 分区,我猜那是因为 wubildr.mbr 中的 ext2 代码不支持 ext4 分区,所以能够跳过。而 0.4.5c 里面的 grldr.mbr,其 ext2 启动代码与 0.4.4 版是一样的,也就是说,与 wubildr.mbr 是一样的。所以,两者表现相同,都是可以成功跳过 ext4 分区。

您的反馈很重要,暴露了 yaya 0.4.6a 版的 ext4 代码所存在的严重问题。建议您继续配合 yaya 把这个 bug 排除掉(做个善事)。这样,其他人就可以成功启动 ext4 下的 grldr 文件了。
作者: 2011yaya2007777    时间: 2016-4-3 21:39
本帖最后由 2011yaya2007777 于 2016-4-3 22:12 编辑

请楼主测试:
作者: sysop    时间: 2016-4-3 22:06
2011yaya2007777 发表于 2016-4-3 21:39
请楼主测试:

卡在try (hd0,0)ext2不能启动
O(∩_∩)O~
作者: 2011yaya2007777    时间: 2016-4-3 22:23
使用
blocklist /grldr
查看一下 grldr 在何处结束,可否把包含 grldr 文件在内的磁盘内容打包压缩传到某处?
作者: 2011yaya2007777    时间: 2016-4-3 22:39
grldr 在不在 ext4 分区?
我估计应当在前 1 Gb 范围.可以把磁盘前 1 Gb 打包上传.
作者: sysop    时间: 2016-4-3 22:53
本帖最后由 sysop 于 2016-4-3 23:39 编辑
2011yaya2007777 发表于 2016-4-3 22:39
grldr 在不在 ext4 分区?
我估计应当在前 1 Gb 范围.可以把磁盘前 1 Gb 打包上传.


不在ext4分区  在第四分区ntfs
刚才那个grldr.mbr被我不小心覆盖了 没了

grldr 我放在 ext4 分区试过 也不行
作者: sysop    时间: 2016-4-3 23:37
2011yaya2007777 发表于 2016-4-3 22:23
使用
blocklist /grldr
查看一下 grldr 在何处结束,可否把包含 grldr 文件在内的磁盘内容打包压缩传到某 ...

(hd0,0)ext2 界面无法输入呀 只有光标闪
blocklist /grldr
作者: 2011yaya2007777    时间: 2016-4-4 09:53
ext4分区没有grldr,知道了。那你把磁盘前1G打包压缩传上来。
作者: 2011yaya2007777    时间: 2016-4-4 10:11
1G=0x40000000字节,从WinHex可以看到。
作者: 不点    时间: 2016-4-4 11:57
我猜 yaya 想要的应该是 ext4 分区开头的 1G,而不是从 MBR 开始的 1G。


作者: 2011yaya2007777    时间: 2016-4-4 17:52
本帖最后由 2011yaya2007777 于 2016-4-4 19:16 编辑

带上mbr吧,要不还的我建立。因为 ext4 分区是第一分区.
作者: sysop    时间: 2016-4-4 22:04
本帖最后由 sysop 于 2016-4-6 20:26 编辑
2011yaya2007777 发表于 2016-4-4 17:52
带上mbr吧,要不还的我建立。因为 ext4 分区是第一分区.


我已经把第一分区格式化为ntfs了
因为照这样的分区和引导没法安装windows

不过 我把我装系统的方法在虚拟机重现了一遍
还是出现同样的问题
看来不是个例
就是安装deepin linux在第一分区
然后编辑grub.cfg引导 bootmgr
再由bootmgr引导grldr.mbr
把整个硬盘打包了 虚拟机挂载 或者windows挂载虚拟盘可直接查看
启动菜单windows就是grldr
链接:

说点题外的
我查了下 网上好的类似的 先装linux 后装windows会遇到很多问题
安装windows系统出现:”windows安装程序无法将windows配置为在此计算机的硬件上运行”
网上的教程
当出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\windows\system32\oobe文件夹,输入msoobe回车即可进入下一步操作。

试了下微软原版系统重启后还是不能启动 别人精简过的系统有的可以运行
作者: sysop    时间: 2016-4-4 22:26
这么分区还有一个比较烦人的是03PE基本都启动不了
因为大多是GRUB4DOS引导的
作者: 2011yaya2007777    时间: 2016-4-5 10:32
谢谢 sysop ,重现问题了!等待排查。
作者: sysop    时间: 2016-4-5 16:58
2011yaya2007777 发表于 2016-4-5 10:32
谢谢 sysop ,重现问题了!等待排查。

太客气了
应该是我们感谢yaya为我等研发GRUB4DOS启动
作者: 2011yaya2007777    时间: 2016-4-7 20:25
本帖最后由 2011yaya2007777 于 2016-4-8 09:37 编辑

已经修正,上传官网。
作者: sysop    时间: 2016-4-8 09:06
本帖最后由 sysop 于 2016-4-8 09:09 编辑
2011yaya2007777 发表于 2016-4-7 20:25
以及修正,上传官网。


我测试了下好像还有点问题
以第一分区为ext4,第二分区为ntfs为例
grldr放在ext4分区能正常读取启动没有问题,测试文件os_ext4.vhd
grldr放在ntfs分区,则卡死在try (hd0,0)ext2 ,没有往后边的分区继续查找,测试文件os_ntfs.vhd
下载链接:http://pan.baidu.com/s/1mhBkX1u密码:x3m5
作者: 2011yaya2007777    时间: 2016-4-9 09:11
再次修正,上传官网。感谢楼主多方面测试。
作者: 不点    时间: 2016-4-9 09:36
2011yaya2007777 发表于 2016-4-9 09:11
再次修正,上传官网。感谢楼主多方面测试。

http://grub4os.chenall.net 似乎已经被屏蔽,无法访问了。你最好上载到这里一份。
作者: sysop    时间: 2016-4-9 09:47
不点 发表于 2016-4-9 09:36
http://grub4os.chenall.net 似乎已经被屏蔽,无法访问了。你最好上载到这里一份。

http://grub4dos.chenall.net/
呵呵 少打了 一个字母
作者: sysop    时间: 2016-4-9 09:48
2011yaya2007777 发表于 2016-4-9 09:11
再次修正,上传官网。感谢楼主多方面测试。

辛苦了
可以启动了
作者: 不点    时间: 2016-4-9 09:56
sysop 发表于 2016-4-9 09:47
http://grub4dos.chenall.net/
呵呵 少打了 一个字母

你是说,你也访问不了?那就对了,证实了这个域名或网页确实被屏蔽了。

不过,我把它上载在这里,供大家下载测试。

grub4dos-0.4.6a-2016-04-09.7z.zip

499.3 KB, 下载次数: 12, 下载积分: 无忧币 -2

yaya 解决 ext4 分区搜索不到 grldr 死机问题


作者: sysop    时间: 2016-4-9 10:00
不点 发表于 2016-4-9 09:56
你是说,你也访问不了?那就对了,证实了这个域名或网页确实被屏蔽了。

不过,我把它上载在这里,供大 ...

我能访问
作者: 不点    时间: 2016-4-9 10:08
sysop 发表于 2016-4-9 10:00
我能访问

我多虑了。但愿只有我被屏蔽了。
作者: bdhwtp    时间: 2020-3-18 19:05
学习一下哈,前辈们。。。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3