Ubuntu 18.04系统搬家,迁移至更大容量硬盘

2023-05-16

Ubuntu从512G固态搬家到2T固态

注意:我的/boot文件夹没有和Ubuntu系统其他分区放在同一个物理硬盘上,这个设置和大多数的默认配置并不一样,因此本文章只是个人记录而非教程。

将Ubuntu 18.04从较小容量硬盘迁移到较大容量硬盘的过程分为几个步骤。以下是详细步骤:

1. 准备新的大容量硬盘。确保已经正确地安装和连接到计算机上。

2. 从Ubuntu 18.04的安装介质(例如USB驱动器)启动计算机。可以使用UltraISO制作Linux的硬盘镜像。

3. 在启动菜单中选择"Try Ubuntu"(尝试Ubuntu)而不是安装。

4. 打开终端并安装gparted分区编辑器(如果尚未安装):

sudo apt update
sudo apt install gparted

5.使用gparted创建新硬盘上的分区。首先,通过以下命令启动gparted

sudo gparted

使用gparted为新硬盘创建一个与旧硬盘相同的分区布局。确保为/boot/(root)和swap分区创建相应的分区。如果有/home分区或者其他分区,也需要对应创建。

6. 使用命令行进行各分区的搬家

1)复制根目录分区

sudo dd if=/dev/sdX1 of=/dev/sdY1 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX1是旧硬盘上的根目录分区,/dev/sdY1是新硬盘上的根目录分区。

2)复制/home分区

sudo dd if=/dev/sdX2 of=/dev/sdY2 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX2是旧硬盘上的/home分区,/dev/sdY2是新硬盘上的/home分区。

3)复制/var分区

sudo dd if=/dev/sdX3 of=/dev/sdY3 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX3是旧硬盘上的/var分区,/dev/sdY3是新硬盘上的/var分区。

4)复制和设置swap分区

a.使用dd命令复制swap分区:

sudo dd if=/dev/sdX4 of=/dev/sdY4 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX4是旧硬盘上的swap分区,/dev/sdY4是新硬盘上的swap分区。

b.使用mkswap命令在新硬盘上的swap分区创建swap签名:

sudo mkswap /dev/sdY4

c.更新/etc/fstab文件以引用新的swap分区UUID。首先,获取新swap分区的UUID:

sudo blkid /dev/sdY4

然后,使用文本编辑器(例如nano)打开/etc/fstab文件(见后文常见问题1):

sudo nano .../etc/fstab # 仅作示例,需要挂载新硬盘并在对应硬盘上操作

/etc/fstab文件中找到旧swap分区的UUID,并将其替换为新swap分区的UUID。保存更改并关闭文件(Ctrl+X后选择Y)。

7. GParted修复unallocated空间

使用dd将/home等分区转移至新硬盘后,GParted显示新硬盘上出现了unallocated空间,是因为dd会精确复制源分区的大小,所以如果新硬盘上的分区比源分区大,那么就会产生未分配的空间。

解决问题:在GParted中选择对应红色感叹号的硬盘选择Check自动修复

注意:如果其他硬盘安装了Windows系统,由于Windows系统的保留也会出现红色感叹号的硬盘,请忽略,只修复安装了Linux系统的对应硬盘位置。

8. 使用boot-repair自动修复引导

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

sudo apt-get install -y boot-repair && boot-repair

选择Advanced Options,选择对应引导所在的硬盘,并实行自动修复。

 

常见问题1:如何编辑大容量硬盘(系统迁移的目标硬盘)上的/etc/fstab文件

需要先挂载新硬盘上的根分区。

1. 创建一个临时挂载点,例如 /mnt/new_root

sudo mkdir /mnt/new_root

2. 挂载新硬盘上的根分区

sudo mount /dev/sdY1 /mnt/new_root

其中,/dev/sdY1是新硬盘上的根分区。请根据实际情况替换Y

