有关dd写文件的问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
duanius
帖子: 80
注册时间: 2006-10-01 23:59

有关dd写文件的问题

#1

帖子 duanius » 2007-11-03 9:15

有一个软盘的境像image文件 1.44M 和一个引导记录512k
想把引导记录boot.bin写到软盘境像1.44.image里(确切的说是把512k的引导记录写到1.。44M软盘镜像的第一扇区里)
使用dd命令: dd if=/home/duanius/Desktop/boot.bin of=/home/duanius/Desktop/1.44.image bs=512 count=1
但结果执行后 1.44M的境像变成了512k 我只是想将境像的前512k字节用dd写入 结果境像只剩512了

dd命令正确的做法该如何呢?

好像小文件dd往大文件写结果大文件都变成小文件了。。。仅仅是想复写小文件大小的字节该如何做呢
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市

#2

帖子 Nile » 2007-11-03 10:18

结果执行后 1.44M的境像变成了512k 我只是想将境像的前512k字节用dd写入 结果境像只剩512了
你看错了,bs的默认单位是byte,输出文件怎么会是512k?

看看这两个dd参数
skip=blocks
在拷贝之前,跳过输入文件的前 blocks 块,每块大小为 ibs-byte 字节。
seek=blocks
在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节。
count=blocks
知道怎么办了吧。
Thinkpad T400
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市

#3

帖子 Nile » 2007-11-03 10:22

还有一个办法,不加of时,dd会输出到标准输出,用输出重定向和skip参数把boot.bin的512byte后内容追加到1.44.image 里
Thinkpad T400
duanius
帖子: 80
注册时间: 2006-10-01 23:59

#4

帖子 duanius » 2007-11-03 10:47

谢谢高手 回去研究下
duanius
帖子: 80
注册时间: 2006-10-01 23:59

#5

帖子 duanius » 2007-11-09 9:50

dd if=boot.bin of=boot1.img bs=512 count=1 conv=notrunc

找到方法了 应该这么做
回复