一、备份

很多人有备份系统的习惯,以防系统挂。Windows下可以用DISM创建一个系统镜像,在Ubuntu下,我们可以使用squashfs-tools创建系统镜像。

准备工作

可启动LiveCD一份,这个类似于你备份Windows需要WinRE/PE一样。

一个Linux可以访问分区(相信大部分文件系统都可以),但不可以是系统所需要的分区,比如/ /home /var /usr /tmp,这就好比你不能将你的Windows系统镜像放在C盘一样。

重新启动计算机,进入LiveCD,启动菜单选择试用Ubuntu(Try Ubuntu)。locale=zh_CN.UTF-8。

按Ctrl+Alt+T打开终端。

输入sudo -s获得root权限。

输入fdisk -l查看当前分区状况。

在这里,我的分区设定是:

/dev/sda1是EFI系统分区,因为我这是EFI+GPT引导。(有人会奇怪为什么没有Microsoft Reserved微软保留分区,这是因为我的磁盘不是在Windows下进行分区的,故没有)。

/dev/sda2是根文件系统(/)

/dev/sda3是/home分区。

/dev/sda4是额外的数据盘,我们将会把系统镜像文件保存在这个分区上。

挂载分区

终端输入mount /dev/sda2 /mnt,挂载根分区。

如果您在分区的时候单独分了/boot分区的话,请接着输入mount /dev/xxx (你的boot分区标识)/mnt/boot。

在这里,我分了efi分区,即/boot/efi(大部分状况下是这个),所以我要输入mount /dev/sda1 /mnt/boot/efi(如果您既分了/boot又有/boot/efi,请一定先挂载boot后挂载efi,顺序千万不能反)。

然后挂载home分区mount /dev/sda3 /mnt/home(如果您没有设定单独的home分区不需要挂载,如果您不想保存home的内容也可以不挂载)。

如果您还设置了别的分区,比如/var /usr /tmp之类,请模仿上面的方法挂载。(/tmp可以选择不挂载,但是/usr必须挂载,不挂载还原后系统出现问题本人不负责,/var最好也要挂载,不挂载还原后系统也有可能会出问题)。

终端窗口不要关,现在,我们打开文件管理器nautilus。

选择「其他位置」,点击数据盘进行挂载。

好了我们现在已经挂载了。

右击分区名称(「28GB卷」那个),选择属性。

记住它的路径(这里是/media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02)。

正式备份系统

在极少数情况下,一些LiveCD会没有squashfs-tools,这就需要您手动安装。

终端输入mksquashfs /mnt /media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs (文件名任意)

备份好了之后,最好输入一下sync,让系统保存数据。

卸载分区(按照其他分区(home var usr之类)——efi分区——boot分区——根文件系统的顺序来卸载,每个人的情况都不太一样)

umount /mnt/home

umount /mnt/boot/efi

mount /mnt

最后卸载数据盘,就是保存镜像文件的那个。

大功告成。

重启之前还是建议再sync一下,养成好习惯(毕竟Linux有延迟写入功能)。

二、还原

先说一下,你在Windows下还原系统,大部分情况下直接还原然后重启就OK了,但是在Linux下,你还原之后还需要处理一下系统,不然会无法启动。

获得root权限(sudo -s),查看分区状况。(如果您已熟知可以不用)

分区状况sda1是efi,sda2是根,sda3是home,sda4是数据盘。

格式化

第二步和备份不一样,现在不需要挂载。

因为我根分区和home都是ext4分区,所以我输入

mkfs.ext4 /dev/sda2

mkfs.ext4 /dev/sda3

先格式化,如果你想保留home的内容可以选择不格式化。如果你有var usr之类请也格式化。

(如果你采用了其他格式格式化分区,请使用别的命令,比如xfs是mkfs.xfs)

数据盘别格式化,不然就23333了。

建立临时目录

mkdir /recovery(命名可以随意,只要你后面能对的上)

挂载数据盘

挂载方式请参考上文。

同样记住它的编号。

挂载镜像文件

mount -o loop /media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs /recovery

挂载镜像并创建必要文件夹。

挂载根分区 mount /dev/sda2 /mnt

根据需要建立文件夹:

mkdir /mnt/boot

mkdir /mnt/boot/efi

mkdir /mnt/home

修改权限

确保所创建的文件夹权限是这样。

复制文件

