【原创】如何备份和还原Ubuntu系统,非常详细!!

前言

我在虚拟机装了一个xfce4的Ubuntu桌面版,外加输入法、IDEA等,我想将这个虚拟机里的系统直接搬到物理机中,那我可以省的再重新装一遍、配置xfce4桌面、修改一堆快捷键还有配置idea了,那直接说干就干。

本教程基于Ubuntu24.04,其他版本可能存在区别,本教程只对该版本负责,谢谢理解!

操作比较

Ubuntu还原系统不能说和Windows完全一样,那也能说是大差不差了,我来做个比较大家就清楚了:

【PE系统】Windows:Windows PE(Windows自带的,还有各种第三方PE)。Ubuntu:Ubuntu Live CD(就是Ubuntu桌面版本的那个ISO镜像,不要使用服务器版本的Ubuntu镜像,它的PE没有桌面)

【PE引导工具】都是Ventoy,没错!Ventoy可以引导Ubuntu安装镜像

【系统备份工具】Windows:Dism++,将系统打包为wim包。Ubuntu:tar命令直接将整个系统打成tar包

【系统还原工具】Windows:Dism++,释放wim包到C盘。Ubuntu:tar命令直接解压

【分区工具】Windows:DiskGenius或者其他分区工具。Ubuntu:gparted(推荐)或者fdisk

【引导】都推荐使用UEFI引导

【引导恢复工具】Windows:Dism++。Ubuntu:grub-install命令

可以看见Windows备份还原基本都依靠Dism++解决,而Ubuntu用的软件就比较零碎了,但是Ubuntu的好处是:你可以将这些命令全部写在一个sh文件里,到时候直接执行即可,甚至比你用Windows还要省事。

说明

由于我物理机已经还原成功了,我懒得再装一遍,因此本教程还是采用VMware Workstation虚拟机演示,当然做法和物理机差不多。我保证本篇博客是我从头开始做起,边操作边截图的,能和大家的操作保持一致。

备份系统

先给大家展示一下我改了好久的Ubuntu使用的xfce桌面,体验基本和Windows差不多了,半透明的“任务栏”逼格还是挺高的

创建备份目录

开始正题,在桌面右键打开终端,在根目录创建备份系统的文件夹

su
cd /
mkdir backup
cd backup

创建exclude.txt

创建一个文件,填入需要排除的目录,特别是这个backup目录,不然tar命令就递归了,你永远不可能将这个系统压缩完。其中swap.img是虚拟内存,这个也不需要放到系统压缩包中。如果其他有不需要备份的文件也可以一起echo到这个exclude.txt中,这比Dism++直接打wim包自由多了

echo "/proc" > exclude.txt
echo "/sys" >> exclude.txt
echo "/tmp" >> exclude.txt
echo "/run" >> exclude.txt
echo "/mnt" >> exclude.txt
echo "/media" >> exclude.txt
echo "/backup" >> exclude.txt
echo "/lost+found" >> exclude.txt
echo "/swap.img" >> exclude.txt

打包整个系统

然后就是备份系统的核心步骤:

tar --exclude-from=exclude.txt -czpvf /backup/system_backup.tar.gz /

将整个根目录都打包进tar包中,这一步可能耗时比较漫长,主要看你的系统里有多少文件,你的CPU和硬盘快不快了

取出tar包

打包完了,然后将这个system_backup.tar.gz从虚拟机里传输出来,这个应该不用教吧……直接用SFTP连接就能拿出来了

将这个system_backup.tar.gz拷贝到非PE的U盘中,且这个U盘建议格式化为exfat,而不是ntfs,就像这样:

还原系统

准备材料

1、桌面版本的Ubuntu ISO镜像

2、U盘1,带有Ventoy引导的U盘

3、U盘2,exFAT分区,包含system_backup.tar.gz

4、需要还原系统的电脑,且主板引导设置为UEFI

由于我物理机已经还原好了,后续我全部使用虚拟机进行演示了

 插上U盘

物理机包括带有Ventoy的U盘和带有系统tar包的U盘。

虚拟机需要挂载物理磁盘

由于我电脑的硬盘比较多,U盘都排到5了,大家根据自己的情况选择盘,可以使用下面的“使用单个分区”+下一步,检查该盘是否为你的U盘

