sysop 发表于 2016-3-30 08:32:10

如何编辑.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进制看不懂呀。

sysop 发表于 2016-3-30 08:35:43

想装个xp,电脑没有多余的分区了
一直没成功 引导都搞不定
最接近成功的一次用“ 抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD” 出来xp启动滚动条不动了。。。

fuldho 发表于 2016-3-30 10:11:52

WinHex

sysop 发表于 2016-3-30 10:15:31

fuldho 发表于 2016-3-30 10:11
WinHex

怎么找到hd0,0呢?

chenall 发表于 2016-3-30 10:39:24

以下资料来自grub4dos_readme


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

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

偏移量长度    说明

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

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

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

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

                  第 4 位到第 6 位:被保留

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

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


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

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

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

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

                        (hd0,0), (hd0,1), ..., (hd0,L),(L=max partition number)
                        (hd1,0), (hd1,1), ..., (hd1,M),(M=max partition number)
                        ... ... ... ... ... ... ... ...
                        (hdX,0), (hdX,1), ..., (hdX,N),(N=max partition number)
                                                     (X=max harddrive number)
                        (fd0)

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

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

sysop 发表于 2016-3-30 12:21:16

chenall 发表于 2016-3-30 10:39
以下资料来自grub4dos_readme

谢谢 我试试

2011yaya2007777 发表于 2016-3-30 14:51:36

我电脑第一分区是ext4分区
请把这个磁盘的 MBR 1扇区,以及 ext4 分区从 0x400 起始的2扇区打包上来。

sysop 发表于 2016-3-30 15:53:49

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

呵呵

2011yaya2007777 发表于 2016-3-30 16:19:22

ext4.bin 没有内容,不对。
你把 ext4 分区 复制 0x1000 字节。

sysop 发表于 2016-3-31 08:15:28

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

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

2011yaya2007777 发表于 2016-3-31 08:22:23

从 MBR 看,第一分区在 0x3f 扇区,即 0x7e00 字节处,这应当是 ext4 分区吧。
复制 0x7e00 到 0x8e00 之间的内容。

sysop 发表于 2016-3-31 10:59:44

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

{:3_137:}

2011yaya2007777 发表于 2016-3-31 12:45:43

普通的 ext4 32位分区,应当能启动。你使用 的 grldr 版本是?

sysop 发表于 2016-3-31 18:12:15

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:04

哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?

sysop 发表于 2016-3-31 20:17:28

2011yaya2007777 发表于 2016-3-31 20:07
哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?

除grub2外其余引导文件 系统都在 第四分区 ntfs
不是启动 (hd0,0)
是启动第四分区 搜到 (hd0,0)时候卡住了
{:3_137:}
具体日期我忘了 用的别人的模板
我试试最新版哈

sysop 发表于 2016-3-31 20:32:13

2011yaya2007777 发表于 2016-3-31 20:07
哪年哪月的?
什么地方的 grldr 用来启动 (hd0,0)?

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

不点 发表于 2016-3-31 20:34:36

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:06

还是一头雾水。是某个启动程序,首先启动第四分区的 grldr.mbr ,然后从第四分区 搜到 (hd0,0)时候卡住了?

lsc1117 发表于 2016-3-31 21:57:26

16位进制编码器

不点 发表于 2016-3-31 22:01:38

本帖最后由 不点 于 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:41

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:50

不点 发表于 2016-3-31 22:01
他说的不太清楚。我猜,他是说:

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

恩 就是这个意思

sysop 发表于 2016-3-31 23:12:54

不点 发表于 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:47

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:41

本帖最后由 2011yaya2007777 于 2016-4-3 22:12 编辑

请楼主测试:

sysop 发表于 2016-4-3 22:06:12

2011yaya2007777 发表于 2016-4-3 21:39
请楼主测试:

卡在try (hd0,0)ext2不能启动
O(∩_∩)O~

2011yaya2007777 发表于 2016-4-3 22:23:03

使用
blocklist /grldr
查看一下 grldr 在何处结束,可否把包含 grldr 文件在内的磁盘内容打包压缩传到某处?

2011yaya2007777 发表于 2016-4-3 22:39:45

grldr 在不在 ext4 分区?
我估计应当在前 1 Gb 范围.可以把磁盘前 1 Gb 打包上传.

sysop 发表于 2016-4-3 22:53:50

本帖最后由 sysop 于 2016-4-3 23:39 编辑

2011yaya2007777 发表于 2016-4-3 22:39
grldr 在不在 ext4 分区?
我估计应当在前 1 Gb 范围.可以把磁盘前 1 Gb 打包上传.

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

grldr 我放在 ext4 分区试过 也不行
页: [1] 2
查看完整版本: 如何编辑.mbr文件?