3. 现在,可以编辑目标大容量硬盘上的/etc/fstab文件

sudo nano /mnt/new_root/etc/fstab

4. 更新/etc/fstab文件中的UUID,然后保存并关闭文件。(由于dd拷贝,新旧硬盘的UUID应该是对应一致的,经过检查如果确实如此,可以省略此步)

5. 最后,卸载新硬盘上的根分区

sudo umount /mnt/new_root

完成这些步骤后,目标大容量硬盘上的/etc/fstab文件已更新,以正确挂载新硬盘上的/home/var/swap分区。

常见问题2:在迁移完Ubuntu系统后,swap空间依然为迁移前旧硬盘的大小

以下是如何调整swap分区大小的步骤:

1. 关闭旧硬盘上的swap分区:

sudo swapoff -a

或者

sudo swapoff /dev/sdX4

其中,/dev/sdX4是旧硬盘上的swap分区。请根据实际情况替换X

2. 更新/etc/fstab文件以引用新的swap分区UUID。

/etc/fstab文件中找到swap分区的配置行,或者如果不存在,请创建一个新行。确保该行遵循以下格式:

UUID=你的swap分区UUID none swap sw 0 0

swap分区UUID替换为第1步中获得的UUID(UUID可以通过Ubuntu自带的“磁盘”工具获得)。

例如:

UUID=12345678-90ab-cdef-1234-567890abcdef none swap sw 0 0

保存更改并关闭/etc/fstab文件。

3. 重新启动计算机:

sudo reboot

