首先准备一个Live CD,就是Ubuntu的安装盘。

  备份原理就是将系统文件压缩打包。由于Linux系统所有都是文件,故,只需要将系统打包即可。当然,必须除了当前系统运行中的文件以及临时文件。

  打包有两种方式:a)直接需要打包的Linux系统下压缩打包(亲测,发现在打包最后会报错,不知会不会有问题),反正我是没有成功。b).使用Live USB

  接下来就是步骤了

  1、使用U盘启动,进入Live USB界面,点击试用。

  2、进入试用Ubuntu后,先获取root权限。

     sudo su

  在根目录下新建一个文件夹backup,用来挂载系统硬盘(/dev/sdb2,这是我的"/"主分区,应该也是系统所在的地方吧)。

     mount dev/sdb2 /backup/

  注意:sda1,sdb1按照fdisk -l查看的的实际情况替换。

  进入backup文件夹下查看是否挂载成功。如果挂载成功,文件夹下应该是要备份的Linux系统文件。

  压缩格式有很多,如果你的硬盘够大,建议使用低压缩格式,这样速度会很快。

  进入到backup备份系统目录下:

     tar cvpzf /backup/mnt/backup.tgz --exclude=./proc --exclude=./lost+found --exclude=./mnt --exclude=./sys --exclude=media ./

tar 是用来备份的程序
c - 新建一个备份文档
v - 详细模式, tar程序将在屏幕上实时输出所有信息。
p - 保存权限,并应用到所有文件。
z - 采用‘gzip’压缩备份文件,以减小备份文件体积。
f - 说明备份文件存放的路径

  解释:--exclude ,是排除压缩的文件。就是将不需要的文件排除。

  等待压缩完成。

  如果不是在本机上的话,要备份原始系统的配置文件,以及新安装系统的启动文件。

进入backup原始系统下,备份系统配置文件fstab fstab.d

cd /backup/etc/

cp -pdr fstab fstab.d /restore/backsrc/

进入restore/还原目录下,备份系统启动文件grub.cfg.主要是用来获取新硬盘的UUID号,替换备份系统的内的UUID,不然在新硬盘上系统无法启动!

cd /restrore/boot/

cp -pdr grub.cfg /restore/backsrc/

G.解压缩,还原系统到新硬盘下.

tar -xvpzf /restore/backsrc/backup.tgz -C /restore/

H.替换刚刚备份的系统配置文件,以及修改启动文件中的UUID:

替换:

cp -fdr /restore/backsrc/fstab fstab.d /restore/etc/

修改:

打开/restore/backsrc/grup.cfg

复制里面的UUID

打开/restore/boot/grup.cfg,将里面的UUID全部替换。

现在一切还原完成。关闭电脑,拔掉U盘,拔掉旧的备份硬盘。重启电脑!

完毕!!!

  我们继续,进入backup原始系统下,备份系统配置文件fstab fstab.d

    cd /backup/etc/

    cp -pdr fstab fstab.d /backup/mnt/

  我的电脑上没有fstab.d,但最后也成功了

  解压缩,还原系统到新硬盘下.

   注意!!!因为 tar还原是只会覆盖相同的文件,但是这种方法只是恢复备份时的文件,就是说如果某些文件丢失或损坏了,这样可以恢复修复这些文件,但不能删除自备份到恢复前这期间所生成的其它文件,说白了就是假如你备份系统时有1234这四个文件,如果三天后,由于某些原因变成了1234'5(4改变了),你恢复后,就会变成12345,其中4'恢复成备份时的文件,5保留。所以大家要是想彻底还原成备份时候的样子最好彻底删除根目录下的所有文件,然后在还原,这样就可以还原成备份时的样子了。

  Linux 中美妙的事情之一就是在系统正在运行的情况下可以进行还原操作,而不需要启动光盘或者其他任何乱七八糟的东西。当然,如果您的系统已经崩溃,那您必须选择 使用live CD,但是结果还是一样。

    tar -xvpzf /backup/mnt/backup.tgz -C /backup/

******************************************************************

好了,言归正传。这是我要用的命令,如果你的备份不是在和我一样的位置的位置的话,那请相应地修改/mnt/backup.tgz这一点:

tar -xvpzf /mnt/backup.tgz -C /

如果您使用的是bz2压缩的:

tar -xvpjf /mnt/backup.tar.bz2 -C /

如果系统已经崩溃可以使用Live usb登录,然后

mkdir /tmp/root
mount /dev/sdb2 /tmp/root

tar -xvpjf /tmp/root/mnt/backup.tar.bz2 -C /tmp/root

