【Linux基础知识】CentOS7使用dd命令进行数据备份

发布 : Linux培训      来源:

2021-08-30 16:11:53

在Linux中可以使用dd命令进行数据备份。dd命令可以对文件(包括设备)的内容导入导出,导出数据后,原文件(或设备)的内容不会被删除或改变。用这种方式可实现任何文件(设备)到其他任何文件(设备)的数据导出,实现备份的目的。

格式如下:

dd if=源文件/设备 of=目标文件/设备 bs=每次操作的数据量 count=操作次数

其中的bs和count可以省略,省略后采用默认值。bs默认值是512字节,count默认值和源文件大小有关。

举例如下。

①dd if=f1 of=f2:把f1文件导入到f2中,相当于将文件f1复制为文件f2。相关操作如下:

[root@file01 ~]# cd /mnt
[root@file01 mnt]# cp /etc/sudoers ./f1
[root@file01 mnt]# ls
f1 hgfs
[root@file01 mnt]# dd if=f1 of=f2
记录了8+1 的读入
记录了8+1 的写出
4328字节(4.3 kB)已复制,0.000566382 秒,7.6 MB/秒
[root@file01 mnt]# ls -l
总用量 16
-r--r----- 1 root root 4328 8月 2 10:11 f1
-rw-r--r-- 1 root root 4328 8月 2 10:12 f2
drwxr-xr-x 2 root root 6 11月 6 2020 hgfs

②dd if=f1 of=f2 bs=1 count=3:把f1文件导入到f2中,每次导入1字节,导入3次。相关操作如下:

[root@file01 mnt]# dd if=f1 of=f2 bs=1 count=3
记录了3+0 的读入
记录了3+0 的写出
3字节(3 B)已复制,0.000652474 秒,4.6 kB/秒
[root@file01 mnt]# cat f2
## [root@file01 mnt]#

③dd if=/dev/sda1 of=/mnt/f1:把sda1分区的数据导入到f1中,相当于用文件存储整个分区数据。相关操作如下:

[root@file01 mnt]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos_mini7-root 253:0 0 17G 0 lvm /
└─centos_mini7-swap 253:1 0 2G 0 lvm [SWAP]
loop0 7:0 0 32.6M 0 loop /media
[root@file01 mnt]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 475M 0 475M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 14M 473M 3% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos_mini7-root xfs 17G 3.1G 14G 18% /
/dev/sda1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/loop0 iso9660 33M 33M 0 100% /media
[root@file01 mnt]# dd if=/dev/sda1 of=/mnt/f1
记录了2097152+0 的读入
记录了2097152+0 的写出
1073741824字节(1.1 GB)已复制,8.7408 秒,123 MB/秒
[root@file01 mnt]# ls -lh f1
-r--r----- 1 root root 1.0G 8月 2 10:30 f1

④dd if=/dev/sda1 of=/dev/sdb1:把sda1分区的数据导入到sdb1中,相当于拷贝整个分区。

[root@file01 ~]# sfdisk -d /dev/sda|sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdb: 2610 cylinders, 255 heads, 63 sectors/track
Old situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sdb1 * 0+ 130- 131- 1048576 83 Linux
/dev/sdb2 130+ 2610- 2481- 19921920 8e Linux LVM
/dev/sdb3 0 - 0 0 0 空
/dev/sdb4 0 - 0 0 0 空
New situation:
Units: sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/sdb1 * 2048 2099199 2097152 83 Linux
/dev/sdb2 2099200 41943039 39843840 8e Linux LVM
/dev/sdb3 0 - 0 0 空
/dev/sdb4 0 - 0 0 空
Warning: partition 1 does not end at a cylinder boundary
Warning: partition 2 does not start at a cylinder boundary
Warning: partition 2 does not end at a cylinder boundary
Successfully wrote the new partition table
Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root@file01 ~]# dd if=/dev/sda1 of=/dev/sdb1
记录了2097152+0 的读入
记录了2097152+0 的写出
1073741824字节(1.1 GB)已复制,19.7337 秒,54.4 MB/秒

⑤dd if=/dev/sda of=/dev/sdb:把sda磁盘的数据导入到sdb磁盘中,相当于拷贝整个磁盘。相关操作如下:

[root@file01 ~]# dd if=/dev/sda of=/dev/sdb
记录了41943040+0 的读入
记录了41943040+0 的写出
21474836480字节(21 GB)已复制,394.098 秒,54.5 MB/秒

⑥dd if=/dev/zero of=/mnt/f1 bs=100M count=5:把空字符导入到f1中,每次导入100M字节,导入5次,相当于创建一个500M的全都是空字符的文件。相关操作如下:

[root@file01 mnt]# ls -l f1
-r--r----- 1 root root 1073741824 8月 2 10:30 f1
[root@file01 mnt]# dd if=/dev/zero of=/mnt/f1 bs=100M count=5
记录了5+0 的读入
记录了5+0 的写出
524288000字节(524 MB)已复制,0.877345 秒,598 MB/秒
[root@file01 mnt]# ls -l f1
-r--r----- 1 root root 524288000 8月 2 11:00 f1
[root@file01 mnt]# strings f1|more
[root@file01 mnt]# hexdump -C f1
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
1f400000

注意,/dev/zero并非是真正的设备或文件,类似于程序,功能是无限生成二进制的0,即空字符。

⑦dd if=/dev/zero of=/dev/sdb1 bs=100M count=1:把空字符导入到sdb2分区中,每次导入100M字节,导入1次,相当于擦除分区前100M空间,多用于分区无法格式化时,进行先擦除再格式化。此操作为危险操作,执行前确保分区/dev/sdb1中无重要数据。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部