当前位置: 首页 > news >正文

数据无忧:Ubuntu 系统迁移备份全指南

唠唠闲话

最近电脑出现了一些故障,送修期间,不得不在实验室的台式机上重装系统,配环境的过程花费了不少时间。为避免未来处理类似事情时耗费时间,特此整理一些备份策略。

先做以下准备:

  • U盘启动盘,参考 Rufus 制作 Ubuntu 启动盘
  • 安装了 Ubuntu系统的硬盘 A
  • 用于数据备份的硬盘 B

除了通过硬盘备份,Ubuntu 还有类似 Time Machine 的工具,教程将在后边介绍。

硬盘备份

通过 lsblk 命令查看硬盘信息,假设硬盘A为 /dev/sda,硬盘B为 /dev/sdb

使用 ddddrescue 进行数据拷贝

dd 是主要用于低级别的数据复制和转换。

使用dd命令拷贝数据:

dd if=/dev/sda of=/dev/sdb bs=4M status=progress

参数说明:

  • if:输入文件(硬盘A)
  • of:输出文件(硬盘B)
  • bs:块大小,建议设置较大以提高拷贝速度
  • status:显示拷贝进度

ddrescue 是一个专门用来从损坏的硬盘、光学介质或其他损坏的存储设备中尽可能多地恢复数据的高级工具。它比 dd 更智能、更有效率,适合用于数据恢复工作。

使用 ddrescue 命令进行断点续传:

ddrescue -f /dev/sda /dev/sdb rescuefile.log
  • -f:强制覆盖目标硬盘

修改 UUID

dd 这类命令会完全拷贝硬盘,包括分区的 UUID 信息。为避免潜在的 UUID 冲突,可对新设备进行修改。

假设系统盘挂载在 /dev/sdb2,使用 tune2fs 命令修改 UUID:

tune2fs /dev/sdb2 -U random

通过 blkid 查看修改后的 UUID:

sudo blkid /dev/sdb2

修改后,直接重启系统还会遇到 UUID 识别失败问题。此时,需更新 /etc/fstab 文件中的UUID设置。

挂载硬盘和修改系统配置

  1. 挂载新硬盘
mkdir /mnt/mydisk
mount /dev/sdb2 /mnt/mydisk
  1. 挂载系统目录

为了正常进入系统,需要挂载系统的一些目录:

mount --bind /dev /mnt/mydisk/dev
mount --bind /proc /mnt/mydisk/proc
mount --bind /sys /mnt/mydisk/sys
  1. 进入新系统环境

使用 chroot 命令更改根目录到新硬盘的系统环境:

chroot /mnt/mydisk
  1. 修改/etc/fstab 和更新 grub

编辑 /etc/fstab 文件中的 UUID,然后更新 grub:

nano /etc/fstab
update-grub
  1. 退出 chroot 环境并卸载硬盘
exit
umount /mnt/mydisk/dev
umount /mnt/mydisk/proc
umount /mnt/mydisk/sys
umount /mnt/mydisk

完成上述步骤后,重启系统即可。

特殊处理

  • 硬盘大小相同:直接使用 dd 完全拷贝即可。

  • 硬盘A 比硬盘B 小

    • 使用 dd 拷贝后,通过 gparted 扩大硬盘B的分区,调整 /dev/sdb 及其子分区的大小。
  • 硬盘A 比硬盘B 大,但使用量更少

    • 使用 gparted 缩小硬盘A的分区,再使用 resize2fs 调整文件系统大小:
      resize2fs /dev/sdb1
      
    • 在调整后再进行拷贝。

此外,对于第三种情形,实测在 dd 拷贝过程中终止,且拷贝量大于硬盘A的实际使用量时,也可以正常使用,不需要额外的调整操作。

文件系统检查

操作完成后,建议使用 e2fsck 检查文件系统的完整性:

e2fsck -f /dev/sdb

通过以上步骤,你可以高效、安全地完成硬盘之间的数据迁移和备份。

使用 Timeshift 进行备份

Timeshift 是一个功能强大的工具,可以在 Ubuntu 系统上实现类似于 Mac 的 Time Machine 的备份功能。以下是如何安装和使用 Timeshift 进行系统备份和恢复的详细步骤。

