Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103683313
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: 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

重起机器,系统成功启动,说明还原成功。

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