Chinaunix首页 | 论坛 | 博客
  • 博客访问: 779962
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-11 17:33:37

两个压缩与备份工具:dd,cpio
dd:可以读取磁盘设备的内容,几乎是直接读取扇区,然后将整个设备备份成一个文件。
  tar可以用来备份关键数据,而dd则可以用来备份整块分区或整块磁盘。
#dd if="inputfile" of="outputfile" bs="block size" count="number"
  if:就是输入文件,也可以是设备
  of:是输出文件,也可以是设备
  bs:规划一个block的大小,未指定则默认为512bytes(一个扇区大小)
  count:多少个bs的意思

例子1:将/etc/passwd备份到/tmp/passwd.back中
  #dd if=/etc/passwd of=/tmp/passwd.back

例子2:将自己的磁盘的第一个扇区备份下来
  #dd if=/dev/sda of=/tmp/mbr.back bs=512 count=1

例子3:找出系统中最小的分区,并将它备份下来
  #df -h
  #dd if=/dev/sda1 of=/tmp/boot.whole.disk
  如果要还原,就反向回去
  #dd if=/tmp/boot.whole.disk of=/dev/sda1

  如果要将/dev/hdc1完整的复制到另外一个分区上,使用自己系统上未分区的剩余的磁盘空间再新建一个与 /dev/hdc1差不多大小的分区,然后将之进行完整的复制。
  #fdisk -l /dev/hdc ==>可以看到有13个磁柱
  #fdisk /dev/hdc ==>分配13个磁柱
  #partprobe
  (分配的新区不用格式化,dd可以讲原本旧分区中扇区表面的数据整个复制过来,连同superblock,boot sector,meta data等。)
  #dd if=/dev/hdc1 of=/dev/hdc9
  #mount /dev/hdc9 /mnt
  #df



cpio:可以备份任何数据,包括设备文件,不过cpio有个大问题,那就是不会主动去找文件来备份。
#cpio -ovcB > [file|device] ==>备份
#cpio -ivcdu < [file|device] ==>还原
cpio -ivct < [file|device] ==>查看

备份使用到的参数:
  -o:将数据copy输出到文件或者设备上
  -B:让默认的blocks可以增加至5120bytes,默认是512bytes。这样的好处是可以让大文件的存储速度加快。

还原会使用到的参数:
  -i:将数据自文件或设备复制到系统当中
  -d:自动新建目录。使用cpio所备份的数据不见得会在同一层目录中,因此我们必须要让cpio在还原时可以新建目录,此时就要用这个参数。
  -u:自动将较新的文件覆盖掉较旧的文件。
  -t:需配合-i参数,可用在查看以cpio新建的文件或设备的内容。

一些可共享的参数:
  -v:让存储的过程中文件名可以再屏幕上显示
  -c:一种较新的portable format方式存储

  因为cpio会将数据整个显示到屏幕上,所以我们要通过数据重定向来存储。

例子:找出/boot下面的文件,备份到 /tmp/boot.cpio
  #find /boot |cpio -ocvB > /tmp/boot.cpio
      将文件在/root/目录下解开
  #cpio -idvc < /tmp/boot.cpio

cpio还可以将系统的数据完整的备份到磁带机上去
  备份: #find / |cpio -ocvB > /dev/st0
  还原: #cpio -idvc < /dev/st0

  
阅读(1172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~