设置UEFI引导

虚拟机也要使用UEFI引导(该步物理机需要在主板中设置引导为UEFI而不是BIOS)

U盘启动

将Ubuntu ISO镜像复制到Ventoy分区的根目录中,设置U盘启动顺序为UEFI引导的U盘为第一位,从U盘启动。

进入Ubuntu PE

进入Ventoy界面后,选择Ubuntu镜像进入Ubuntu PE系统

虚拟机需要使用ISO镜像文件

虚拟机还要关闭“显示器”中的3D加速,否则Ubuntu PE显示会有问题

后续物理机和虚拟机操作都一样了

选择进入Ubuntu PE

Try Ubuntu

注意,前面几步都能直接next,而这一步必须选择Try Ubuntu,因为你是还原系统,而不是真的去安装这个系统

查看分区

首先最重要的就是查看当前分区情况,在Ubuntu PE桌面打开终端,执行

lsblk

其中14.5G的是我的U盘,sdb是我未分区的磁盘,如果是Ventoy,还会出现Ventoy自己的分区。

新磁盘分区

使用gparted,对新磁盘进行分区操作,直接桌面打开终端输入gparted即可,并选择需要分区的磁盘

创建分区表

对于目前还没有分区表的磁盘来说第一步就是要创建分区表,如果已经有的可以省略该步

选择gpt分区表

创建efi分区

我之前踩坑失败了好几次就是因为没有分这个efi分区,导致系统引导失败

推荐efi分区大小为300MB,文件系统为fat32,分区名可选,这跟拿DiskGenius在Windows中分区是一模一样的

创建系统主分区

我这人喜欢把整个盘都当主分区用,直接将省下的磁盘空间都分完,默认即可

完成新磁盘分区

点击绿色的√即可完成分区操作

查看分区

目前sdb1为efi分区,sdb2为系统分区

挂载U盘

/dev/sda1为我的U盘分区,大家挂载的时候注意看一下,别挂错了

# 进入root模式
sudo su
cd /
mkdir up
# 看清分区,挂载的是带有系统tar包U盘的分区
mount /dev/sda1 /up
cd /up
ls

执行效果如下:

挂载系统分区和efi分区

目前我将整个磁盘都挂载到/mnt目录下,efi挂载到/mnt/boot/efi下

mount /dev/sdb2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sdb1 /mnt/boot/efi

还原系统

本篇的重头戏终于到了,终于能还原整个系统了,使用tar命令还原

cd /up
tar zxvf system_backup.tar.gz -C /mnt

当然这步耗时也很长,需要耐心等待

补上缺失的目录

这步必须要加,不然系统可真就起不来啊!!我当时装被坑了好几次,一个个补啊😭😭

cd /mnt
mkdir sys
mkdir proc
mkdir run

建完之后/mnt目录长这样:基本已经初具“人”形

绑定目录,切换根目录

这也是大坑,如果要顺利创建完成efi引导,这步必不可少,不然创建引导会报错,然后就引导失败了😭😭

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

现在根目录被切换为还原后的系统了

恢复efi引导

执行以下命令即可恢复efi引导

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu --recheck
update-grub

如果一切正常应该和我显示一样的信息,得真的没有报错才行

注释掉原来的boot分区

由于磁盘都变了,分区UUID也变了,因此原来的分区信息不可用了,得注释掉,不然后续挂载分区失败,启动要等90秒

vi /etc/fstab

把这个boot分区注释掉,然后:wq保存

还原swap.img

由于我们备份系统的时候特地排除了swap.img,因此这里需要还原一下,其中8G就是你的虚拟内存(交换分区)的大小

fallocate -l 8G /swap.img
chmod 600 /swap.img
mkswap /swap.img
swapon /swap.img

swap.img被顺利创建

退出chroot重启系统

终于到最激动人心的最后一步了

exit
reboot

这里可以把U盘都拔了,虚拟机可以将CD去掉了

配置网络

我也没想到能一次成功,这篇博客是我边操作边写的,真的是一次成功,直接进入系统了,相当顺利,但是目前是没有网的,因为你的网卡和你备份的系统网卡名称不!一!样!这就导致你进入系统后发现根本没有网!

