无忧启动论坛

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

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

[复制链接]
1#
发表于 2013-5-17 06:59:12 | 显示全部楼层
write 命令支持直接写设备吗?你的用法是从哪里学来的?

你是不是需要这样:

write  offset=10000  (hd0)+63  abc

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

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

回复

使用道具 举报

2#
发表于 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 这个字符串?

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


回复

使用道具 举报

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

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



回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-20 13:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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