admin管理员组

文章数量:1586761

参考博客:ubuntu系统分区方法: https://blog.csdn/zhangxiangweide/article/details/74779652
多分区——https://blog.csdn/qq_35523593/article/details/78545530
单分区——https://blog.csdn/sinat_27554409/article/details/78227496
单分区测试——https://blog.csdn/laukal/article/details/81260569

系统备份 对于做过系统分区的同学来讲
分区设置为 /、/home、/boot、swap。
linux秉承一切皆文件的思想,系统备份就相当于把整个/(根目录)所有文件打包压缩保存。
备份前先切换到root用户,避免权限问题,然后切换到/(根目录)。

使用 sudo su 命令, exit 退出
tar -cvpzf /media/Disk/myDisk/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run /

下面解释一下上面这条命令。tar就是一个打包命令。

/media/Disk/myDisk/ubuntu_backup@`date +%Y-%m+%d`.tar.gz

这个是备份文档的存放路径,我的移动硬盘名字叫myDisk,挂载在/media/Disk目录下,ubuntu_backup@date +%Y-%m+%d.tar.gz是我备份文件的名字,这里用了一个shell命令date +%Y-%m+%d用于获取当前时间,因为备份嘛,注明时间戳还是有必要的,然后.tar.gz是说明这个文件是用tar进行打包,gzip进行压缩的。所以要根据你自己情况换为你自己的备份文件目录和文件名。

参数:
-c: 新建一个备份文档
-v: 显示详细信息
-p: 保存权限,并应用到所有文件
-z: 用gzip压缩备份文档,减小空间
-f: 指定备份文件的路径
–exclude: 排除指定目录,不进行备份

Note: 注意–exclude参数,接下来谈谈那些目录没有备份,以及为什么不备份。

我的ubuntu系统,共有四个分区,分别是:/、/home、/boot、swap。

非常建议系统备份的时候按照分区进行分别备份,并且也不建议安装系统的时候只给系统分一个分区。有四个分区的好处是,一般系统坏了都是/分区的问题,/home没什么关系,所以这种情况,我可以只还原/分区,其他分区完全可以不用动,系统就可以恢复,会节省很多时间。

另外,为了保险起见,也可以对/home和/boot备份,但是备份频率完全没必要和/分区一样高。比如/分区每周备份一次,那/home和/boot完全可以一个月备份一次,因为这两个分区出问题的概率真的很小,而且变动也不会太频繁。

  • 请注意,如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!!!

/proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份的必要了。
/tmp:一个临时文件夹,系统的一些临时文件会放在这里。
/lost+found:系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
/media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
/mnt:临时挂载点,你可以自己挂载一些文件系统到这里。
/run:系统从启动以来产生的一些信息文件。
/home:用户家目录,存放用户个人文件和应用程序。
/boot:和系统启动相关的文件,像grub相关文件都放在这里,这个目录很重要!

/home和/boot目录我实际也是做了备份的,备份命令和上面差不多,当然你也可以排除一些目录不进行备份

tar -cvpzf /media/Disk/my_Disk/ubuntu_home_backup@`date +%Y-%m-%d`.tar.gz /home
tar -cvpzf /media/Disk/myDisk/ubuntu_boot_backup@`date +%Y-%m-%d`.tar.gz /boot

最后还要提一下就是,有可能备份到最后系统会提示"tar: 由于前次错误,将以上次的错误状态退出",这个警告可以忽略,没什么影响的。



  • 系统还原

系统备份的意义就在于系统哪天发生意外时可以系统还原拯救回来

这里有两种还原方式,如果你系统出问题了,但是还可以进入终端,那就可以直接解压备份文件进行还原。但是如果你连系统都不能登录了,就要使用LiveCD(U盘启动盘)进行还原了

相关指令:
ubuntu sudo删除文件

sudo rm <文件> -rf


连续创建多个文件夹:

mkdir -p 文件夹1  文件夹2 ...
目录树的创建方法:     mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}
  • 方法一
    直接操作
    操作前切换到root,并且换到/根目录。
    “/” 分区的恢复: 参数后为备份文件的位置