查看你的网卡情况

ip a

网卡名称为ens33,状态为DOWN,说明网卡是关闭状态

编辑网卡配置

进入/etc/netplan,查看其中的文件

su
cd /etc/netplan
ls

我这边是50-cloud-init.yaml,就是你了!编辑这个文件,vi 50-cloud-init.yaml

很明显这个文件里的网卡名称为ens32,和我的网卡名称完全不同,这就导致了网卡无法正常启动,需要改成你自己的网卡名称,然后:wq保存

接受变更

执行以下命令,接受netplan变更,外加启动你的网卡

netplan apply
# 这里的ens33要改为你自己的网卡名称
ip link set ens33 up

查看结果

这下终于有网了

结语

我原来很天真的以为备份还原Ubuntu系统是一个非常简单和省事的事,因为很多备份还原Ubuntu的博客就寥寥几行就完事了,结果完全事与愿违,我下班后折腾了3,4个晚上才终于恢复成功,要不是AI助力,外加我坚持不懈的研究,这篇博客根本出不来,就连这篇博客我都写了一个晚上,真是不知道其他那些几行文字就解决的人是如何做到的,简直令人匪夷所思!如果对虚拟机相关技术感兴趣可以来我的Q群170618278吹水,嗯,就是一个吹水群,我这人很忙不一定有时间来帮你解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLO系列番外——数据偏移与分布不均对模型的影响分析与炫酷的动态分布图代码分享

背景 在深度学习的应用中,数据质量对模型的性能至关重要。随着智能化应用场景的扩展,数据的复杂性不断增加,如何处理数据偏移(Data Shift)和数据分布不均(Data Imbalance)成为了模型训练和部署过…

Shell脚本6 -- 条件判断if

声明: 本文的学习内容来源于B站up主“泷羽sec”视频【shell编程(4)脚本与用户交互以及if条件判断】的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题&#xff0c…

ks 小程序sig3

