dd命令的报错,请解决!

dd命令的报错,请解决!

我个人练习使用dd命令时,先利用fdisk -l命令发现/dev/hda7为swap区,Blocks=1052226,我进入/home/yfh中,使用如下两种方法进行拷贝:
1)、使用命令:
dd if=/dev/hda7 of=hda7

dd if=/dev/hda7 of=/home/yfh/hda7
屏幕输出结果均为:
dd: 正在读入‘/dev/hda7’: 输入/输出错误
读入了 2104448+0 个块
输出了 2104448+0 个块
2)、使用命令:
dd if=/dev/hda7 of=hda8 count=1052226
屏幕输出结果为:
读入了 1052226+0 个块
输出了 1052226+0 个块
3)、使用命令拷贝文本文件:
dd if=a1 of=a4
屏幕输出结果为:
读入了 0+1 个块
输出了 0+1 个块
问题:
A、1)中的错误提示是什么原因造成?到底正确且完全拷贝了swap中的内容没有?
B、2)中指定了count=1052226(为fdisk -l显示的块的大小),结果没有报错提示,应该是正确拷贝了其内容,难道使用dd命令时必须指定count吗?
C、拷贝文件为何不报错?难道与大小有关系吗?

请指点,谢谢!
你觉得swap里的内容是什么?交换分区而已,即不是EXT2、EXT3,FAT。只要你的swap分区比你想要得到的大,应该就不会出错。
dreamboat,谢谢您!
   我知道swap是交换分区了!难道直接对交换分区进行拷贝就出错吗?必须指定count吗?全部拷贝其他分区就不会出错了吧?我主要想试试整个分区的拷贝,所以才选则了磁盘空间较小swap、其他太大了(我只分了个/与交换两个区)!
   “只要你的swap分区比你想要得到的大,应该就不会出错。”是什么意思?没看得懂,请详细解释!

也期望大家详细指点,谢谢!
dd要指定块大小的