tar -xvpzf /home/systemback/<备份文件名称.tar.gz> -C /

“/home” 分区的恢复:

tar -xvpzf /home/systemback/<home分区备份文件名称.tar.gz> -C /home

“/boot” 分区的恢复:

tar -xvpzf /home/systemback/<home分区备份文件名称.tar.gz> -C /boot
  • 方法二、LiveCD
    操作之前请确保你已经有一个制作好的ubuntu U盘启动盘。进入系统后,打开终端还是先切换到root。
mkdir /mnt/sys
mount /dev/sdaX /mnt/sys
tar -xvpzf /media/myDisk/ubuntu_boot_backup@2016-6-6.tar.gz -C /mnt/sys

注:如果临时系统可以自动挂载优盘,可不执行本步骤,按照下面介绍做

注意先创建一个临时目录用于挂载你的/根目录分区,sdaX代表你的/根目录分区,如果不知道就用fdisk -l查看一下,另外如果你的移动硬盘没有被自动挂载,你也需要手动创建一个临时目录进行挂载。

Note:因为 tar还原是只会覆盖相同的文件,但是这种方法只是恢复备份时的文件,就是说如果某些文件丢失或损坏了,这样可以恢复修复这些文件,但不能删除自备份到恢复前这期间所生成的其它文件,说白了就是假如你备份系统时有1234这四个文件,如果三天后,由于某些原因变成了1234’5(4改变了),你恢复后,就会变成12345,其中4’恢复成备份时的文件,5保留。所以大家要是想彻底还原成备份时候的样子最好彻底删除根目录下的所有文件,然后再还原,这样就可以还原成备份时的样子了。
删除整个文件系统,比如运行命令rm -fr /*,那么你还原系统后一定要把你之前没有备份的目录手动创建,不然重启系统是有问题的。

其实大致原理就是通过livecd进入系统,找到原来4个/1个分区文件,将原来删除,再将备份的写入进去
切换到root用户,找到之前Ubuntu系统的根目录所在磁盘分区(一般电脑上的磁盘分区(假设分区名称为sdaX)均可以在当前Ubuntu系统的根目录下的media目录下(即/media)找到。目录通常为当前根目录下 cd /media/磁盘名称/分区名称)。进入该分区,输入以下指令来删除该根目录下的所有文件:

sudo rm -rf /media/磁盘名称/分区名称*

将备份文件”backup.tgz”拷入该分区;
sudo cp -i backup.tgz /media/磁盘名/分区名sdaX
进入分区并将压缩文件解压缩,参数x是告诉tar程序解压缩备份文件
sudo tar xvpfz backup.tgz
或者 sudo tar -xvpfz backup.tgz -C / /home为可选参数,另外可为“/” 或者“/boot”

  • 重要的一步: 重新创建那些在备份时被排除在外的目录;

mkdir proc tmp lost+found media mnt run

三、系统恢复(不同电脑,包括重新安装系统的电脑)
此步承接着第一步,将系统备份好,然后将backup.tgz复制到U盘里。

     1、重新安装好系统(或新电脑安装好的系统)

     2、备份新系统文件(就是备份UUID)

cd /etc/
sudo cp -pdr fstab /home/laukal/
将文件复制到home文件夹下,保存到一个不会被覆盖的地方。

     3、解压就系统

     进入根目录,解压。

cd /
sudo su
sudo tar -xvpfz /media/kingston/backup.tgz -C /
4、将刚才保存好的fstab复制到复原系统中

sudo cp -pdr /home/laukal /etc/
5、打开fstab,将硬盘的UUID号复制好,覆盖/boot/grub/grub.cfg文件中的UUID号,有20多个,不覆盖的话,是启动不了的,找不到硬盘。

UUID=bb089529-c213-45ad-aa16-89e36f1c63ae (是第一个,不是那个swap的)
重启即可

   这里主要参考的是下面两篇文章
  https://blog.csdn/zeg635702733/article/details/53992224

  https://www.linuxidc/Linux/2014-01/94975p2.htm 

https://zhuanlan.zhihu/p/51827233

本文标签: 备份系统Ubuntu