前言 搞了app版的快手之后 (被风控麻了) 于是试下vx小程序版的 抓包调试 小程序抓包问题 网上很多教程, github也有开源的工具代码 自行搜索 因为我们需要调试代码,所以就用了下开源的工具 (可以用chrome的F12功能&a…

hive 统计各项目下排名前5的问题种类

实现指定某项目下的数据效果图如下所示: 其中 ABCDE 为前5名的问题种类,其中A问题有124个(出现了124次) 数据说明: 整个数据集 包含很多项目一个项目 包含很多问题一个问题 选项 可认为是 类别值,所有出…

如何解决将长视频转换为易于处理的 Spacetime Patch 的问题?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 将长视频转换为易于处理的 Spacetime Patch(时空补丁)是一项挑战,尤其是当视频内容复杂或包含长时间连续场景时。在计算机视觉和视频分析等领域,Spacetim…

[ACTF2020]Upload 1--详细解析

信息收集 题目告诉我们是一道upload,也就是文件上传漏洞题目。 进入界面,是一个灯泡,将鼠标放在图标上就会出现文件上传的相应位置: 思路 文件上传漏洞,先看看有没有前端校验。 在js源码中找到了前端校验&#xff…

机器学习基础06

目录 1.梯度下降 1.1梯度下降概念 1.2梯度下降公式 1.3学习率 1.4实现梯度下降 1.5API 1.5.1随机梯度下降SGD 1.5.2小批量梯度下降MBGD 1.6梯度下降优化 2.欠拟合过拟合 2.1欠拟合 2.2过拟合 2.3正则化 2.3.1L1正则项(曼哈顿距离) 2.3.2…

可认证数据资产合约标准协议(CMIDA-1)意见征集

标准背景 数据资产具备多维度的属性,涵盖行业特性、状态信息、资产类型、存储格式等。数据资产在不同流通主体之间可理解、可流通、可追溯、可信任的重要前提之一是存在统一的标准,缺失统一的标准,数据混乱冲突、一数多源、多样多类等问题将…

为什么 Vue3 封装 Table 组件丢失 expose 方法呢?

在实际开发中,我们通常会将某些常见组件进行二次封装,以便更好地实现特定的业务需求。然而,在封装 Table 组件时,遇到一个问题:Table 内部暴露的方法,在封装之后的组件获取不到。 代码展示为: …

Dolby TrueHD和Dolby Digital Plus (E-AC-3)编码介绍

文章目录 1. Dolby TrueHD特点总结 2. Dolby Digital Plus (E-AC-3)特点总结 Dolby TrueHD 与 Dolby Digital Plus (E-AC-3) 的对比 Dolby TrueHD和Dolby Digital Plus (E-AC-3) 是两种高级的杜比音频编码格式,常用于蓝光影碟、流媒体、影院等高品质音频传输场景。它…

Python Pillow图像编辑

Pillow简介 Pillow 不仅是 PIL 库的“复制版”,而且它又在 PIL 库的基础上增加了许多新的特性。Pillow 发展至今,已经成为了比 PIL 更具活力的图像处理库。 Pillow 的初衷只是想作为 PIL 库的分支和补充,如今它已是“青出于蓝而胜于蓝”。 …

1+X应急响应(网络)系统信息收集分析:

系统信息收集分析: 系统启动项和计划任务分析: 系统进程,服务分析: 内存取证: 系统崩溃转储:

找不到vcruntime140.dll怎么办,彻底解决vcruntime140.dll丢失的5种方法

当计算机系统中无法找到vcruntime140.dll这个特定的动态链接库文件时,可能会引发一系列运行问题,具体表现形式多样且影响范围较广。对于依赖于该文件运行的各类软件应用来说,缺失vcruntime140.dll将直接导致程序无法正常启动或执行&#xff0…

Redis学习 ——缓存

文章目录 一、Redis缓存的介绍二、Redis缓存问题2.1 缓存穿透2.2 缓存击穿2.3 缓存雪崩2.4 双写一致性2.5 缓存持久化RDBAOF 三、缓存数据管理3.1 数据过期策略3.2 数据淘汰策略 一、Redis缓存的介绍 我们在日常的代码编写中比较少使用到Redis,但是如果涉及到了比较…

“乐鑫组件注册表”简介

当启动一个新的开发项目时,开发者们通常会利用库和驱动程序等现有的代码资源。这种做法不仅节省时间,还简化了项目的维护工作。本文将深入探讨乐鑫组件注册表的概念及其核心理念,旨在指导您高效地使用和贡献组件。 概念解析 ESP-IDF 的架构…

视觉SLAM--经典视觉SLAM框架

整个视觉SLAM流程主要包括以下步骤: 1、传感器信息读取:在视觉SLAM中主要为相机图像信息的读取和预处理。 2、前端视觉里程计:估算相邻图像间相机的运动,以及局部地图的样子。 3、后端(非线性)优化&#…

Ajax的相关内容

一、Ajax的使用步骤 1.创建XML对象 const xhrnew XMLHttpRequest(); 2.监听事件,处理响应 3.准备发送请求 true表示异步 ajax中永远是异步,永远是true 4.发送请求 二、GET和POST请求 三、JSON的三种形式 四、JSON的方法 五、跨域 六、XHR的属性和方法…

有限状态机(续)

一、添加刀光和场景 1、资源链接: 武器刀光:https://assetstore.unity.com/packages/tools/particles-effects/melee-weapon-trail-1728 场景:https://assetstore.unity.com/packages/3d/environments/fantasy/casual-tiny-environment-ju…

2024年11月16日 星期六 重新整理Go技术

今日格言 坚持每天进步一点点~ 一个人也可以是一个团队~ 学习全栈开发, 做自己喜欢的产品~~ 简介 大家好, 我是张大鹏, 今天是2024年11月16日星期六, 很高兴在这里给大家分享技术. 今天又是休息的一天, 做了很多的思考, 整理了自己掌握的技术, 比如Java, Python, Golang,…

【Linux】软件包管理器yum、编辑器vim

Linux 1.源码安装 和 软件包安装2.软件包管理器yum1.什么是包管理器 3.vim编辑器1.vim常见的三种模式2.vim命令模式:命令集3.vim底行模式:命令集4.使用vim的小技巧5.vim配置 1.源码安装 和 软件包安装 在Linux下安装软件,一个通常的办法是下…