无忧启动论坛

标题: GRUB4DOS能不能把文件内容写到指定扇区 [打印本页]

作者: 幻想ζ风    时间: 2012-8-27 16:44
标题: GRUB4DOS能不能把文件内容写到指定扇区
找了很久都没找到答案,教程上也没有把文件写到指定扇区的,想请教一下前辈。
假如我有个文件名为1的文件大小1KB文件内容写入X,X+1扇区
命令该怎样写呢?

[ 本帖最后由 幻想ζ风 于 2012-8-27 20:40 编辑 ]
作者: 不点    时间: 2012-8-27 17:37
2005 年注册,只发了 8 个帖子。

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

dd 命令和 write 命令都可以写盘。磁盘的数据单位是扇区和字节。至于说写多少进制的,那只是用法的问题。学会使用命令就行了。
作者: 幻想ζ风    时间: 2012-8-27 18:12
标题: 回复 #2 不点 的帖子
呵,谢谢。
一直在看说明,在学习中呢。
号是注册了很久,也很久没登陆了
作者: 2011895866818    时间: 2012-8-27 21:09
dd if=1 of=(md)x+1
作者: 幻想ζ风    时间: 2012-8-27 21:22
标题: 回复 #4 2011895866818 的帖子
谢谢,一会测试一下。
作者: 不点    时间: 2012-8-27 22:48
标题: 回复 #4 2011895866818 的帖子
dd 命令中的文件名必须是绝对路径,必须有设备名部分,即带括号“( )” 的部分。

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

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

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

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

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

[ 本帖最后由 不点 于 2012-8-27 23:00 编辑 ]
作者: Plantsoot    时间: 2012-8-28 00:10
数据无价,不知道楼主要实现什么功能,一定要写物理磁盘吗?
或者也许有其他变通的方法,安全一些。
作者: 幻想ζ风    时间: 2012-8-28 00:26
标题: 回复 #7 Plantsoot 的帖子
必须写到物理盘。dd if=(hd0,0)/boot/1 of=(hd0)X+1X为WinHex查看到的扇区在GRUB4DOS下写入扇区位置不对。不知道还有什么方法没有。

[ 本帖最后由 幻想ζ风 于 2012-9-16 03:48 编辑 ]
作者: 不点    时间: 2012-8-28 01:49
WinHex查看到的扇区?

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

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

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

感觉你舍不得花费时间仔细看教程。我感觉迟早你的盘要被你毁掉。
作者: 幻想ζ风    时间: 2012-8-28 02:02
标题: 回复 #9 不点 的帖子
正在努力学习,教程也在看
没找到这样的实例,看得不太明白
WinHex选择的是打开物理驱动器查看
用BOOTICE查看同一扇区内容和 WinHex的一样
硬盘上也只有一个分区
盘我是做测试用的,没什么资料

[ 本帖最后由 幻想ζ风 于 2012-8-28 02:39 编辑 ]
作者: 不点    时间: 2012-8-28 03:56
建议你先不要试着写。首先试着读,如果读取的扇区内容正确,你再尝试写。

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

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

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


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

如果都读成功了,你再尝试用 dd 命令去写扇区。写完后还可以用 cat 来查看是否真的写入了。
作者: 幻想ζ风    时间: 2012-8-28 09:52
标题: 回复 #11 不点 的帖子
好的,谢谢。
一会就做测试
作者: 幻想ζ风    时间: 2012-8-28 15:07
原帖由 不点 于 2012-8-28 03:56 发表 建议你先不要试着写。首先试着读,如果读取的扇区内容正确,你再尝试写。还有一种可能:你所用的 grub4dos 版本有 bug。你可以先读第 0 扇区(最开头的扇区),成功后读第 10 扇区,再成功后读第 100, ...
cat --hex 命令一直到BOOTICE和WinHex查看到的总扇区数不一样

[ 本帖最后由 幻想ζ风 于 2012-9-16 03:53 编辑 ]
作者: 不点    时间: 2012-8-28 16:50
你的主板 BIOS 可能有 bug,它不能访问超过 128G 以后的内容。以前讨论过很多次,这样的主板有很多。

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

这条路走不通,你寻找其它办法吧。
作者: 幻想ζ风    时间: 2012-8-28 17:00
标题: 回复 #14 不点 的帖子
可能是有BUG吧
BIOS我自己改过
硬盘小于80G
作者: 不点    时间: 2012-8-28 17:20
情况就是这样,你自己看着办吧。
作者: 幻想ζ风    时间: 2012-8-29 02:42
标题: 回复 #16 不点 的帖子
不知道除了GRUB4DOS或许在WINDOWS下用WinHex类似的软件修改外
还有没有别的方法跟GRUB4DOS一样在启动时候实现呢?
作者: 不点    时间: 2012-8-29 04:44
grub4dos 之所以不行,主要是因为同时满足了两个条件:

1、grub4dos 完全依赖主板 BIOS

2、偏偏这 BIOS 就有毛病。

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

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

不动手是不行的,你自己研究吧。
作者: 幻想ζ风    时间: 2012-8-29 08:19
标题: 回复 #18 不点 的帖子
好的,谢谢

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




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