加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用DD命令对Linux系统进行备份以及还原

发布时间:2022-09-20 15:35:34 所属栏目:Linux 来源:
导读:  gzip是GNU zip的缩写。

  【命令格式】

  gzip [option] filename

  【常用选项】

  c:压缩后将结果输出到标准输出,并保留原始文件。

  d:解压缩文件。

  l:显示压缩文
  gzip是GNU zip的缩写。
 
  【命令格式】
 
  gzip [option] filename
 
  【常用选项】
 
  c:压缩后将结果输出到标准输出,并保留原始文件。
 
  d:解压缩文件。
 
  l:显示压缩文件的详细信息。
 
  r:递归地处理目录下的所有文件及子目录,或递归地解压缩文件内的目录和子目录。
 
  v:显示命令的执行过程。
 
  t:测试压缩文件。
 
  num:num为数字1-9,代表压缩时使用的压缩率。1表示压缩速度最快、压缩率最小,9代表压缩速度最慢、压缩率最大。如果不使用此选项,则默认使用压缩率6.
 
  二、使用bzip2压缩文件
 
  与gzip等大多数压缩工具相比,bzip2的压缩率更高,但速度相对较慢。
 
  【命令格式】
 
  bzip2 [option] filename
 
  【常用选项】
 
  k:压缩、解压缩完成之后,保留原始文件。
 
  d:执行解压缩任务。
 
  t:测试压缩文件的完整性。
 
  num:num为数字1-9,表示压缩率级别。其中1表示压缩率最低、速度最快,9表示压缩率最高、速度最慢。
 
  v:执行时显示执行的详细信息。
 
  三、整盘备份命令dd
 
  dd是一个非常特殊的命令,其作用是从标准输入或文件中读取数据,并按指定的格式转换数据,然后输出。dd命令非常像Windows系统中的分区、磁盘备份工具Ghost。使用这个命令可以备份整个分区、磁盘,并且备份时可以不必关闭系统、卸载文件系统。
 
  【命令格式】
 
  dd
 
  dd命令不需要参数,所有参数都通过选项指定。
 
  【常用选项】
 
  if:指定要读取的文件,默认为标准输入。
 
  of:指定要输出的文件,默认为标准输出。
 
  ibs:指定读取数据时的块大小,默认为512字节。
 
  obs:指定输出数据时的块大小,默认为512字节。
 
  bs:将读取、输出时的块大小一起指定。
 
  count:指定读取的区块数。
 
  【用法示例】
 
  管理员在许多时候都要使用到这个命令,其目的可能是需要备份一个分区、硬盘和软盘等存储设备中的内容,也可能是需要验证某个设置,需要产生一个指定大小的文件等。
 
  (1)有时候管理员需要一个类似于Ghost的工具,备份一个分区甚至是一个磁盘,这时可以使用dd命令来完成。
 
  例如要备份磁盘sda:
 
  [root@localhost test]# dd if=/dev/sda of=/mnt/backup/backup_sda.dd status=progress
  上面的示例中,dd命令从设备/dev/sda中读取数据,并存放到文件/backup_sda.dd中。
 
  这样磁盘sda中的所有数据都被保存到backup_sda.dd文件内,这些数据包括了磁盘分区表及所有分区和数据等内容。由于磁盘存储的数据可能会有很多,因此命令可能会需要很长时间。
 
  提示:将磁盘备份到文件中时,建议文件名以.dd结尾,以便于文件使用者识别。
 
  (2)恢复磁盘时,只需要将读取和写入的文件进行调换即可。例如要将从/dev/sda中备份的数据恢复到一个新的设备/dev/sdb中:
 
  [root@localhost ~]# dd if=/mnt/backup/backup_sda.dd of=/dev/sdb
  dd命令从文件/mnt/backup/backup_sda.dd中读取数据,并将这些数据写入磁盘sdb中。命令执行完成之后设备sda和sdb中的数据将完全相同。
 
  (3)许多时候可能希望能够在备份磁盘分区的同时,压缩备份数据以节省空间,这是可以与gzip等压缩命令一起使用。
 
  例如备份磁盘sda并使用gzip压缩备份数据:
 
  [root@localhost ~]# dd if=/dev/sda status=progress | gzip >/mnt/backup/backup_sda.dd.gz
  上面示例命令中,命令dd首先从磁盘sda中读取数据,并将这些数据通过管道交给第2个命令gzip。gzip将这些数据压缩之后,通过重定向的方式写入文件backup_sda.dd.gz中。
 
  (4)如果要将使用gzip压缩后的数据恢复到磁盘sdb中Linux 磁盘管理,可以反向使用以上命令:
 
  (5)如果两块磁盘都连接到系统,可以直接将一个磁盘中的内容整盘拷贝到另一个磁盘中,将选项if和of的参数换成需要使用的参数即可。
 
  例如要将磁盘sda中的所有数据拷贝到磁盘sdb中:
 
  [root@localhost ~]# dd if=/dev/sda of=/dev/sdb
  (6)利用dd命令能直接读写块设备,还可以制作光盘镜像。例如为当前光驱中的光盘制作光盘镜像,并将 光盘镜像命名为linux.iso:
 
  [root@localhost ~]# dd if=/dev/cdrom of=/mnt/backup/linux.iso
  (7)许多时候管理员需要产生一个指定大小的文件,其目的可能是验证一些配置(例如磁盘配额),也可能是测试磁盘、阵列的读写速度等。这是可以使用dd命令的bs和count选项,指定块大小和块数量。
 
  例如产生一个5GB的文件放置在当前目录下,并将其命名为test.5G:
 
  [root@localhost ~]# dd if=/dev/zero of=test.5G bs=1M count=5120
  注意:在上面的命令中用到了一个设备文件/dev/zero,这是一个非常特殊的设备文件,zero设备的功能是无限制地提供数据0.
 
  (8)许多时候,磁盘上存放了相当机密的数据,当磁盘报废或者做其他用途时,删除数据和格式化磁盘都无法保证这些数据不被泄露。此时可以使用随机数据填充磁盘的方式销毁磁盘上的数据。
 
  例如要销毁磁盘sdc上的数据:
 
  [root@localhost ~]# dd if=/dev/urandom of=/dev/sdc
  (9)在Linux系统中,要备份磁盘的分区表,可以不用其他工具,使用dd命令就可以轻松完成这个工作:
 
  [root@localhost ~]# dd if=/dev/sda of=image count=1 bs=512
  上面这个命令,会备份磁盘/dev/sda的前512个字节(分区表保存在磁盘的前512字节中),保存到当前目录下并命名为image。
 
  (10)要从已经备份的文件image中恢复分区表:
 
  [root@localhost ~]# dd if=image of=/dev/sda
  注意:虽然dd命令备份数据时允许硬盘正在使用,但通常应该停止使用磁盘或以只读方式挂载磁盘,以免出现文件不一致的情况。
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!