现在,每次重启时,swap分区应该自动挂载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 18.04系统搬家,迁移至更大容量硬盘 的相关文章

  • 应届生学的 java,转自动化测试拿到 15k 薪资,送给大家的经验积分

    窗外 xff0c 西安的冬天阳光明媚 xff0c 坐在电脑前心情十分平静 想在这个难得的闲暇里 xff0c 想起记录一下自己这些年的经历 xff0c 也是给自己留一点以后可以回忆的故事 个人 2015 年入学 xff0c 武汉某大学计科相关
  • 在VS Code的notebook中编写Rust代码

    目录 背景 前提条件 操作步骤 背景 在VS Code的notebook中编写Rust代码 xff0c 听起来就觉得绕 VS Code已经有Rust插件 xff0c 支持编写Rust代码 xff0c 为什么搞这么复杂 为了综合两者的优点 x
  • Linux内核下gitee的使用

    一 什么是git git是一个开源的分布式版本控制系统 xff0c 用于敏捷高效地处理任何或小或大的项目 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 Git 与常用的版本控
  • 洛谷 P1786 帮贡排序

    目录 输入 授予职位 输出前按输出规则排序 输出 最后代码 题目是非常长长长长长长长长长长长长长长长长长长长长长长长长长长长长长 我花了2个小时才做完 这题是大模拟 xff08 打磨你 xff09 xff0c 题目也很长 xff0c 需要耐
  • ./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such

    这个错误提示说明nginx在运行时找不到libpcre so 1这个共享库文件 xff0c 可能是因为系统中没有安装PCRE库或者安装的PCRE库版本不对导致的 解决方法如下 xff1a 确认系统中是否已经安装了PCRE库 xff0c 可以
  • netperf使用指南

    netperf使用笔记 netperf 是一种非常常见的测量网络带宽的工具 xff0c 其安装非常简单 xff1a 1 下载netperf包 2 进入netperf目录 xff0c configure 3 make 4 make insta
  • debian中设置默认声卡

    alsamixer 设置默认声卡 sudo nano etc asound conf 设置声卡1为默认 则写入以下内容 xff1a defaults ctl card 1 defaults pcm card 1 defaults timer
  • zabbix第三方邮箱警告配置

    1 安装postfix软件 root 64 server yum y install postfix Last metadata expiration check 18 30 18 ago on Sun 04 Sep 2022 04 11
  • Python常用基础语法知识点大全合集,看完这一篇文章就够了

    介绍 Python 是一门独特的语言 xff0c 快速浏览一下他的要点 xff1a 面向对象 xff1a 每一个变量都是一个类 xff0c 有其自己的属性 xff08 attribute xff09 与方法 xff08 method xff
  • 删除重复数字的三种方法(详解)

    前言 xff1a 本期是关于去重数字的三种方法详解 xff0c 今天你c了吗 xff1f 输入描述 xff1a 第一行 xff0c 输入一个整数n xff0c 表示序列有n个整数 第二行输入n个整数 xff08 每个整数大于等于1 xff0
  • 【结构体】 结构体引用、结构体数组指针、包含结构的结构体

    目录 一 概念 变量的定义 初识结构体 结构体变量的定义 引用结构体类型的初始化 二 结构体的数组 认识结构体数组 初始化结构体数组 三 结构体指针 初识结构体指针 指向结构体数组的指针 结构体作为函数参数 1 使用结构体变量作为函数参数
  • 【数组的排序方法】 选择法、冒泡法、交换法、插入法、折半法

    目录 前言 一 选择法排序 二 冒泡法排序 三 交换法排序 四 插入法排序 五 折半法排序 前言 我们前面已经了解过数组的理论知识 xff0c 但虽说数组是一个有序的集合 xff0c 但这里的顺序指的是数组元素所在数组中的位置 xff0c
  • 【数组】【循环】用冒泡和顺序排列法从小到大排列十个整数

    一 大致思路 用数组排列十个整数 xff0c 数组的作用无非是用来定义十个整数 xff0c 所以一开始先定义a 10 但那固然可以先定义一个常量为10 xff0c 都一样的 xff0c 然后程序中大多用循环语句 xff0c 输入用循环 外部
  • 有关“当前不会命中断点,还没有为该文档加载任何符号”问题(未解决)

    在学习指针与数组关系时 xff0c 有时会出现关于断点的问题 虽然报错了但是程序可以正常运行 xff0c 只是不会在断点位置停下 在网上查找了很多解决方法 xff0c 如工具 选项 调试 常规中的 要求源文件和原始版本完全匹配 的勾去掉或者
  • 用递归方法求n的阶乘

    解析在代码注释里面 xff0c 源码也在下面 源码 xff1a 用递归方法求n的阶乘 include lt stdio h gt int main int fac int 声明函数 int n y 定义变量 printf 34 请输入一个整
  • C++语言求百鸡问题

    一 问题提出 xff1a 百鸡问题 xff1a 鸡翁一 xff0c 值钱五 xff1b 鸡母一 xff0c 值钱三 xff1b 鸡雏三 xff0c 值钱一 百钱买百鸡 xff0c 问鸡翁 母 雏各几何 xff1f 二 编程求解 xff1a
  • sublime text _注册码

    转自 xff1a https 9iphp com web html sublime text 3 license key html 使用方法 打开 Sublime Text 3 的 Help Enter Licence xff0c 然后根据
  • JS 中的=>箭头函数使用说明

    在新的JS版本中 xff0c 出现了以双箭头 61 gt 表示函数的方式即箭头函数 以下对箭头函数的使用作出说明 一 箭头函数与普通函数 xff08 function xff09 的区别 xff1a 1 1 箭头函数形式如下 xff1a s
  • C语言 冒泡排序

    目标 xff1a 使用冒泡排序对一个数组进行排序 要求 xff1a xff08 1 xff09 从小到大输出排序结果 xff08 2 xff09 输出每一趟排序 xff08 3 xff09 计算交换多少次 一 将数组元素输入 本题要求先输入
  • C语言 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    要求 xff1a 1 xff09 用while循环及getchar 函数完成字符串输入 xff0c 回车键结束 2 xff09 分别统计英文字母 空格 数字和其它字符的个数 3 xff09 打印统计结果 运行参考示例 xff1a 输入1 x

随机推荐