安装 Timeshift

  1. 打开终端并添加 Timeshift 的 PPA 仓库:
    sudo apt-add-repository -y ppa:teejee2008/ppa
    sudo apt-get update
    
  2. 安装 Timeshift:
    sudo apt-get install timeshift
    

配置 Timeshift

安装完成后,运行 Timeshift 配置向导:

sudo timeshift-gtk

按照向导的指引进行设置:

  • 选择备份类型:选择“RSYNC”或者“BTRFS”。大多数用户选择“RSYNC”。
  • 选择备份存储位置:选择一个存储设备或分区来存储备份快照,确保备份位置有足够的空间。
  • 设置计划任务:可以设置每日、每周或每月的自动备份时间,以定期创建系统快照。

手动创建快照

在 Timeshift 主界面中,点击“创建”按钮手动创建系统快照。这可以在需要进行重大系统更改前手动备份当前系统状态。

恢复系统

当系统出现问题时,可以使用 Timeshift 恢复到之前的快照:

  1. 打开 Timeshift。
  2. 选择一个可用的快照。
  3. 点击“恢复”按钮,然后按照向导操作恢复系统。

恢复到新的硬盘

如果需要将系统恢复到一个新的硬盘上,请按照以下步骤操作:

准备新的硬盘
  1. 使用 Ubuntu live CD 或 USB 启动计算机,并将新的硬盘连接到系统。
  2. 使用磁盘工具(例如 GParted)在新的硬盘上创建适当的分区,并格式化为 ext4 文件系统。
安装并运行 Timeshift

在 live 环境下,打开终端并安装 Timeshift:

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

运行 Timeshift:

sudo timeshift-launcher
设置目标设备并恢复快照
  1. 在 Timeshift 的设置中,将目标设备设置为新的硬盘分区。
  2. 选择一个可用的快照,然后点击“恢复”。在恢复选项中,选择新的硬盘分区作为目标。
  3. 按照提示完成恢复过程。
安装引导程序(GRUB)

恢复完成后,需要在新硬盘上安装引导程序(GRUB)。假设新的硬盘是 /dev/sdb,可以执行以下命令:

sudo mount /dev/sdb1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sdb
update-grub
exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt

完成这些步骤后,你应该能够从新的硬盘启动系统。

以上。

相关文章:

数据无忧:Ubuntu 系统迁移备份全指南

唠唠闲话 最近电脑出现了一些故障,送修期间,不得不在实验室的台式机上重装系统,配环境的过程花费了不少时间。为避免未来处理类似事情时耗费时间,特此整理一些备份策略。 先做以下准备: U盘启动盘,参考 …...

中国IDC圈探访北京•光子1号金融算力中心

今天,“AI”、“大模型”是最炙手可热的话题,全球有海量人群在工作生活中使用大模型,大模型产品涉及多模态,应用范围已涵盖电商、传媒、金融、短视频、制造等众多行业。 而回看2003年的互联网记忆, “上网”“在线”是…...

[Unity入门01] Unity基本操作

参考的傅老师的教程学了一下Unity的基础操作: [傅老師/Unity教學] Unity3D基礎入門 [華梵大學] 遊戲引擎應用基礎(Unity版本) Class#01 移动:鼠标中键旋转:鼠标右键放大:鼠标滚轮飞行模式:右键WASDQEFocus模式&…...

vivado DELAY_VALUE_XPHY、DIFF_TERM

延迟_值_XPHY PORT对象上的DELAY_VALUE_XPHY属性指定要添加的延迟量 Versal XPHY逻辑接口的输入或输出路径。在的早期阶段 opt_design在重新生成高级I/O向导IP时 DELAY_VALUE_XPHY值将从PORT复制到的XPHY实例上 输入或输出路径。Vivado设计套件中存在DRCs,以确保 DE…...

C++语言相关的常见面试题目(三)

1. List底层实现原理 省流: list底层实现了一个双向循环链表。 每个元素(或节点)包含三个部分:数据域(_M_Storage)、前驱指针(_M_prev)、后继指针(_M_next)。 数据域:存储实际数据。 前驱指针:指向链表中…...

代码随想录-Day53

739. 每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: …...

Android 如何通过代码实时设置EditTextView光标

背景:换肤框架下,QA进行深色浅色切换说输入框光标颜色没有改变,转UI结果UI说需要修改!!!!! 本来有方法可以设置,但是 设置后未生效。重新进入该页面才生效!&a…...

