0
点赞
收藏
分享

微信扫一扫

Linux的压缩与备份工具(dd、cpio)


一、dd


  • 功能:​dd命令的功能很多。可以用来制作文件。也可以用来对磁盘设备进行备份
  • 格式:

dd  if="input_file"  of="output_file"  [bs="block_size"]  [count="number"]

  • 相关选项与参数:

  • if:后面接输入文件,也可以为设备
  • of:后面接输出文件,也可以为设备
  • bs:设置一个block(扇区)大小,若未指定默认是512B
  • count:有多少个bs的意思

  • dd特征:

  • dd可以用于文件/设备之间的相关备份,也可以用来新建文件
  • bs与count选项:​dd这个命令可以读取磁盘设备的内容(几乎是直接读取扇区)来进行备份,因此有bs与count这两个选项
  • 将一个磁盘设备备份成为一个文件时:​因为dd默认是一个一个扇区去读写的,所以备份时没有使用到的扇区也会被写入备份文件中,因此产生的备份文件就会变得跟原本的磁盘一模一样大,不会像xfsdump等文件系统命令一样只使用到部分数据
  • 将一个硬盘设备备份到另一个硬盘设备时:​新的硬盘/分区不需要格式化,因为dd这个命令直接将硬盘分区的扇区数据直接复制过去,连同超级区块、启动扇区、元数据、文件系统、MBR与分区表格式通通都复制过去(因此两块硬盘/分区都是一模一样的)


演示案例

  • 案例①:使用dd新建一个文件​。在/boot目录下新建一个testing.img文件,每个bs的大小为1M,总大小为10M。(/dev/zero为/dev下一个一直生成0的设备)
dd if=/dev/zero of=/boot/testing.img bs=1M count=10

Linux的压缩与备份工具(dd、cpio)_硬盘分区


  • 命令下面输出信息的含义:

  • 10485760 bytes:代表文件有10485760字节。
  • 10+0:代表有10个block和0个未满1M大小的block(因为指定了bs,所以每个block大小为1M)

  • 案例②:将/etc/passwd备份成为一个/tmp目录下的passwd.back文件

dd if=/etc/passwd of=/tmp/passwd.back

Linux的压缩与备份工具(dd、cpio)_常见的压缩与备份工具_02


  • 命令下面输出信息的含义:

  • 1982 bytes:代表文件有1982字节。
  • 3+1:代表有3个block和1个未满512b大小的block(因为没有指定bs大小,所以一个block的大小为512b)

  • 案例③:将整个/boot文件系统通过dd命令备份成为/tmp下的一个sda1.img文件​。因为/boot所在磁盘为/dev/sda1,所有if=/dev/sda1设备

dd if=/dev/sda1 of=/tmp/sda1.img

Linux的压缩与备份工具(dd、cpio)_cpio_03

Linux的压缩与备份工具(dd、cpio)_硬盘分区_04


  • 案例④:将一个Linux系统iso镜像文件备份到一个USB中,然后将这个USB作为系统启动设备
  • 假设我的USB设备为/dev/vda,镜像文件为system.iso
  • 第一步:​将iso文件备份到/dev/vda中

dd if=/tmp/system.iso of=/dev/vda
  • 第二步:​将/dev/vda挂载到/mnt。挂载之后,USB就可以作为系统的启动盘
mount /dev/vda /mnt

  • 案例⑤:将一个硬盘分区完全地复制到另一个硬盘分区下
  • 假设我们有一个已经有了一个/dev/vda2分区,我们在/dev/sda硬盘上划分出一个/dev/sda2分区(该分区一定不能比/dev/vda2分区小),将/dev/vda2分区直接复制到/dev/sda2上
  • 第一步:​使用fdisk命令划分出一个新的分区

fdisk  /dev/sda
后续操作查看分区操作
  • 第二步:​使用dd命令将/dev/vda2复制到/dev/sda2中
dd if=/dev/vda2 of=/dev/sda2
  • 第三步:​复制完之后,清理一下/dev/sda2的一堆log
xfs_repair -L /dev/sda2
  • 第四步:​因为dd复制时,连同磁盘的UUID也复制过去,所以还要使用uuidgen产生一个新的UUID,并将新的UUID赋予给/dev/sda2
//产生一个新的UUID
uuidgen
//将上面产生的新的UUID给/dev/sda1
xfs_admin -U 新的UUID /dev/sda1

二、cpio

待续

  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。

Linux的压缩与备份工具(dd、cpio)_dd_05


举报

相关推荐

0 条评论