无忧启动论坛

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

关于 syslinux 特殊磁盘格式,谈个人看法(非开发团队成员勿入)

  [复制链接]
跳转到指定楼层
1#
发表于 2014-7-17 11:11:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 不点 于 2014-7-18 08:19 编辑

我主要是想把我的想法与 chenall 以及开发团队成员分享,但也不完全限于这个范围。曾经为 grub4dos 做过工作的人,都可以进来了解我的想法。我主要是不想让有些人又是讽刺,又是挖苦,干扰论坛正常秩序。因为不容易有个什么标准来判断谁是正常发言,而谁是在捣乱,所以,我强调 “非开发团队成员勿入”。其实真正的目的是不想让那些捣乱者发言而已。请管理员和版主自己判断究竟应该怎样对待本帖里面的每个发言。我是自说自话,谈我的看法。主要目的是让开发团队成员了解我的想法,仅此而已。因此,我不要求有人来回复我的帖子。愿意回复就回复,不愿意回复就不回复。当您回复的时候,我理解为,您也是想让别人了解您的想法。所以,没有谁是正确、谁是错误之分,只有理解的不同罢了。观点相同,属于正常;观点不同,同样属于正常。

最近在 reboot.pro (我们的英文论坛)上报告了 syslinux 奇怪的启动方式。我现在身体状况不是太好,不能够对所报告的 syslinux 扇区引导代码进行反汇编和研究。但它的确很奇怪,这个硬盘分区 (hd0,1) 的 FAT32 引导扇区的偏移 0x1C 处的 hidden_sectors=0,这本来是错误的,它应该是这个分区之前的扇区总数才对。grub4dos 检测出这个错误,拒绝启动它。用户手动把 hidden_sectors 修正为正确的值,此时 grub4dos 不再报错。但用 chainloader (hd0,1)+1 和 boot 命令把控制交给这个引导扇区之后,启动失败,显示 “boot error”(这条信息是 syslinux 的引导扇区发出的)。用户还有一个奇怪发现,就是用 chainloader (hd0,1)+2 可以顺利启动。如果对扇区进行反汇编,肯定可以找到它的技术秘密。

最起码我直观上可以判断出,syslinux 引入了新的规范,或者说它创造了新的规范。它在打破微软多年来所建立的事实工业标准,而另立一套新的标准。

什么叫发展?什么叫破坏标准?这是一个哲学问题。不同的视角有不同的看法。站在我的角度,我看到的是破坏标准的成分多。我认为,当你能够避免破坏标准的时候,你不去尽量避免破坏标准,而是随便建立新的标准,破坏已有标准,那就不是发展,而是破坏。我理解不动,这个引导程序为何写得让 chainloader (hd0,1)+1 在修正 hidden sectors 之后产生失败。因此,在我看来,不能排除另外一种可能性,即:开发团队混入间谍故意制造不兼容性。而且以往 syslinux 也有多次让 chainloader (...)/isolinux.bin 失败的情况。我当时研究 syslinux 为何要改变 isolinux.bin 的格式时,凭我的能力,我找不出改变格式的必然理由;我感觉,如果有理由的话,那理由似乎就是让 grub4dos 的 chainloader 失败。今次又出现这样的问题,我觉得是十分可疑的,这个案例更强化了我的那种判断。

补充强调一下。这个情况是上了 “双保险” 的。第一道保险,是用 hidden sectors=0 来阻止 grub4dos 去启动它。第二道保险是,一旦用户纠正 hidden sectors 而试图让 grldr 去启动,扇区代码接管控制后照样失败【非得用两个扇区才能成功,这已经超出常规了,而且这是高手们 hack 之后的偶然发现,而这是否具有一般性,还不知道,即,在别的机器上是否行得通,是不清楚的】。前面说了,任何事情,在哲学上都可能有很多种不同的理解。而我的理解就是这样的。
2#
发表于 2014-7-18 09:25:53 | 只看该作者
我只是个新手, 对汇编比较感兴趣, 不过也正式学过了

哲学上我觉得syslinux完全可以兼容g4d等, 目前只能说g4d的影响力还不够大, 不能让他们开发的时候考虑引入的变化是否会对某些其它东西造成影响, 或者也可能他们知道了但不在乎. 对此我有点悲观, 毕竟在有efi的情况下g4d的影响力总会变弱, 看以后的发展吧.

就0x1C处error的问题, 可以考虑修改chainloader吧, 但不太好. 我觉得可靠的办法是手动读入第1个扇区到内存, 修改0x1C处为0, 然后chainloader --raw (rd)+1
不确定这样能否成功, 但也算是一个常见的思路吧.
我英文略捉急, 没在reboot.pro里找到您说的那个报告, 不知能否麻烦您把syslinux的那2个扇区打包作为附件传到论坛上?
我觉得只有不到1024字节的话, 我会有时间看的, 谢谢~
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-22 07:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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