Ubuntu数据备份
2017-11-02 07:52
204 查看
因为第一次接触Ubuntu,安装的win7双系统,只给Ubuntu分了几十g空间。经过几天的感受,决定彻底使用Ubuntu,把win丢掉。所以想着把现在的数据备份一下,重新分区安装Ubuntu。
以下是我在网上找到的经验,特此记录。
1. 备份系统
我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
首先成为root用户:
$ sudo su
然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):
# cd /
下面是我用来备份系统的完整命令:
# tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
让我们来简单看一下这个命令:
“tar”当然就是我们备份系统所使用的程序了。
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
“backup.gz”是我们将要得到的档案文件的文件名。
“/”是我们要备份的目录,在这里是整个文件系统。
在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。
有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。
在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。
你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
/
2. 恢复系统
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!
使用下面的命令来恢复系统:
# tar xvpfz backup.tgz -C /
如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!
----------------------------------------------------------------------------------------------------------------------------------------------
archLinux同样可以这样做
本人辣鸡,主要方便自己查询和刚入坑经常玩挂的朋友,这里主要以自己使用的Arch为例,其他发行版应该大同小异。Btrfs用snapper的同学可以无视~~~
Linux上主要的备份方式 我知道的有 dd 和 tar
相比来说 tar打包显得比较灵活,可以用于本机备份恢复,也可以恢复到其他计算机,打包的目录可以完全按自己需要。这里主要介绍tar打包以及本机的恢复。
tar打包 可以只打包不压缩,速度会比较快,但是你可能会面对一个 好几十G的系统备份包,并不推荐。
压缩 可以用gzip或者Bzip2 (好像还有其他的,不熟悉,就不做介绍了) 二者相比,gzip速度相对较快,但压缩比率比Bzip2略低。
我这里并不用这两个软件打包,因为两个都是单线程,打包速度会非常慢。。。曾经用bzip2打包等到天荒地老都没好。。。
那么重头戏来了! 偶然的机会知道了一个叫pigz的多线程压缩软件,采用与gzip相同的压缩方式,默认以逻辑CPU的个数的线程进行压缩,具体线程还可以自定义,速度飞快,详细可以百度 pigz。
那么 tar能不能调用pigz进行压缩呢? 答案是肯定的!
看一下tar的man手册
-I,
--use-compress-program=COMMAND
Filter data through COMMAND. It must accept the -d option,
for decompression. The argument can contain command line
Options.
发现tar是可以指定其他压缩程序进行压缩的。
于是直接 sudo pacman -S pigz 安装(arch官方源就有)下面就可以开始打包了!
进入根目录 然后执行:
sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz
--exclude=/mnt --exclude=/sys --exclude=/run/media /
简单介绍一下命令,--use-compress-program=pigz 是用pigz压缩,arch-backup.tgz是打包之后的文件名,--exclude=/xxx是打包时排除的目录,这里简单的排除了一些不需要的目录,具体排除的内容可以根据自己的发行版和需要设定,--exclude=/arch-backup.tgz
是排除根目录下的自身,因为我是在根目录下进行的操作,如果不排除自身的话,打包可能会进入一个死循环。。。你可能会打出一个巨型包。
这样就开始进行压缩打包了
用htop 可以看到 CPU满载,大概3-5分钟左右完成,比起单线程10%多的占用 速度快了不知道多少倍!
完成候可以看到 28G左右的分区 打包完 是一个15G的压缩包,个头还是很大。。。也算可以接受。。不知道有没有其他办法能够再小点
打包完成后,你可能会看到一条错误信息,具体原因小白不懂,不过并没有什么影响。然后将备份的包放到一个你觉得安全的地方。
至此,所有备份工作都已经完成,系统挂了可以用下面的方法恢复
首先需要准备一个能够引导的liveCD的U盘
然后重启进liveCD开始恢复
进入liveCD之后 先用wifi-menu联网,因为liveCD上没有pigz,如果不想解压恢复的时候用半年的话就联网装上再解压吧
Ping一下百度看看是否联网成功,之后简单配置下源 就可以安装pigz了
要用到的pigz准备好之后就可以挂载磁盘
进行恢复了。
lsblk简单看下各个分区情况
我这里sdc1是boot分区
sdc2是/分区 sdb3是保存备份的分区
直接新建了一个目录挂载 sdb3
mkdir /f
mount /dev/sdb3 /f
然后挂载
目标linux根分区到/mnt目录, 我的arch只分了 boot和/分区,并且备份的时候 忘记排除boot目录了,所以这里索性都挂载上干掉。挂载之后如图
现在就可以干掉已经损坏的系统了
rm -rf /mnt/*
命令很危险,一定要看清楚,想清楚了之后再执行,我真是怕小手一抖就把不想干掉的分区干掉了
。
这里zsh提示是否确定干掉/mnt上的所有文件
直接y
boot目录因为是分区挂载点提示设备忙,这个目录并没有被删掉,不过ls一下可以看见/mnt下只剩boot目录,/mnt/boot下所有的引导文件也都没有了
万事俱备,下面进行解压恢复 还是使用pigz进行多线程解压
#tar --use-compress-program=pigz -xvpf /f/sysbackup/arch-backup-20160331.tgz -C /mnt
这里自行把备份路径替换掉。接下来就是解压过程如图:
用不了多久
也就2-3分钟 解压完成!
ls看看 干掉的文件是不是都回来了呢
然后直接reboot重启
这个时候我的小心脏有点方
。。。前面干掉了
/ 分区所有文件真的 大丈夫?
大不了重装
重启之后 可爱的grub菜单出现了!
因为我之前把boot一起干掉了,所以看到这里就表面恢复成功了!
以下是我在网上找到的经验,特此记录。
1. 备份系统
我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
首先成为root用户:
$ sudo su
然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):
# cd /
下面是我用来备份系统的完整命令:
# tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
让我们来简单看一下这个命令:
“tar”当然就是我们备份系统所使用的程序了。
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
“backup.gz”是我们将要得到的档案文件的文件名。
“/”是我们要备份的目录,在这里是整个文件系统。
在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。
有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。
在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。
你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
/
2. 恢复系统
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!
使用下面的命令来恢复系统:
# tar xvpfz backup.tgz -C /
如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!
----------------------------------------------------------------------------------------------------------------------------------------------
archLinux同样可以这样做
本人辣鸡,主要方便自己查询和刚入坑经常玩挂的朋友,这里主要以自己使用的Arch为例,其他发行版应该大同小异。Btrfs用snapper的同学可以无视~~~
Linux上主要的备份方式 我知道的有 dd 和 tar
相比来说 tar打包显得比较灵活,可以用于本机备份恢复,也可以恢复到其他计算机,打包的目录可以完全按自己需要。这里主要介绍tar打包以及本机的恢复。
tar打包 可以只打包不压缩,速度会比较快,但是你可能会面对一个 好几十G的系统备份包,并不推荐。
压缩 可以用gzip或者Bzip2 (好像还有其他的,不熟悉,就不做介绍了) 二者相比,gzip速度相对较快,但压缩比率比Bzip2略低。
我这里并不用这两个软件打包,因为两个都是单线程,打包速度会非常慢。。。曾经用bzip2打包等到天荒地老都没好。。。
那么重头戏来了! 偶然的机会知道了一个叫pigz的多线程压缩软件,采用与gzip相同的压缩方式,默认以逻辑CPU的个数的线程进行压缩,具体线程还可以自定义,速度飞快,详细可以百度 pigz。
那么 tar能不能调用pigz进行压缩呢? 答案是肯定的!
看一下tar的man手册
-I,
--use-compress-program=COMMAND
Filter data through COMMAND. It must accept the -d option,
for decompression. The argument can contain command line
Options.
发现tar是可以指定其他压缩程序进行压缩的。
于是直接 sudo pacman -S pigz 安装(arch官方源就有)下面就可以开始打包了!
进入根目录 然后执行:
sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz
--exclude=/mnt --exclude=/sys --exclude=/run/media /
简单介绍一下命令,--use-compress-program=pigz 是用pigz压缩,arch-backup.tgz是打包之后的文件名,--exclude=/xxx是打包时排除的目录,这里简单的排除了一些不需要的目录,具体排除的内容可以根据自己的发行版和需要设定,--exclude=/arch-backup.tgz
是排除根目录下的自身,因为我是在根目录下进行的操作,如果不排除自身的话,打包可能会进入一个死循环。。。你可能会打出一个巨型包。
这样就开始进行压缩打包了
用htop 可以看到 CPU满载,大概3-5分钟左右完成,比起单线程10%多的占用 速度快了不知道多少倍!
完成候可以看到 28G左右的分区 打包完 是一个15G的压缩包,个头还是很大。。。也算可以接受。。不知道有没有其他办法能够再小点
打包完成后,你可能会看到一条错误信息,具体原因小白不懂,不过并没有什么影响。然后将备份的包放到一个你觉得安全的地方。
至此,所有备份工作都已经完成,系统挂了可以用下面的方法恢复
首先需要准备一个能够引导的liveCD的U盘
然后重启进liveCD开始恢复
进入liveCD之后 先用wifi-menu联网,因为liveCD上没有pigz,如果不想解压恢复的时候用半年的话就联网装上再解压吧
Ping一下百度看看是否联网成功,之后简单配置下源 就可以安装pigz了
要用到的pigz准备好之后就可以挂载磁盘
进行恢复了。
lsblk简单看下各个分区情况
我这里sdc1是boot分区
sdc2是/分区 sdb3是保存备份的分区
直接新建了一个目录挂载 sdb3
mkdir /f
mount /dev/sdb3 /f
然后挂载
目标linux根分区到/mnt目录, 我的arch只分了 boot和/分区,并且备份的时候 忘记排除boot目录了,所以这里索性都挂载上干掉。挂载之后如图
现在就可以干掉已经损坏的系统了
rm -rf /mnt/*
命令很危险,一定要看清楚,想清楚了之后再执行,我真是怕小手一抖就把不想干掉的分区干掉了
。
这里zsh提示是否确定干掉/mnt上的所有文件
直接y
boot目录因为是分区挂载点提示设备忙,这个目录并没有被删掉,不过ls一下可以看见/mnt下只剩boot目录,/mnt/boot下所有的引导文件也都没有了
万事俱备,下面进行解压恢复 还是使用pigz进行多线程解压
#tar --use-compress-program=pigz -xvpf /f/sysbackup/arch-backup-20160331.tgz -C /mnt
这里自行把备份路径替换掉。接下来就是解压过程如图:
用不了多久
也就2-3分钟 解压完成!
ls看看 干掉的文件是不是都回来了呢
然后直接reboot重启
这个时候我的小心脏有点方
。。。前面干掉了
/ 分区所有文件真的 大丈夫?
大不了重装
重启之后 可爱的grub菜单出现了!
因为我之前把boot一起干掉了,所以看到这里就表面恢复成功了!
相关文章推荐
- ubuntu下 mysql数据 自执行备份
- python实现Ubuntu上数据及mysql备份
- 如何在 Ubuntu 上使用 ADB 备份 Android 数据
- Ubuntu 为mysql定时备份数据
- UBUNTU 差异备份与数据同步
- 不要迷恋TAR了,使用 Deja Dup 在 Ubuntu 下备份你的数据
- MySQL: ubuntu10.10 下数据备份与恢复
- ubuntu怎样备份数据
- ubuntu中利用mysql命令做数据备份,恢复
- ubuntu怎样备份数据
- 备份Ubuntu更新包与软件包 重装时不必再重新下载
- oracle数据还原与备份
- MySQL(十三)之数据备份工具xtrabackup
- SQL Server中易混淆的数据类型 (备份)
- 备份一个数据库中每个表的100条数据的存储过程
- [516数据]R语言:基础(1)R语言RStudio在Ubuntu系统下的安装
- mysql根据指定条件备份数据
- mysql数据备份
- 备份数据到 NFS 磁盘的时候提示ORA-27054错误
- SQL2000中用backup 备份数据库