原帖由 不点 于 2012-5-3 16:33 发表
同意以上各位的分析。
建议做以下测试,或者也算是 workaround 吧(因为 NTFS 部分的代码不容易理解,估计只有等 bean 来解决了):
1. 建立多个 bootmgr,叫做 bootmgr1、bootmgr2、等等,用 chainloade ...
原帖由 不点 于 2012-5-3 16:33 发表
同意以上各位的分析。
建议做以下测试,或者也算是 workaround 吧(因为 NTFS 部分的代码不容易理解,估计只有等 bean 来解决了):
1. 建立多个 bootmgr,叫做 bootmgr1、bootmgr2、等等,用 chainloade ...
原帖由 不点 于 2012-5-3 16:33 发表
同意以上各位的分析。
建议做以下测试,或者也算是 workaround 吧(因为 NTFS 部分的代码不容易理解,估计只有等 bean 来解决了):
1. 建立多个 bootmgr,叫做 bootmgr1、bootmgr2、等等,用 chainloade ...
原帖由 不点 于 2012-5-3 19:51 发表
问题很严重,连续的文件竟然读错。
等待 chenall 或者 bean 来解决。本人身体差,而且不擅长解决 NTFS 的问题。
你可以用 cat --hex /bootmgr 来读扇区,与 Windows 下的 Winhex 读取的扇区进行对照,看看 ...
原帖由 2011131013 于 2012-5-3 21:54 发表
备份整个分区的所有扇区至另一硬盘不难。不过感觉备份单一分区也许不满足条件。因为该分区并非位于硬盘首,备份的分区在LBA换算后的扇区应该并不相同而造成未必同一故障。
呵呵,看情况吧,有可能的话尽 ...
原帖由 2011131013 于 2012-5-3 22:33 发表
自己编译就真的搞不了了,对我来说真的很难。
问一个问题:blocklist /bootmgr后得到的数据22901416 +750前面部分是指什么?相对本分区的扇区偏移还是相对硬盘0扇区的偏移还是其它?后面的750理解是bootmgr文 ...
原帖由 不点 于 2012-5-4 00:34 发表
你还真得试试 31 楼所说。
确认读扇区序列是正确的。可以用 cat --hex 显示这个扇区序列,看看它到底与 bootmgr 的真实内容一样还是不一样。
如果不一样,则问题确实出在 int13 上,即,BIOS 的错。
呵呵,知道,这个BOOTMGR已经是重点保护对象。不过只怕万一操作失误
不过从offset 379392(0x5ca00)上看,出错的扇区应该在文件尾部。0x1--0x2e4扇区读取正确,0x2e5扇区开始错误?(379392=0x5ca00 /0x200=0x2E5)
cat -hex查看后的确从0x5ca00开始读取出错,截了图,但附件大小限制,压缩成不成形都达不到附件要求,所以不上传了。
原帖由 不点 于 2012-5-4 01:13 发表
bios 通常发生极限错误,即,超过某个极限时出错。
但也有可能在临近某个特殊的位置时发生错误,比如,靠近 8.4G 附近。一切皆有可能。比如,有可能是 grub4dos 自己在 8.4G 附近出错。这都需要有证据,有验 ...
原帖由 不点 于 2012-5-4 01:45 发表
你可以用 grub4dos 的 dd 命令把 16376424+750 复制到某个文件中。再进入 Windows 比较这个文件与 Winhex 显示的绝对磁盘扇区 16376424+750 是否一致。如果不相同,就证明 grub4dos 的读操作含有 bug。
grub4dos 也是使用类似的做法
54.png (9.52 KB, 下载次数: 139)
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |