原文转自:[Linux命令]dd,我略加修改。
功能:把指定的输入文件(或设备文件)拷贝到指定的输出文件(或设备文件)中,并且在拷贝过程中可以进行格式转换,可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写到硬盘上的一个映象文件,再把这个映象文件写入第二张软盘上,完成diskcopy的功能。系统默认使用标准输入文件和标准输出文件。
count=blocks 一共读/写的次数。
ibs = bytes 一次读取 bytes 字节,即读入缓冲区的字节数。
示例:
2880+0 records in
2880+0 records out
2880+0 records in
2880+0 records out
例2:直接将源盘内容复制到目标盘上去,目标盘为已经格式化过的空白软盘。
[root@AS3-vm root]# fdformat /dev/fd1
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
上面是格式化目标软盘,使之成为一张空白的没有任何文件系统的软盘。
[root@AS3-vm root]# mount /dev/fd0 ./fd0
mount: block device /dev/fd0 is write-protected, mounting read-only
[root@AS3-vm root]# ls ./fd0
boot.msg initrd.img options.msg rescue.msg splash.lss vmlinuz
general.msg ldlinux.sys param.msg snake.msg syslinux.cfg
上面是挂载源软盘,并查看其中的内容。
[root@AS3-vm root]# umount fd0
卸掉源软盘,在使用dd命令的时候,不要挂载任何软盘,已经挂载的要卸掉。
[root@AS3-vm root]# dd if=/dev/fd0 of=/dev/fd1
2880+0 records in
2880+0 records out
使用dd命令复制源盘内容到目标盘,成功运行后,目标盘将变成和源盘一模一样,文件系统内容也一样。
[root@AS3-vm root]# mount /dev/fd1 ./fd1
[root@AS3-vm root]# ls ./fd1
boot.msg initrd.img options.msg rescue.msg splash.lss vmlinuz
general.msg ldlinux.sys param.msg snake.msg syslinux.cfg
[root@AS3-vm root]#
挂载目标盘,并查看其中内容,结果和源盘一样。
例3:文件复制功能,将file1复制到file2。
[root@AS3-vm root]# dd if=file1 of=file2
0+1 records in
0+1 records out
以下全部来自于[Linux命令]dd
例4:写512字节到文件中
$ dd if=/dev/zero of=./myfile bs=512 count=1
或(count默认为1):
$ dd if=/dev/zero of=./myfile bs=512
或(bs默认为512):
$ dd if=/dev/zero of=./myfile count=1
但这样是不行的,它将一直填充:
$ dd if=/dev/zero of=./myfile
使用软盘做钥匙盘在我的记忆中似乎是很遥远的事情了,第一次见到是一套计算机等级考试的软件。
如果使用文件的复制的方法把软盘的资料copy到另外一个软盘,那肯定会告诉你这不是一张有效的钥匙盘。
那个时候也没有想到比较好的办法。
今天又有人拿一个钥匙盘过来,问我能不能破解,我的第一反应就是使用linux的dd命令。
操作过程如下:
1.插入正确的钥匙盘,执行下面的命令
代码:: |
#dd if=/dev/fd0 of=fd0.img |
2.取出钥匙盘,插入你要复制的空白软盘(当然不是空白的也没有什么问题),执行下面的命令:
代码:: |
#dd if=fd0.img of=/dev/fd0 |
ok,取出你的复制的软盘,测试一下,看有没有问题!