无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3954|回复: 19
打印 上一主题 下一主题

cat 命令的奇怪现象!

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-22 15:54:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用 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盘),其余都是扩展分区!
     我恳请高手解释一下!万分感谢!
2#
发表于 2012-10-22 15:57:26 | 只看该作者
看到分区表了吗? 有时候活动标志不是必须的.
回复

使用道具 举报

3#
 楼主| 发表于 2012-10-22 16:14:20 | 只看该作者
我用winhex已经调出了主分区表,上面有第一主分区的80H标识啊?照你说的mbr不一定有80H标识,那没有活动分区,怎么引导?麻烦你再给解释一下!
回复

使用道具 举报

4#
 楼主| 发表于 2012-10-22 16:25:54 | 只看该作者
我用winhex已调出了主分区表,有活动分区80h,照你说的,没有活动分区,怎么引导系统?
回复

使用道具 举报

5#
发表于 2012-10-22 17:30:34 | 只看该作者
可能你搞错盘号了,这是经常容易犯错的地方。

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

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

当 hd0 是 U 盘时,hd1 是硬盘。
回复

使用道具 举报

6#
 楼主| 发表于 2012-10-22 17:39:23 | 只看该作者
请教不点先生,grub4dos中MBR分区表中没有80H标识,可以引导系统吗?
回复

使用道具 举报

7#
发表于 2012-10-22 17:45:01 | 只看该作者

回复 #6 2012guoguozhi 的帖子

那要看 MBR 的代码是谁的。如果 MBR 中的代码是 grub 的,那么即使没有激活标志也能引导系统。

如果 MBR 是微软的代码,那么似乎必须有激活标志,否则拒绝启动系统。
回复

使用道具 举报

8#
 楼主| 发表于 2012-10-22 17:49:33 | 只看该作者
请教不点先生,grub4dos mbr 分区表中没有80h标识,可以启动系统吗?
回复

使用道具 举报

9#
 楼主| 发表于 2012-10-22 17:54:55 | 只看该作者

回复 #7 不点 的帖子

这样说来!g4d与微软引导系统的方式不相同!请教g4d中stage1是不是g4d的mbr,而stage2呢?他们共占多少扇区?多谢!
回复

使用道具 举报

10#
发表于 2012-10-22 18:25:24 | 只看该作者
grub4dos 不使用 stage1 和 stage2。

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

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

它从 BIOS 那里获得控制权,然后在所有的硬盘分区的根目录下寻找 grldr 并启动 grldr。
回复

使用道具 举报

11#
发表于 2012-10-22 22:15:45 | 只看该作者
为什么我在虚拟机里面读取不到硬盘的55AA,在PE下就可以呢?~难道是我的命令有问题,还是虚拟机不可以读取?

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

问.jpg
回复

使用道具 举报

12#
发表于 2012-10-22 22:17:00 | 只看该作者
忘记说明一下了:G4D的版本是今天的,也就是2012-10-22,我用的命令是cat --hex(hd0) +1 ,512

有什么问题吗?楼主是怎么读取到了呢?
回复

使用道具 举报

13#
 楼主| 发表于 2012-10-23 00:34:18 | 只看该作者

回复 #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盘),其余都是扩展分区!
回复

使用道具 举报

14#
发表于 2012-10-23 06:16:17 | 只看该作者
楼上诸位,恕我直言,grub4dos 是严肃的技术,不是儿戏。
回复

使用道具 举报

15#
发表于 2012-10-23 07:57:44 | 只看该作者
请严肃贴图

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

Snap1.jpg
回复

使用道具 举报

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

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

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

解决.jpg
回复

使用道具 举报

17#
 楼主| 发表于 2012-10-23 14:28:44 | 只看该作者

回复 #15 zhaohj 的帖子

万分感谢!我会认真总结失败的原因,多谢!
回复

使用道具 举报

18#
发表于 2012-10-23 14:43:27 | 只看该作者

回复 #13 2012guoguozhi 的帖子

是你命令错误 你这样写就可以了
cat --hex (hd0)+1
和你的区别在哪里呢?我简单说一下
cat --hex (hd0)+1 【正确】hex (hd0)之间有空格,(hd0)+1不能有空格
cat --hex(hd0) +1 【错误】
回复

使用道具 举报

19#
 楼主| 发表于 2012-10-23 23:41:42 | 只看该作者
万分感激!我找到错误原因了。多谢!
回复

使用道具 举报

20#
发表于 2012-10-24 08:24:24 | 只看该作者
粗心啊.  楼主,我早就在QQ上跟你说过不能有空格,我单独指出来,你都不上心.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 10:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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