分类: LINUX
2008-05-04 22:16:45
[root@test ~]# tar --help GNU tar 将许多文件保存到一个磁带或磁盘归档文件中,并可以从归档文件中恢复各个文件。 用法:tar [选项]... [文件]... 示例: tar -cf archive.tar foo bar # 从文件foo和bar创建归档文件archive.tar tar -tvf archive.tar # 详细列举归档文件archive.tar中的所有文件 tar -xf archive.tar # 解析归档文件archive.tar中的所有文件 如果长选项表明参数是必需的,那么对等价的短选项来说它同样是必需的。对可选的参数来说也类似。 主要操作模式: -t, --list 列出归档文件内容目录 -x, --extract, --get 从归档文件中解析文件 -c, --create 创建新的归档文件 -d, --diff, --compare 找出归档文件和文件系统的不同之处 -r, --append 将文件附加到归档文件之后 -u, --update 只附加比归档中新的文件 -A, --catenate 将tar文件附加到归档文件之后 --concatenate 与-A相同 --delete 从归档文件中删除(不能在磁带上) -z, --gzip --gunzip 在创建或解析归档文件时,同时使用gzip压缩或解压缩文件 -j, --bzip --bunzip 同gzip,只是bzip比gzip有较高的压缩率
一般linux典型的系统分区为:一个根(/)分区、一个boot分区和一个swap分区。我们就以此为例来介绍如何用tar来备份系统。
要备份数据,我们还需要有一个存储介质来存放我们备份的数据。备份介质有很多种,比如磁带、硬盘、光盘等。我这里用的是移动硬盘(空间足够大)。首先将移动硬盘挂载到系统上:
#mkdir /Bak #mount /dev/sda1 /Bak #假设我的移动硬盘在系统里识别为sda1
然后分别备份根分区和boot分区,swap分区不需要备份。
#tar zcvf /Bak/root-bak.tgz / --exclude proc --exclude dev --exclude Bak
proc和dev目录是系统自动动态创建的,所以无须备份;Bak是我们的移动硬盘所挂载的目录,当然也不需要备份了。
#cd /boot #tar zcvf /Bak/boot-bak.tgz *
如果没有报错,那么我们的备份就算完成了。
首先,用第一张系统安装光盘启动。前面的过程跟安装系统一样,在系统分区那步停下,按CTRL+F2(或CTRL+ALT+F2)得到shell。先将已有的系统分区格式化:
sh#mkfs.ext3 /dev/hda1 (假设原来的系统上hda1为/boot分区) sh#mkfs.ext3 /dev/hda2 (假设原来的系统上hda2为/分区) sh#mkswap /dev/hda3 (假设原来的系统上hda3为swap分区) sh#e2lable /dev/hda1 /boot sh#e2lable /dev/hda2 /
然后,挂在新的文件系统并还原操作系统。
sh#mkdir newsystem sh#mount /dev/hda2 newsystem sh#cd newsystem sh#mkdir bak sh#mount /dev/sda1 bak (在用光盘启动前,就要把移动硬盘插上。不然,有可能系统无法识别移动硬盘) sh#tar zxvf bak/root-bak.tgz sh#mkdir boot sh#mount /dev/hda1 boot sh#cd boot sh#tar zxvf ../bak/boot-bak.tgz sh#cd .. sh#chroot . sh#/usr/grub-install --recheck /dev/hda
重起机器,系统成功启动,说明还原成功。