无忧启动论坛

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

[求助] GRUB4DOS能不能把文件内容写到指定扇区

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-27 16:44:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
找了很久都没找到答案,教程上也没有把文件写到指定扇区的,想请教一下前辈。
假如我有个文件名为1的文件大小1KB文件内容写入X,X+1扇区
命令该怎样写呢?

[ 本帖最后由 幻想ζ风 于 2012-8-27 20:40 编辑 ]
2#
发表于 2012-8-27 17:37:46 | 只看该作者
2005 年注册,只发了 8 个帖子。

先读一下教程吧。别让教程躺在那里睡大觉。

dd 命令和 write 命令都可以写盘。磁盘的数据单位是扇区和字节。至于说写多少进制的,那只是用法的问题。学会使用命令就行了。
回复

使用道具 举报

3#
 楼主| 发表于 2012-8-27 18:12:12 | 只看该作者

回复 #2 不点 的帖子

呵,谢谢。
一直在看说明,在学习中呢。
号是注册了很久,也很久没登陆了
回复

使用道具 举报

4#
发表于 2012-8-27 21:09:08 | 只看该作者
dd if=1 of=(md)x+1
回复

使用道具 举报

5#
 楼主| 发表于 2012-8-27 21:22:01 | 只看该作者

回复 #4 2011895866818 的帖子

谢谢,一会测试一下。
回复

使用道具 举报

6#
发表于 2012-8-27 22:48:16 | 只看该作者

回复 #4 2011895866818 的帖子

dd 命令中的文件名必须是绝对路径,必须有设备名部分,即带括号“( )” 的部分。

if=1 是不行的,应该是 if=(...)/.../... 或者 if=(...)XXXXXXXX+YYYYYYYY 这样的格式。

(md) 是“内存设备”。of=(md)... 是打算写入内存。

读读教程应该都有详细解释的。

写盘是很强大的命令,因此很危险。即使读了教程都危险,更何况不读教程,那危险性又增大无穷多倍。

技术本身就有它固有的危险性,不要把它当成玩具汽车的游戏(撞车也没事)。

[ 本帖最后由 不点 于 2012-8-27 23:00 编辑 ]
回复

使用道具 举报

7#
发表于 2012-8-28 00:10:15 | 只看该作者
数据无价,不知道楼主要实现什么功能,一定要写物理磁盘吗?
或者也许有其他变通的方法,安全一些。
回复

使用道具 举报

8#
 楼主| 发表于 2012-8-28 00:26:03 | 只看该作者

回复 #7 Plantsoot 的帖子

必须写到物理盘。dd if=(hd0,0)/boot/1 of=(hd0)X+1X为WinHex查看到的扇区在GRUB4DOS下写入扇区位置不对。不知道还有什么方法没有。

[ 本帖最后由 幻想ζ风 于 2012-9-16 03:48 编辑 ]
回复

使用道具 举报

9#
发表于 2012-8-28 01:49:34 | 只看该作者
WinHex查看到的扇区?

究竟是相对于硬盘 MBR 的呢?还是相对于分区 PBR 的呢?

前者是 (hd0)X+1, 后者则是 (hd0,Y)X+1,Y 是分区的号码。

多学点 grub4dos 的基础知识,避免犯低级错误毁掉你的盘。

感觉你舍不得花费时间仔细看教程。我感觉迟早你的盘要被你毁掉。
回复

使用道具 举报

10#
 楼主| 发表于 2012-8-28 02:02:36 | 只看该作者

回复 #9 不点 的帖子

正在努力学习,教程也在看
没找到这样的实例,看得不太明白
WinHex选择的是打开物理驱动器查看
用BOOTICE查看同一扇区内容和 WinHex的一样
硬盘上也只有一个分区
盘我是做测试用的,没什么资料

[ 本帖最后由 幻想ζ风 于 2012-8-28 02:39 编辑 ]
回复

使用道具 举报

11#
发表于 2012-8-28 03:56:04 | 只看该作者
建议你先不要试着写。首先试着读,如果读取的扇区内容正确,你再尝试写。

还有一种可能:你所用的 grub4dos 版本有 bug。

你可以先读第 0 扇区(最开头的扇区),成功后读第 10 扇区,再成功后读第 100,看看最大可以读取多少扇区。

  1. cat    --hex    (hd0)N+1
复制代码


命令可以读取第 N 扇区,显示在屏幕上。你可以把它与 WinHex 显示的扇区数据进行对比,如果相同,就表示读第 N 扇区成功了。

如果都读成功了,你再尝试用 dd 命令去写扇区。写完后还可以用 cat 来查看是否真的写入了。
回复

使用道具 举报

12#
 楼主| 发表于 2012-8-28 09:52:46 | 只看该作者

回复 #11 不点 的帖子

好的,谢谢。
一会就做测试
回复

使用道具 举报

13#
 楼主| 发表于 2012-8-28 15:07:05 | 只看该作者
原帖由 不点 于 2012-8-28 03:56 发表 建议你先不要试着写。首先试着读,如果读取的扇区内容正确,你再尝试写。还有一种可能:你所用的 grub4dos 版本有 bug。你可以先读第 0 扇区(最开头的扇区),成功后读第 10 扇区,再成功后读第 100, ...
cat --hex 命令一直到BOOTICE和WinHex查看到的总扇区数不一样

[ 本帖最后由 幻想ζ风 于 2012-9-16 03:53 编辑 ]
回复

使用道具 举报

14#
发表于 2012-8-28 16:50:37 | 只看该作者
你的主板 BIOS 可能有 bug,它不能访问超过 128G 以后的内容。以前讨论过很多次,这样的主板有很多。

grub4dos 只是借助主板 BIOS 来访问硬盘的。如果主板 BIOS 有 bug,那 grub4dos 也无能为力。

这条路走不通,你寻找其它办法吧。
回复

使用道具 举报

15#
 楼主| 发表于 2012-8-28 17:00:17 | 只看该作者

回复 #14 不点 的帖子

可能是有BUG吧
BIOS我自己改过
硬盘小于80G
回复

使用道具 举报

16#
发表于 2012-8-28 17:20:40 | 只看该作者
情况就是这样,你自己看着办吧。
回复

使用道具 举报

17#
 楼主| 发表于 2012-8-29 02:42:17 | 只看该作者

回复 #16 不点 的帖子

不知道除了GRUB4DOS或许在WINDOWS下用WinHex类似的软件修改外
还有没有别的方法跟GRUB4DOS一样在启动时候实现呢?
回复

使用道具 举报

18#
发表于 2012-8-29 04:44:47 | 只看该作者
grub4dos 之所以不行,主要是因为同时满足了两个条件:

1、grub4dos 完全依赖主板 BIOS

2、偏偏这 BIOS 就有毛病。

如果任何一个条件不成立,那么 grub4dos 就搞定了。

GRUB2 是一个选择。它突破第一条,用自己的硬盘驱动程序来做,不再依赖 BIOS。所以,即使 BIOS 有毛病,也能顺利访问到硬盘的任意一个角落。

不动手是不行的,你自己研究吧。
回复

使用道具 举报

19#
 楼主| 发表于 2012-8-29 08:19:53 | 只看该作者

回复 #18 不点 的帖子

好的,谢谢

[ 本帖最后由 幻想ζ风 于 2012-9-16 03:53 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 14:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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