dd 与cpio

dd

可以读取磁盘设备的内容(几乎是直接读取扇区),然后将整个设备备份成一个文件。

# dd if="input file" of="output file" bs="block size" count="number"

if:input file,也可以是设备

of:output file,也可以使设备

bs:规划的一个block的大小,若不指定,默认是512bytes(一个扇区的大小)

count:多少个bs的意思

# dd if=/etc/passwd of=/tmp/passwd.back    将/etc/passwd中/tmp/passwd.back中去

# dd if=/dev/hdc of=/tmp/mbr.back bs=512 count=1  将自己磁盘上第一个扇区备份下来

找出系统最小的分区,并备份

# df -h

# dd if=/dev/hdc1 of=/tmp/boot.whole.disk   若想还原,就反向回去

 

dd命令可以创建大型文件:

# dd if=/dev/zero of=test.img bs=1M count=512  创建一个512M大小的文件test.img

    其实这个也可以理解成为备份,只不过是一个全部被0填充的文件。

    /dev/zero是已知输出0的设备

cpio

    可以备份任何东西,但不会主动找文件来备份,需要配合find等可以找到文件名的命令来告知cpio该备份的数据在哪。

# cpio -ovcB > [file|device]       备份文件

# cpio -ivcdu < [file|device]       还原文件

# cpio -ivct < [file|device]        查看文件

备份使用到得参数:

-o :将数据Copy输出到文件或设备上

-B:让默认的blocks可以增加至512bytes,默认是512bytes(可以让大文件存储速度加快)

还原用到的参数:

-i :将数据文件或设备复制到系统当中

-d :自动新建目录,cpio在还原时可以自动创建目录

-u :自动将新的文件覆盖旧的文件

-t :需配合-i的参数,可用在查看cpio新建的文件或设备的内容

一些可共享的参数:

-v :让存储的过程中文件名可以显示在屏幕上

-c :一种较新的portable format方式存储

 

找到/boot下所有文件,然后备份到/tmp/boot.cpio中去:

# find /boot -print

# find /boot | cpio -ocvB > /tmp/boot.cpio

# cpio -idvc < /tmp/boot.cpio    在/boot解压缩文件查看,比较两文件是否相同

可以将系统的数据完整的备份到磁带机上头去(有磁带机的话):

# find / | cpio -ocvB > /dev/st0  备份

# cpio -idvc < /dev/st0     还原

 

系统中含有一个用cpio格式压缩的文件,如何解压:

1. 先查看文件时是什么格式的,然后再加以处理:

# file /boot/initrd-2.6.18.128.el5.img  看出文件经过gzip压缩过

2. 更名,将文件增加扩展名,然后予以解压缩看看:

# mkdir initrd

# cd initrd

# cp /boot/initrd-2.6.18.128.el5.img initrd.img.gz

# file initrd.img        发现是cpio压缩的文件

3. 使用cpio解开此文件:

    # cpio -iduvc < initrd.img

你可能感兴趣的:(职场,dd,休闲,cpio)