cp -a /recovery/* /mnt

复制好之后输入umount /recovery,这是为了卸载squashfs镜像。

有人会问为什么不用unsquashfs,这是因为unsquashfs解压之后会把文件解压到squashfs-root文件夹。

挂载虚拟文件系统,这是为了后面修复引导做准备。

mount --o bind /dev /mnt/dev

mount --o bind /proc /mnt/proc

mount --o bind /sys /mnt/sys

mount --o bind /run /mnt/run(这一步可以省略)

chroot进入已经还原的操作系统。

chroot /mnt

查看当前UUID

由于我们格式化了分区,所以UUID发生了变化,若不修改,系统将无法正常挂载分区,导致启动异常。故我们需要修改本机系统的UUID设置。

当前终端不要关闭,新建一个终端,输入blkid。

上面已经说过,sda1是efi,sda2是根分区,sd3是home。

记下他们的UUID。如果您分了别的分区比如boot var usr,也需要记下,等会要用。

修改本机UUID设置

返回原来的终端(已经chroot /mnt的那个),输入nano /etc/fstab。

如果nano没有安装,那么请输入vi /etc/fstab。

如果您用的是vi,那么需要按i进入编辑模式。

修改UUID(最新UUID在另一个窗口有)。我这里需要修改/和/home的,你的状况可能会和我不一样,如果您只分了根分区,那么只需要修改根分区的UUID就行。如果分了var usr之类,这些也要更改。

修改后按Ctrl+x退出。vi是先按esc,再输入:wq(冒号不能少!),然后回车。

更新GRUB

因为UUID被改动,所以我们需要更新GRUB。

输入grub-install /dev/sda(sda是你主硬盘的位置)

再输入update-grub。

退出chroot并卸载文件系统。

输入exit退出chroot。

然后输入:

umount /mnt/dev

umount /mnt/sys

umount /proc

umount /run

输入sync存盘。

还原结束。

重启。

参考链接:https://baijiahao.baidu.com/s?id=1582409155581803330

Ubuntu系统备份还原教程的更多相关文章

  1. Linux系统备份还原工具2(TAR/压缩工具)

    相比DD备份还原工具,TAR压缩还原工具更加小巧和灵活,但是不能备份MBR.当然可以通过重新安装GRUB来解决MBR的这一问题.同时,TAR的做法也是官方推荐的. 注意:一个硬盘启动时最新经过MBR( ...

  2. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十三):系统备份还原

    系统备份还原 在很多时候,我们需要系统数据进行备份还原.我们这里就使用MySql的备份还原命令实现系统备份还原的功能. 新建工程 新建一个maven项目,并添加相关依赖,可以用Spring boot脚 ...

  3. Vue + Element UI 实现权限管理系统 前端篇(十六):系统备份还原

    系统备份还原 在很多时候,我们需要系统数据进行备份还原.我们这里就使用MySql的备份还原命令实现系统备份还原的功能. 后台接口准备 系统备份还原是对数据库的备份还原,所以必须有后台接口的支持,我们准 ...

  4. 怎么处理Win7系统备份还原提示代码0x80042302的错误?

    我们都知道Win7系统自带备份还原功能,可以在电脑遇到小问题时通过还原至之前备份的正常系统来解决,非常的方便.但是有些用户在使用备份还原功能时,系统会提示0x80042302错误,这该怎么办呢?下面好 ...

  5. DEDECMS网站数据备份还原教程

    备份织梦网站数据 dedecms备份教程 进入DedeCms后台 -> 系统 -> 数据库备份/还原 备份文件在\data\backupdata 下载数据库备份资料\data\backup ...

  6. Ubuntu系统备份工具大全(官方整理推荐)

    其实官方在系统备份这块已经有Wiki整理和收集各类实用的工具.以下是翻译自官方Wiki的部分文档: 备份工具  wiki文档实用程序 工具 界面 格式类型 Raw/File 支持 远程 增量 差异 自 ...

  7. Win7自带的系统备份还原功能如何去使用?

    很多用户都会反映Win7系统使用过程中会出现系统或应用程序方面的小故障,针对这些小问题,再选择进行电脑系统的重装就有些过于麻烦了. 其实Win7系统内带有系统备份和还原的功能,可以在电脑系统出现小问题 ...

  8. LINUX系统备份还原

    1.Linux系统备份工具 REAR (RELAX-AND-RECOVER) https://blog.csdn.net/qq43748322/article/details/78710754?loc ...

  9. Linux系统备份还原工具3(使用Clonezilla/再生龙对硬盘进行镜像和克隆,类似于Ghost)

    说明:经过实验验证,再生龙主要是适合在本机还原原大小的分区,不适合将镜像备份还原到不同大小分区,期间可能有很多莫名奇妙的问题出现.硬盘对拷和PXE网刻这些没发现什么不好.如果要还原到别的电脑镜像制作时 ...

随机推荐

  1. 题解【洛谷P1083】[NOIP2012]借教室

    题面 二分到哪一个申请人要修改订单,可以差分\(+\)前缀和达到\(\Theta(n)\)的\(\text{check}\). 具体细节见代码. #include <bits/stdc++.h& ...

  2. [APIO2010] 回文串 - 回文自动机

    经典题吧 我觉得我要换个板子,这结构体板子真TM不顺手 #include <bits/stdc++.h> using namespace std; const int N = 2e6 + ...

  3. 理解 Oracle 多租户体系中(12c,18c,19c)Revoke 回收权限作用域范围

    本篇探讨以下几个问题:你可提前猜测下面6个场景语句中,哪几个回收可以成功执行? 1. 在CDB级别中对用户进行权限回收,不带 container 子句的效果: 2. 在CDB级别中对用户进行权限回收, ...

  4. 你所不知道的Hello World[C++实现]

    要说OIer界内最简单的程序,那恐怕非Hello World莫属了, 那么这篇文章就介绍如何写Hello World(被打). 最简单的一种实现: #include <iostream> ...

  5. c++中vector函数

    std::vector <cv::Point> VectorPoints 说明:首先定义一个Point(即Point2i---二维整型的点)类型的变量VectorPoints,这就是我们创 ...

  6. QT版本

    最近在linux下安装qt:发现主要的问题是qt的版本问题:下面来谈谈各个版本的理解 Qt 的版本是按照不同的图形系统来划分的,目前分为五个版本: Win: 适用于Miccrosoft Windows ...

  7. CriteriaBuilder jpa 日期date查询

    概要:前端日期选择器选择完之后传一个String到后台,后台的字段的数据类型是date 前端: <label class="layui-form-label" >单据日 ...

  8. ASP.NET MVC4中对JS和CSS的引用

    https://www.cnblogs.com/madyina/p/3702314.html ASP.NET MVC4中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: < ...

  9. Manacher算法求最长回文串模板

    #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...

  10. Oracle客户端安装及下载地址

    一.下载 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461 ...