dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
数据备份与恢复
整盘数据备份与恢复
(1)备份
##将本地的/dev/hdx整盘备份到/dev/hdy
1 | dd if=/dev/hdx of=/dev/hdy |
##将/dev/hdx全盘数据备份到指定路径的image文件
1 | dd if=/dev/hdx of=/path/to/image |
##备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径(bzip2工具也一样可使用)
1 | dd if=/dev/hdx | gzip > /path/to/image.gz |
(2)恢复
##将备份文件恢复到指定盘
1 | dd if=/path/to/image of=/dev/hdx |
##将压缩的备份文件恢复到指定盘
1 | gzip -dc /path/to/image.gz | dd of=/dev/hdx |
利用netcat与dd指令进行远程备份
(1)备份
假设:接收端的IP地址为:192.168.1.200;发送端的IP地址为:192.168.1.100 第一步:在接收端上执行命令:
1 | nc -l 1234 | dd of=/dev/sdb1 或者 nc -l 1234 | gzip -dc | dd of=/dev/sdb1 |
,即:nc指令的输出为标准输出,通过管道将nc指令的输出作为dd指令的输入,最后将数据写入/dev/sdb1中
(2)恢复
第二步:在发送端上执行命令:
1 | dd if=/dev/hda1 | nc 192.168.1.200 1234 或者 dd if=/dev/hda1 | gzip | nc 192.168.1.200 1234 |
即:将/dev/hda1设备上的数据作为dd的输入,而标准输出作为dd指令的输出,但是由于管道,所以将dd的标准输出将作为nc指令的输出
备份MBR
(1)备份 ##备份磁盘开始的512Byte大小的MBR信息到指定文件
1 | dd if=/dev/hdx of=/path/to/image count=1 bs=512 |
(2)恢复 ##将备份的MBR信息写到磁盘开始部分
1 | dd if=/path/to/image of=/dev/hdx |
备份软盘
##将软驱数据备份到当前目录的disk.img文件
1 | dd if=/dev/fd0 of=disk.img count=1 bs=1440k |
拷贝内存数据到硬盘
##将内存里的数据拷贝到backup目录下的mem.bin文件
1 | dd if=/dev/mem of=/backup/mem.bin bs=1024 |
将光盘制作成ISO镜像文件
##拷贝光盘数据到backup文件夹下,并保存为cd.iso文件,再进行刻录
1 | dd if=/dev/cdrom of=/backup/cd.iso |
增加swap分区文件大小
第一步:创建一个足够大的文件(250M)
1 | dd if=/dev/zero of=/swapfile bs=1024 count=262144 |
第二步:把这个文件变成swap文件
1 | mkswap /swapfile |
第三步:启用这个swap文件
1 | swapon /swapfile |
第四步:在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行
1 | /swapfile swap swap defaults 0 0 |
注意:查看当前swap使用情况,请查看文件/proc/swaps;创建交换分区其实还有另一种方法:fdisk指令法
销毁磁盘数据
##利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行
1 | dd if=/dev/urandom of=/dev/hda1 |