1.清理缓存

# 清理旧版本的软件缓存
sudo apt-get autoclean

# 清理所有软件缓存
sudo apt-get clean

# 删除系统不再使用的孤立软件
sudo apt-get autoremove

2.使用tar备份

  • 命令及参数解释
    v: 显示详细的压缩信息
    c:创建tar包
    j:使用bzip2压缩格式 (压缩率略高,但是速度慢,后缀为:tar.bz2)
    z:使用gzip压缩格式(压缩率略低,但是速度快,后缀为:tar.gz)
    p:保留文件原始权限
    f:生成的压缩文件的路径
  • 要排除的文件
    /proc
    /lost+found
    /sys
    /cdrom
    /mnt
    /media
    我把/home下cavalry(用户目录)之外的目录都排除了(根据自己情况选择 ,需要备份就不要排除)
    排除打包文件自身
  • 命令执行
#切换到root用户
sudo su

#进入到 / 目录
cd /

# 使用gzip压缩格式(压缩略低,但是速度快)
tar -vzcpf /home/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media --exclude=/home/ide/ --exclude=/home/java/ --exclude=/home/WORKING_DIRECTORY/ --exclude=/home/workspace/ --exclude=/home/aosp-latest.tar --exclude=/home/backup.tar.gz /

# 使用bzip2压缩格式(压缩略高,但是速度慢)
tar -vjcpf /home/backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media --exclude=/home/ide/ --exclude=/home/java/ --exclude=/home/WORKING_DIRECTORY/ --exclude=/home/workspace/ --exclude=/home/aosp-latest.tar --exclude=/home/backup.tar.bz2 /

 

解释一下这个命令:

tar

3.打包过程中会遇到如下错误或警告信息

tar: Exiting with failure status due to previous errors 
这个问题其实不是真正的错误信息, 真正的错误信息混杂在标准输出(stout)中, 重新执行命令并把v参数去掉即可看到真正问题所在。

tar: Removing leading ’/‘ from member names 或 tar: Removing leading ’/‘ from hard link targets 
这个问题其实不影响程序的执行,产生的原因是tar在压缩的过程中自动帮我们去掉了路径前的“/”,也就是tar压缩后的包是按照相对路径压缩的。 当我们恢复时, 就需要通过 -C 参数手动指定解压到 “/” 目录, 如:tar xvpfj ubuntu_20170120_11.tar.bz2 -C / 
可以使用-P参数来指定按照绝对路径打包:
tar: /dev/shm: file changed as we read it 或 tar: /run/udev/control: socket ignored 
这个socket ignored产生的原因是压缩的过程中文件正在使用,无需理会,不影响压缩。

tar: /run/user/1000/gvfs: Cannot stat: Permission denied 
这个问题不用理会,与虚拟文件系统有关,不影响压缩。 具体原因参见:
http://unix.stackexchange.com/questions/77453/why-cannot-find-read-run-user-1000-gvfs-even-though-it-is-running-as-root

4.恢复

tar xvpfj backup.tar.bz2 -C /

作者:CavalryLin
 

#切换到root用户
sudo su

#进入到 / 目录
cd /

# 使用bzip2压缩格式(压缩略高,但是速度慢)
tar -vjcpf /home/backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media  --exclude=/home/backup.tar.bz2 /

#还原
tar xvpfj /home/backup.tar.bz2 -C /