无忧启动论坛

标题: cat 命令的奇怪现象! [打印本页]

作者: 2012guoguozhi    时间: 2012-10-22 15:54
标题: cat 命令的奇怪现象!
最近用 cat --hex(hd0) +1 此命令行想显示硬盘的第一扇区的内容,发现此扇区显示的内容居然没有活动标识80H。我的计算机mbr是 grub 0.97。grub4dos-0.4.4 装在win7 的启动管理器bcdedit中。grub 0.97 下不支持 cat --hex(hd0) +1  命令。只好在grub4dos-0.4.4中使用 cat --hex(hd0) +1此命令,发现调出的该扇区居然没有活动主分区80h标识,55AA标识是有的。我在想,此命令我用错了?还是调出的内容是主分区第一扇区的内容(pbr)呢? 我的机器win7是主分区(C盘),其余都是扩展分区!
     我恳请高手解释一下!万分感谢!
作者: sgw888    时间: 2012-10-22 15:57
看到分区表了吗? 有时候活动标志不是必须的.
作者: 2012guoguozhi    时间: 2012-10-22 16:14
我用winhex已经调出了主分区表,上面有第一主分区的80H标识啊?照你说的mbr不一定有80H标识,那没有活动分区,怎么引导?麻烦你再给解释一下!
作者: 2012guoguozhi    时间: 2012-10-22 16:25
我用winhex已调出了主分区表,有活动分区80h,照你说的,没有活动分区,怎么引导系统?
作者: 不点    时间: 2012-10-22 17:30
可能你搞错盘号了,这是经常容易犯错的地方。

cat --hex (hd0)+1
cat --hex (hd1)+1

hd0 有时候是 U 盘,有时候是硬盘。

当 hd0 是 U 盘时,hd1 是硬盘。
作者: 2012guoguozhi    时间: 2012-10-22 17:39
请教不点先生,grub4dos中MBR分区表中没有80H标识,可以引导系统吗?
作者: 不点    时间: 2012-10-22 17:45
标题: 回复 #6 2012guoguozhi 的帖子
那要看 MBR 的代码是谁的。如果 MBR 中的代码是 grub 的,那么即使没有激活标志也能引导系统。

如果 MBR 是微软的代码,那么似乎必须有激活标志,否则拒绝启动系统。
作者: 2012guoguozhi    时间: 2012-10-22 17:49
请教不点先生,grub4dos mbr 分区表中没有80h标识,可以启动系统吗?
作者: 2012guoguozhi    时间: 2012-10-22 17:54
标题: 回复 #7 不点 的帖子
这样说来!g4d与微软引导系统的方式不相同!请教g4d中stage1是不是g4d的mbr,而stage2呢?他们共占多少扇区?多谢!
作者: 不点    时间: 2012-10-22 18:25
grub4dos 不使用 stage1 和 stage2。

取而代之,grub4dos 使用的是 grldr.mbr 的启动方式。

grldr.mbr 有 18 个扇区,即 9K 的大小。

它从 BIOS 那里获得控制权,然后在所有的硬盘分区的根目录下寻找 grldr 并启动 grldr。
作者: 讯极天度    时间: 2012-10-22 22:15
为什么我在虚拟机里面读取不到硬盘的55AA,在PE下就可以呢?~难道是我的命令有问题,还是虚拟机不可以读取?

问.jpg (328.85 KB, 下载次数: 52)

问.jpg

作者: 讯极天度    时间: 2012-10-22 22:17
忘记说明一下了:G4D的版本是今天的,也就是2012-10-22,我用的命令是cat --hex(hd0) +1 ,512

有什么问题吗?楼主是怎么读取到了呢?
作者: 2012guoguozhi    时间: 2012-10-23 00:34
标题: 回复 #10 不点 的帖子
cat --hex(hd0) +1
cat --hex(hd0) +1
这两条命令我都试过了,都调不出硬盘的第一扇区。我是用winhex和RHEL5.5下的dd命令进行验证的,这两种方法的结果完全一致(查看16进制的代码),都可以调出第一扇区。那只能说明cat 的命令有问题!还是我的grub4dos的版本问题?我是在grub4dos-0.4.4-2009-01-11这个版本下用cat命令的,不知我的推断是否真确?
再次说明一下:
我的计算机mbr是 grub 0.97。grub4dos-0.4.4-2009-01-11 是装在win7 的启动管理器bcdedit中。我的机器win7是主分区(C盘),其余都是扩展分区!
作者: 不点    时间: 2012-10-23 06:16
楼上诸位,恕我直言,grub4dos 是严肃的技术,不是儿戏。
作者: zhaohj    时间: 2012-10-23 07:57
请严肃贴图

Snap1.jpg (178.24 KB, 下载次数: 47)

Snap1.jpg

作者: 讯极天度    时间: 2012-10-23 14:26
找到原因了 不是什么虚拟机的问题,只是一个空格的问题  
cat --skip=0x100 --hex (hd0)+1
在(hd0)+1之间不能有空格,有空格的话,就会出现我上楼贴图的现象!

[ 本帖最后由 讯极天度 于 2012-10-23 14:38 编辑 ]

解决.jpg (131.91 KB, 下载次数: 50)

解决.jpg

作者: 2012guoguozhi    时间: 2012-10-23 14:28
标题: 回复 #15 zhaohj 的帖子
万分感谢!我会认真总结失败的原因,多谢!
作者: 讯极天度    时间: 2012-10-23 14:43
标题: 回复 #13 2012guoguozhi 的帖子
是你命令错误 你这样写就可以了
cat --hex (hd0)+1
和你的区别在哪里呢?我简单说一下
cat --hex (hd0)+1 【正确】hex (hd0)之间有空格,(hd0)+1不能有空格
cat --hex(hd0) +1 【错误】
作者: 2012guoguozhi    时间: 2012-10-23 23:41
万分感激!我找到错误原因了。多谢!
作者: sgw888    时间: 2012-10-24 08:24
粗心啊.  楼主,我早就在QQ上跟你说过不能有空格,我单独指出来,你都不上心.




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