无忧启动论坛

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

[求助] GRUB怎么得到(hd0)的总扇区数??

[复制链接]
跳转到指定楼层
1#
发表于 2013-5-17 00:36:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
2#
 楼主| 发表于 2013-5-17 00:58:25 | 只看该作者
本帖最后由 wh5486 于 2013-5-17 01:02 编辑

write offset=10000 (hd0) abc
为什么无效
cat --hex (hd0)9999+4 看不到改动
grub0。4。6a 2013-4-6版本
回复

使用道具 举报

3#
发表于 2013-5-17 06:59:12 | 只看该作者
write 命令支持直接写设备吗?你的用法是从哪里学来的?

你是不是需要这样:

write  offset=10000  (hd0)+63  abc

还有一个问题,你写的偏移是 10000,这是按字节数计算的。但你读的偏移是 (hd0)9999+4 ,这可是从 9999 扇区开始的 4 个扇区了。差了很远很远。

假如你贸然写入第 10000 扇区,你的硬盘是不是想废掉?你怎么知道,你写的那个位置不是你的系统文件?你想破坏你的系统?

回复

使用道具 举报

4#
 楼主| 发表于 2013-5-17 10:27:28 | 只看该作者
本帖最后由 wh5486 于 2013-5-17 10:34 编辑

谢谢不点老大指教。。
图片中最后的 OR device 是指设备吗?
我想在(hd0) 某个扇区写入 abc 该怎么写?
(hd0)+63 指的是啥?

GRUB怎么得到(hd0)的总扇区数??

111.png (7.26 KB, 下载次数: 27)

111.png
回复

使用道具 举报

5#
 楼主| 发表于 2013-5-17 10:28:44 | 只看该作者
本帖最后由 wh5486 于 2013-5-17 10:34 编辑
不点 发表于 2013-5-17 06:59
write 命令支持直接写设备吗?你的用法是从哪里学来的?

你是不是需要这样:


求指教
谢谢不点老大指教。。
图片中最后的 OR device 是指设备吗?
我想在(hd0) 某个扇区写入 abc 该怎么写?
(hd0)+63 指的是啥?

GRUB怎么得到(hd0)的总扇区数??

111.png (7.26 KB, 下载次数: 22)

111.png
回复

使用道具 举报

6#
发表于 2013-5-17 10:47:09 | 只看该作者
wh5486 发表于 2013-5-17 10:28
求指教
谢谢不点老大指教。。
图片中最后的 OR device 是指设备吗?

(hd0)+63 指的是hd0的第六十三个扇区   扇区总数可以看截图  红线位置

不熟悉命令的话不建议直接向硬盘指定扇区写东西  没准会破坏什么

回复

使用道具 举报

7#
 楼主| 发表于 2013-5-17 10:54:46 | 只看该作者
sratlf 发表于 2013-5-17 10:47
(hd0)+63 指的是hd0的第六十三个扇区   扇区总数可以看截图  红线位置

不熟悉命令的话不建议直接向硬盘 ...

复习write用法:
write [--offset=SKIP] ADDR_OR_FILE INTEGER_OR_STRING

SKIP 是一个整数,默认值是 0 。

如果 ADDR_OR_FILE 选项被指定为一个整数,那么它被作为一个内存地址对待,
并且 INTEGER_OR_STRING 选项也必须是一个整数值。整数 INTEGER_OR_STRING 将被写入(ADDR_OR_FILE 加上 SKIP 值)的地址处。
如果 ADDR_OR_FILE选项 指定的是一个设备或一个文件,那么INTEGER_OR_STRING 选项将被作为一个字符串对待,它将被写入跳过 SKIP 个字节(字节计数)的指定的设备或文件当中。

这个是在GRUB帮助中看到的..可以写的硬盘指定扇区..我试了好几次..一直不行...求指点个实例
回复

使用道具 举报

8#
发表于 2013-5-17 10:54:47 | 只看该作者
不错,刚才看了最新代码,确实支持写入设备。不过这样更要小心了。

如果我没记错的话,dd 和 write 是仅有的支持直接写入设备的命令。

用 (hd0)+63 就是文件的表示法。你可以参看 grub 相关文档,了解什么是设备,什么是文件。

(hd0)+63 代表 (hd0) 最开头的 63 个扇区。这就是 MBR 磁道,通常不被分区占据。

如果直接用设备名 (hd0),它代表整个硬盘。一旦出错,你就有可能写到分区数据里面了,造成不可挽回的损失,比如,你的 Windows 启动不了了。

不敢随便写着玩啊!

先好好学习 grub4dos 的教程,然后再来写盘。

write offset=10000  (hd0)  abc

你的这条 write 命令,应该已经成功写入了 abc 字符串在硬盘的偏移 10000 处。这个 10000 是字节数,不是扇区数。

你自己计算一下,它在哪个扇区中。10000 / 512 = 19 多一点, 大约在第 20 个扇区,也就是扇区号为 19 的扇区中。

你用 cat --hex (hd0)19+1 就可以把这个扇区显示出来,看看里面有没有 abc 这个字符串?

我的计算也可能有错误,你自己仔细计算吧。


回复

使用道具 举报

9#
 楼主| 发表于 2013-5-17 10:59:32 | 只看该作者
不点 发表于 2013-5-17 10:54
不错,刚才看了最新代码,确实支持写入设备。不过这样更要小心了。

如果我没记错的话,dd 和 write 是仅 ...

不解中啊 .......昨天半夜好像可以的 ....现在提示参数错误?

222.png (13.88 KB, 下载次数: 16)

222.png
回复

使用道具 举报

10#
 楼主| 发表于 2013-5-17 11:01:18 | 只看该作者
本帖最后由 wh5486 于 2013-5-17 12:35 编辑

已搞定。。没带--。自己马虎了
回复

使用道具 举报

11#
发表于 2013-5-17 11:03:39 | 只看该作者
offset 应该是 --offset,你没看你自己前面贴的 help write 图片吗?这么粗心,可是危险!!更不敢随便写盘!!

你可以拿一个虚拟机来练习,写坏了没关系。



回复

使用道具 举报

12#
发表于 2013-5-17 11:33:10 | 只看该作者
GRUB文档   WRITE DD
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 13:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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