202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进

202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进 1月2月3月4月5月6月7月8月9月10月11月12月 《365日创意文案》WRITES PUBLISHING,一些日常,是烟火,也是幸福的印记。 当下也…...

iperf3: error - unable to connect to server: No route to host

1.确认iperf3版本是否统一。 2.确认防火墙是否关闭。 关闭防火墙 : systemctl stop firewalld 查看防火墙状态: systemctl status firewalld 3.重新建起链接...

正则表达式中的贪心匹配

在正则表达式中,?既可以表示数量,0次或1次,等效于 {0,1},也可以跟在其它数量限定符之后,表示非贪心匹配,即匹配时匹配搜索到的尽可能短的字符串。 下面来看一个例子: T…...

线程相关概念及操作

【1】线程的概念 1.线程-->进程会得到一个内存地址,进程是资源分配的基本单位线程才是真正进程里处理数据与逻辑的东西进程---》被分配一定的资源线程---》利用进程资源处理数据与逻辑 【2】进程和线程关系: 进程与进程之间是竞争关系,竞…...

2024最新版若依-RuoYi-Vue3-PostgreSQL前后端分离项目部署手册教程

项目简介: RuoYi-Vue3-PostgreSQL 是一个基于 RuoYi-Vue3 框架并集成 PostgreSQL 数据库的项目。该项目提供了一套高效的前后端分离的开发解决方案,适用于中小型企业快速构建现代化的企业级应用。此项目结合了 RuoYi-Vue-Postgresql 和 RuoYi-Vue3 的优点&#xff0…...

PHP源码:新闻门户系统(附管理后台+前台)

一. 前言 今天小编给大家带来了一款可学习,可商用的,新闻门户系统 源码,支持二开,无加密。项目可以扩展为个人博客,和一些社交论坛网址。主要功能:支持文章管理,评论管理,分类管理等…...

15kg级弹簧刀高速巡飞无人机技术详解

弹簧刀高速巡飞无人机,作为一种先进的战术导弹系统,融合了无人机与导弹的双重特性,成为了现代战争中不可或缺的侦察与打击利器。该无人机以其小巧的外形设计、优异的性能表现和广泛的适用领域,受到了全球军事领域的广泛关注。弹簧…...

中国东方资产管理25届秋招北森测评笔试如何高分通过?真题考点分析看完这篇就够了

一、东方资管校招测评题型分析 中国东方资产管理股份有限公司(中国东方资管)的校园招聘测评题型主要包括以下几个部分: 1. **计分题,行测知识**:这部分题量大约在56-57题左右,分为不同的模块进行计时测试。…...

简写单词BC149

BC149 简写单词 题目描述输入描述:输出描述: 题目描述 规定一种对于复合词的简写方式为只保留每个组成单词的首字母,并将首字母大写后再连接在一起 比如 “College English Test”可以简写成“CET”,“Computer Science”可以简写…...

Chapter11让画面动起来——Shader入门精要学习笔记

Chapter11让画面动起来 一、Unity Shader中的内置变量(时间篇)二、纹理动画1.序列帧动画2.滚动背景 三、顶点动画1.流动的河流2.广告牌3.注意事项①批处理问题②阴影投射问题 一、Unity Shader中的内置变量(时间篇) Unity Shader…...

c++之命名空间详解(namespace)

引例 在学习之前我们首先了来看这样一个情形: 在c语言下,我们写了两个头文件:链表和顺序表的。我们会定义一个type(typedef int type)方便改变数据类型(比如将int改成char),来做到整体代换。 但是我们两个头文件里面…...

【大模型】在大语言模型的璀璨星河中寻找道德的北极星

在大语言模型的璀璨星河中寻找道德的北极星 引言一、概念界定二、隐私保护的挑战2.1 数据来源的道德考量2.2 敏感信息的泄露风险 三、偏见与歧视的隐忧3.1 训练数据的偏见传递3.2 内容生成的不公倾向 四、责任归属的模糊地带4.1 生成内容的责任界定4.2 自动化决策的伦理考量 五…...

嵌入式Linux之Uboot简介和移植

uboot简介 uboot 的全称是 Universal Boot Loader,uboot 是一个遵循 GPL 协议的开源软件,uboot是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高级功能。 也就是说,可以在没有系统的情况…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...