当然,恢复前可以先rm -rf /tmp/root/* 一下,这样就干干净净了。(就是之前说的删除根目录下的所有文件)

这个只是在本机上还原,如果是还原到别的机子上记得修改fstab文件。(可能还需要安装grub)

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
# mkdir media
等等

********************************************************

  现在一切还原完成。关闭电脑,拔掉U盘,重启电脑!

Ubuntu16.04系统重装***的更多相关文章

  1. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

  2. Ubuntu16.04系统美化、常用软件安装等,长期更新

    Ubuntu16.04系统美化.常用软件安装等,长期更新 IT之家啊 18-09-0915:00 因为我个人偏向于玩VPS.服务器之类的东西,所以一般我都是用CentOS.不过对于桌面版的Linux, ...

  3. ubuntu16.04系统精简

    ubuntu16.04系统精简 一.更新系统 apt-get update apt-get dist-upgrade 二.查看所有内核 sudo dpkg --get-selections |grep ...

  4. Ubuntu16.04系统中不同版本Python之间的转换

    Ubuntu系统自带的版本是2.7.12 安装好python3.6之后,改变一下Python的优先级(需要root权限). 在使用下面这个命令查看电脑里面有几个Python版本 update-alte ...

  5. 虚拟机桥接模式下多台Ubuntu16.04系统互相连接

    1.首先新建一个虚拟机并在该虚拟机上安装Ubuntu16.04系统.为这台虚拟机起名为Ubuntu3. 2.对Ubuntu3进行克隆,为新克隆生成的虚拟机起名为Ubuntu2.(这时我们会发现Ubun ...

  6. ubuntu16.04系统深度学习开发环境、常用软件环境(如vscode、wine QQ、 360wifi驱动(第三代暂无))搭建相关资料

    事后补充比较全面的(找对资料真的省一半功夫):https://www.jianshu.com/p/5b708817f5d8?from=groupmessage Ubuntu16.04 + 1080Ti ...

  7. Ubuntu16.04系统Python3相关环境或模块安装

    前提:一般用户安装都命令前都需要sudo ,或者在root用户下 1.Ubuntu 16.04 安装PyCharm Ubuntu 16.04 安装PyCharm 本文通过第三方源安装PyCharm,好 ...

  8. Ubuntu16.04系统下 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)、无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”的方法

    在Ubuntu16.04下安装软件,例如:sudo apt-get install lrzsz时提示: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 无法 ...

  9. ubuntu16.04系统彻底卸载mysql,并源码免编译重装MySQL的步骤

    今天的总结 ubuntu上彻底卸载MySQL或重新安装 https://www.jianshu.com/p/974b33873bca #查看是否存在mysql服务 service mysql stat ...

随机推荐

  1. [转]Deep Reinforcement Learning Based Trading Application at JP Morgan Chase

    Deep Reinforcement Learning Based Trading Application at JP Morgan Chase https://medium.com/@ranko.m ...

  2. Java包、类、数据类型、表达式和标识符

    1.基本数据类型 类型名称 类型长度 取值范围 byte 8位(1字节) -128~127 short 16位(2字节) -32768~32767 int 32位(4字节) -2147483648~2 ...

  3. stack-protector-strong

    Improve protection against stack buffer overflows Much like its predecessor, stack-protector, stack- ...

  4. mastering elasticsearch

    概念: Term: 它是搜索的基本单位,其表现形式为文本中的一个词. Token: 它是单个Term在所属Field中文本的呈现形式,包含了Term内容.Term类型.Term在文本中的起始及偏移位置 ...

  5. 【linux基础】如何确定系统使用的Eigen库的版本

    path /usr/include/eigen3/Eigen/src/Core/util 文件 Macros.h #define EIGEN_WORLD_VERSION 3 #define EIGEN ...

  6. conda创建虚拟环境

    可能自己常常会遇到一个这样的问题,自己服务器安装的是python2,但是现在有的代码是基于python3的啊 怎么办?自己将代码转换成python2的呗,是的,我曾经就这样做过,但是真的是很鸡肋 更有 ...

  7. 数据类型int、float、str、list、dict、set定义及常用方法汇总

    数据类型int:记录整数事物状态 可变不可变:值不可变类型,改变变量值实则是改变了变量的指向 int():功能:1.工厂函数, i = 5 <==> i = int(5) 2.强制类型转换 ...

  8. HDU 1754:I Hate It(线段树模板)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. 同一个页面引用不同版本jquery库

    (如有打扰,请忽略)阿里云ECS大羊群,2U4G低至1.4折,限实名新用户,需要的点吧https://promotion.aliyun.com/ntms/act/vm/aliyun-group/tea ...

  10. 进入网站自动加自己为QQ好友代码

    <meta http-equiv="refresh" content="0; url=tencent://AddContact/?fromId=50&fro ...