数据无忧: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

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

以上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2021-06-15 protues(ISIS)脉冲发生器仿真仪表使用

缘由这个脉冲发生器怎么连线_编程语言-CSDN问答

​埃文科技受邀出席2024 “数据要素×”生态大会​

2024“数据要素”生态大会(以下简称“大会”)于2024年6月30日在河南省郑州市举办,大会主题为“加快数据要素化进程 推动新质生产力发展”。 本次大会旨在搭建高水平交流合作平台、分享前沿观点、展示先进技术、交流实践经验,共同探…

开放式蓝牙耳机推荐,开放式耳机选购小技巧大公开!

跑步是我们生活中最常见的运动方式。在跑步中佩戴耳机往往能达到“事半功倍”的效果,如何去选择一款好的运动耳机便需要精挑细选了。作为一个开放式耳机资深玩家兼马拉松参与者,我个人觉得开放式耳机是最适合跑步的了,其开放式的设计更加适合…

数据结构之算法的时间复杂度

1.时间复杂度的定义 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比列,算法中的基本操作的执行次数,为算法的时间复杂度 例1: 计算Func1…

鸿蒙‘ohpm‘ 不是内部或外部命令,也不是可运行的程序-解决方案

🔥 博客主页: 小韩本韩! ❤️ 感谢大家点赞👍收藏⭐评论✍️ 在鸿蒙的DevEco Studio的终端下输入 onpm -v 或者 你需要下载第三方ohpm包的时候提示‘ohpm‘ 不是内部或外部命令,也不是可运行的程序- 主要是因为我们…

【基于R语言群体遗传学】-6-表型计算等位基因频率、最大似然估计方法

到目前为止,我们主要讨论了等位基因和基因型频率,以及我们如何可以从一个推断出另一个。但是,如果我们不知道等位基因频率,只知道种群中存在哪些表型呢?如果我们足够幸运,知道哪些表型对应哪些基因型&#…

网络-calico问题分析

项目场景: calico-node日志提示 Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuifacePattern to match your hosts’s interfaes. 同时,cali开头网卡的mtu是1440大小 原因分析&#xff…

扁鹊三兄弟的启示,探寻系统稳定的秘诀

一、稳定性的重要性 1. 公司收益的角度 从公司收益的视角审视,系统不稳定可能会引发直接损失。例如,当系统突然出现故障导致交易中断时,可能造成交易款项的紊乱、资金的滞留或损失,这不但会阻碍当前交易的顺利完成,还…

web安全的会议室管理系统-计算机毕业设计源码50331

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2国内外研究现状 1.3 相关技术、工具简介 1.3.1 MySQL数据库的介绍 1.3.2 B/S架构的介绍 1.3.3 Java语言 1.3.4 SpringBoot框架 1.4论文结构与章节安排 2 会议室管理系统需求分析 2.1 可行性分析 2.1.1 技术可行性分析 2…

【Redis】真行,原来是这样啊! --Redis自动序列化和手动序列化的区别(存储结构、内存开销,实际写法)

对于Redis有两种序列化和反序列化的方式, 方式一: 一种是通过 注入RedisTemplate 对象,找个对象,通过配置类进行一定的配置,使得使用RedisTemplate 对象时,便会使用配置的那些键、值的序列化方式&#xff…

深度学习Week19——学习残差网络和ResNet50V2算法

文章目录 深度学习Week18——学习残差网络和ResNet50V2算法 一、前言 二、我的环境 三、论文解读 3.1 预激活设计 3.2 残差单元结构 四、模型复现 4.1 Residual Block 4.2 堆叠Residual Block 4.3. ResNet50V2架构复现 一、前言 🍨 本文为🔗365天深度学…

昇腾910B部署Qwen2-7B-Instruct进行流式输出【pytorch框架】NPU推理

目录 前情提要torch_npu框架mindsport框架mindnlp框架 下载模型国外国内 环境设置代码适配(非流式)MainBranch结果展示 代码适配(流式) 前情提要 torch_npu框架 官方未适配 mindsport框架 官方未适配 mindnlp框架 官方适配…

add_metrology_object_generic 添加测量模型对象。找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

*添加测量模型对象 *将测量对象添加到测量模型中 *算子参数: *    MeasureHandle:输入测量模型的句柄; *    Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circl…

淘宝扭蛋机小程序:打造新的扭蛋体验

扭蛋机行业近年来发展非常迅速,呈现出了明显的增长势头,深受年轻消费者的青睐。当下在消费市场中,年轻人占据了很大的份额,这也推动了扭蛋机市场的发展。如今,扭蛋机也正在向多个方向发展,不再局限于线下扭…

如何利用代理IP打造热门文章

作为内容创作者,我们都知道,有时候地理限制和访问障碍可能会成为我们获取新鲜素材和优质信息的障碍。使用代理IP,正是突破这些限制的好方法! 1. 无缝获取全球视野 如果你还在苦恼看不到其他地区的热点文章,你可以尝试…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代,信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及,企业面临着越来越多的信息安全威胁和挑战,如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁,企业…

docker集群部署主从mysql

搭建一个mysql集群,1主2从,使用docker容器 一、创建docker的mysql镜像 下次补上,因为现在很多网络不能直接pull,操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架,它提供了一种新的开发方式和更好的性能体验,帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是:Astro这个是一个网站生成器,可以直接…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发:助手还是取代者? 生成式人工智能(AIGC)正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试,AI工具在提高开发效率的同时,也引发了对开发者职业前景的讨论…

标贝语音识别在智能会议系统的应用案例

语音识别是指将语音信号转换成文本或者其他数字信号形式的过程,随着人工智能在人们日常工作生活中的普及,语音识别技术也被广泛的应用在智能家居、智能会议、智能客服、智能驾驶等领域,以语音识别技术在智能会议系统中的应用为例,…