趣文网 > 作文大全

Linux系统磁盘分区备份的操作

2020-12-02 09:55:01
相关推荐

用户有时候可能会把数据放在一个分区上,所以有时可能需要对磁盘分区进行备份。今天小编就来介绍Linux系统磁盘分区备份的操作方式。

1、dcfldd 工具

该工具是 coreutils 软件包中 dd 工具的增强版,如果用户使用 8.24 或更新版本的 dd 工具,就不需要使用 dcfldd,只需要用 dd 替换 dcfldd 即可,所有其它参数仍然适用。

在 Debian 系统上只需要在 Package Manager 中搜索 dcfldd,也可以打开一个终端然后输入下面的命令:

sudo apt-get install dcfldd

对于 Red Hat 系统,可以用下面的命令:

1)cd /tmp

2)wget dl.fedoraproject.org/pub/epel/6/i386/dcfldd-1.3.4.1-4.el6.i686.rpm

3)sudo yum install dcfldd-1.3.4.1-4.el6.i686.rpm

4)dcfldd –version

注意:上面的命令安装的是 32 位版本。对于 64 位版本,使用下面的命令:

1)cd /tmp

2)wget dl.fedoraproject.org/pub/epel/6/x86_64/dcfldd-1.3.4.1-4.el6.x86_64.rpm

3)sudo yum install dcfldd-1.3.4.1-4.el6.x86_64.rpm

4)dcfldd –version

每组命令中的最后一个语句会列出 dcfldd 的版本并显示该命令文件已经被加载。

2、备份分区

备份设备的时候可以备份整个设备,也可以只是其中的一个分区。如果设备有多个分区,可以分别备份每个分区。

在进行备份之前,要先看一下设备和分区的区别。假设有一个已经被格式化为一个大磁盘的 SD 卡。这个 SD 卡只有一个分区。如果空间被切分使得 SD 卡看起来是两个设备,那么它就有两个分区。

要备份第一个 SD 卡需要备份设备 /dev/sdc,进行备份的命令如下所示:

dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img

备份包括输入文件(if)以及被设置为 /tmp 目录下名为 SD-Card-Backup.img 的输出文件(of)。

dd 和 dcfldd 默认都是每次读写文件中的一个块。通过上述命令,它可以一次默认读写 512 个字节。记住,该复制是一个精准的拷贝 - 逐位逐字节。完成备份后,还需要把数据恢复到设备中。

3、恢复分区

现在已经有了一个备份点,假设数据可能被损毁了或者由于某些原因需要进行恢复。

命令和备份时相同,只是源和目标相反。对于上面的例子,命令会变为:

dcfldd of=/dev/sdc if=/tmp/SD-Card-Backup.img

这里,镜像文件被用作输入文件(if)而设备(sdc)被用作输出文件(of)。

注意:要记住输出设备会被重写,它上面的所有数据都会丢失。通常来说在恢复数据之前最好用 GParted 删除 SD 卡上的所有分区。

假设我们想把镜像 BerryBoot.img 拷贝到两个 SD 卡。SD 卡分别是 /dev/sdc 和 /dev/sdd。下面的命令在显示进度时每次读写 1 MB 的块。命令如下:

dcfldd if=BerryBoot.img bs=1M status=progress | tee >(dcfldd of=/dev/sdc) | dcfldd of=/dev/sdd

在这个命令中,第一个 dcfldd 指定输入文件并把块大小设置为 1 MB。status 参数被设置为显示进度。然后输入通过管道 |传输给命令 tee。tee 用于将输入分发到多个地方。第一个输出是到命令 dcfldd of=/dev/sdc。命令被放到小括号内被作为一个命令执行。这时还需要最后一个管道 |,否则命令 tee 会把信息发送到 stdout (屏幕)。因此,最后的输出是被发送到命令 dcfldd of=/dev/sdd。如果有第三个 SD 卡,甚至更多,只需要添加另外的重定向和命令,类似 >(dcfldd of=/dev/sde。

注意:记住最后一个命令必须在管道 | 后面。必须验证写的数据确保数据是正确的。

4、验证数据

一旦创建了一个镜像或者恢复了一个备份,可以验证这些写入的数据。要验证数据,会使用名为 diff 的另一个不同程序。使用 diff ,需要指定镜像文件的位置以及系统中拷贝自或写入的物理媒介,可以在创建备份或者恢复了一个镜像之后使用 diff 命令。

该命令有两个参数,第一个是物理媒介,第二个是镜像文件名称。

对于例子 dcfldd of=/dev/sdc if=/tmp/SD-Card-Backup.img,对应的 diff 命令是:

diff /dev/sdc /tmp/SD-Card-Backup.img

如果镜像和物理设备有任何的不同,会被告知,如果没有显示任何信息,那么数据就验证为完全相同。确保数据完全一致是验证备份和恢复完整性的关键。进行备份时需要注意的一个主要问题是镜像大小。

5、分割镜像

假设想要备份一个 16GB 的 SD 卡,镜像文件大小会大概相同。如果只能把它备份到最大文件大小限制是 4 GB 的FAT32 分区,必须做的是文件必须被切分为 4 GB 的分片。通过管道 | 将数据传输给 split 命令可以切分正在被写的镜像文件。

创建备份的方法相同,但命令会包括管道和切分命令。示例备份命令为 dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img ,其切分文件的新命令如下:

dcfldd if=/dev/sdc | split -b 4000MB - /tmp/SD-Card-Backup.img

注意:大小后缀和对 dd 及 dcfldd 命令的意义相同。 split 命令中的破折号用于将通过管道从 dcfldd 命令传输过来的数据填充到输入文件。

文件会被保存为 SD-Card-Backup.imgaa 和 SD-Card-Backup.imgab,如此类推。如果担心文件大小太接近 4 GB 的限制,可以试着用 3500MB。

将文件恢复到设备也很简单。使用 cat 命令将它们连接起来然后像下面这样用 dcfldd 写输出:

cat /tmp/SD-Card-Backup.img* | dcfldd of=/dev/sdc

可以在命令中 dcfldd 部分包含任何需要的参数。

以上就是Linux系统磁盘分区备份的操作方式,希望能帮助到有需要的用户。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

关于劳动的作文800字 美丽的校园600字作文 有关文化自信的作文 醒来作文600字 作文题目空几个格 散步作文600字初中 关于扫雪的作文 雅思大作文字数 身边风景也动人作文 一次旅行作文300字 几分甜蜜在心头作文 人与自然作文800字 我的家乡哈尔滨作文 英语四级作文真题范文 关于事的作文300字 有关师生情的作文 抓娃娃作文400字 关于做家务的英语作文 春到校园作文 保护环境作文200字 介绍自己家人的英语作文 吃火锅的作文400字 假如给我三天光明作文 高考优秀作文600字 河南省中招作文 父亲节作文300 打屁股沟作文 我最崇拜的人英语作文 打羽毛球作文600字 温暖的阳光作文600字