[运维工具]ubuntu下迁移home目录至新的分区教程详解

ubuntu下迁移home目录至新的分区教程详解

前言

首先声明一下,因为此教程涉及到用户重要资料数据,所以操作前:

  • 数据无价,请一定要先备份!
  • 数据无价,请一定要先备份!
  • 数据无价,请一定要先备份!

如果你有以下的烦恼:

  • 当初装系统的时候,忘记分 /home 目录;
  • 当初装系统的时候, /home 分区分了较小的空间;
  • 用了Ubuntu一段时间后,发现 /home 所在的磁盘即将爆满,但是磁盘没有可以拓展的空间

因此,为了解决磁盘 爆满 的问题,只能将数据“搬家”了,下面是整个“搬家”的过程。

正文

1、检测新硬盘

在插入新硬盘之前,我们需要检测硬盘是否被识别。可以使用以下命令检查:

sudo fdisk -l

如果新的硬盘识别不出来,可以尝试重启系统之后再次检查。

2、格式化新分区
在对新硬盘进行分区之后,需要对新分区进行格式化。可以使用以下命令对新分区进行格式化:

sudo mkfs.ext4 /dev/sdb5

其中,/dev/sdb5 是新分区的设备文件名,ext4 是要使用的文件系统类型。如果要使用其他文件系统类型,可以将 mkfs.ext4 替换成相应的文件系统类型,如 mkfs.ntfs

3、挂载新分区
在对新分区进行格式化之后,需要将其挂载到系统目录下才能使用。可以使用以下命令挂载新分区:

sudo mkdir /home_data
sudo mount /dev/sdb5 /home_data

注意:

如果你想要挂载一个新的硬盘作为磁盘使用,那么到这里就可以了。

只不过,需要每次开机后都执行一下 挂载 命令。

将挂在添加到启动挂在文件中就会开机自动挂载 /etc/fstab ,在文件中增加一行:

/dev/sdb5 /home_data ext4 defaults 0 2

其中:

  • /dev/sdb5:要挂载的硬盘
  • /home_data:挂载目录
  • ext4:磁盘类型
  • defaults:所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser,和 async。
  • 0:dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 应设为 0
  • 2:fsck选项,fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若文件系统无需在启动时扫描检查,则设置该字段为0。

4、拷贝数据

/home 目录下的所有文件 复制/同步 到目标盘挂载的目录下(这里一定要注意加上-a,否则,复制过去文件的所有者会变成root,而且路径一定要设置正确,否则都会导致重启的时候在登陆界面无限循环,无法进入图形界面。)

sudo cp -arv /home/* /test

拷贝中,“sudo rsync -av /home/ /test” 和 “sudo cp -arv /home/* /test” 相同的效果;
sudo rsync -av /home/ /test 命令会递归复制 /home 目录及其所有子目录和文件到 /test 目录。如果 /test 目录不存在,将会创建。如果 /test 目录存在,则会将 /home 目录及其所有子目录和文件复制到 /test 目录,覆盖 /test 目录中已有的文件。

sudo cp -arv /home/ /test* 命令会将 /home 目录中的所有文件和子目录逐个复制到 /test 目录。如果 /test 目录不存在,将会创建。如果 /test 目录存在,则会将 /home 目录中的所有文件和子目录复制到 /test 目录,覆盖 /test 目录中已有的文件。

以下是两条命令的详细区别:

参数rsynccp
-a保留所有权限、所有者和时间戳信息保留所有权限、所有者和时间戳信息
-r递归复制逐个复制
-v显示详细的复制过程显示详细的复制过程

在大多数情况下,rsync 命令是更有效的复制命令。这是因为 rsync 命令会使用传输算法来减少数据传输量。如果您需要复制大量文件或目录,rsync 命令是更好的选择。
但是,如果您只需要复制少量文件或目录,cp 命令可能更快。这是因为 cp 命令不需要使用传输算法。

5、修改启动挂载文件 /etc/fstab

# 备份原文件
sudo cp -a /etc/fstab /etc/fstab.old

查看目标盘的uuid:

sudo blkid | grep /dev/sda5

编辑 /etc/fstab 文件,将上一步查找到的uuid替换文件中的uuid。

以 uuid为:37a3d47a-875c-4072-9b0a-ce665e8d60f0, 例如:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=9d2858b6-3e81-4b65-ade7-7167154b24ea /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=50D1-4C39  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sdb during installation
## 增加这一行,将 uuid 替换为新磁盘的 uuid:
UUID=37a3d47a-875c-4072-9b0a-ce665e8d60f0 /home           ext4    defaults        0       2
# swap was on /dev/sda3 during installation
UUID=eb30e557-ee8c-4831-be5f-c7f09b9ea6ec none            swap    sw              0       0

注意:defaults ,记得加上 s

重启, /home 目录更换成功;

注意事项

成功操作后,如果磁盘空间够用,则无需其他操作直接用即可。

如果原先的磁盘已经占用很满,但是发现数据迁移后并没有释放空间,这是因为原先的数据都还在。

如果想要释放空间(删除原先的数据),则跟随以下步骤操作:

小心谨慎操作,以防数据丢失

重启之后,可以尝试在 /home 目录中新建文件,以确定是否在期望的操作空间中。

重新挂载磁盘,确定是否成功载入目录;

如果成功,则删除原先磁盘的数据;

reference

@misc{BibEntry2023Nov,
title = {{ubuntu下迁移home目录至新的分区教程详解}},
year = {2023},
month = nov,
urldate = {2023-11-13},
language = {chinese},
note = {[Online; accessed 13. Nov. 2023]},
url = {https://www.yii666.com/blog/222168.html}
}

@misc{BibEntry2023Nov,
title = {{如何在Ubuntu中挂载新硬盘{ _ \_ _}ubuntu挂载硬盘-CSDN博客}},
year = {2023},
month = nov,
urldate = {2023-11-13},
language = {chinese},
note = {[Online; accessed 13. Nov. 2023]},
url = {https://blog.csdn.net/qq_33031419/article/details/133056014}
}

@misc{BibEntry2023Nov,
title = {{Linux文件xn–ih7c/etc/fstab-CSDN博客}},
year = {2023},
month = nov,
urldate = {2023-11-13},
language = {chinese},
note = {[Online; accessed 13. Nov. 2023]},
url = {https://blog.csdn.net/weixin_45264425/article/details/126963781}
}

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

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

相关文章

牛客网刷题笔记231112 最小k位数+二叉树层序遍历+SQL异常邮件概率

算法题牛客网NC119 最小的k个数 题目&#xff1a; 用了一下python列表的便利&#xff0c;不知道在面试时允许用不。当然最简单的方法其实是直接sort()一下取前k位数即可。本次写的思路如下&#xff1a; 用一个最大容量为k的列表存储结果&#xff0c;遍历n个元素&#xff0c;当…

技术架构 - 应用数据分离,应用服务集群架构

前言 上一篇文章介绍了单机架构&#xff0c;由于性能瓶颈&#xff0c;满足不了高访问量&#xff0c;所以演化出了数据分离架构。 这种架构也很简单只是将应用服务和数据库服务分离开来&#xff0c;避免单一架构的资源争夺的情况。 一、 应用数据分离架构 1. 简介 应用服务和…

ChatGPT助力高效办公——神奇的效率工具Airy

Airy是一款免费而又强大的高效办公软件&#xff0c;用户可以通过快捷键和丰富的内置插件&#xff0c;充分发挥GPT-3.5模型的强大功能&#xff0c;轻松实现搜索、翻译、文本生成与写作、文本概括与总结&#xff0c;同时还可以作为一款日程提醒工作&#xff0c;记录和提醒每天要做…

现场直击!触想智能亮相德国2023 SPS展会

当地时间11月14日上午9时 2023 年(德国)纽伦堡国际工业自动化及元器件展览会 SPS 展(以下简称&#xff1a;SPS展会)正式拉开帷幕&#xff0c;触想智能与来自全球各地的领先科技公司及前沿业者齐聚盛会&#xff0c;共赴一场科技与创新交汇的“饕餮盛宴”。 △ 2023 SPS展会开幕(…

初识VBA代码及应用VBA代码第四节:如何录制宏

《VBA之Excel应用》&#xff08;10178983&#xff09;是非常经典的&#xff0c;是我推出的第七套教程&#xff0c;定位于初级&#xff0c;目前是第一版修订。这套教程从简单的录制宏开始讲解&#xff0c;一直到窗体的搭建&#xff0c;内容丰富&#xff0c;实例众多。大家可以非…

NSSCTF第12页(1)

[FSCTF 2023]细狗2.0 应该是和[HUBUCTF 2022 新生赛]ezsql搞混掉了 点击按钮出现了 发现输入什么回显什么 伪协议也不行 看源代码发现了这个玩意 输入了1;发现了其他回显 ls 发现了两个文件 发现被限制了 不知道是cat还是空格 绕过 直接找吧还是 得到flag [SCTF 2021]loginm…

系列八、Mybatis一对多查询,只查询出了一条记录

一、Mybatis一对多查询&#xff0c;只查询出了一条记录 1.1、问题说明 典型的权限管理框架的数据库表中&#xff0c;一般会存在这样3种角色的表&#xff0c;即用户表、角色表、用户角色关联表&#xff0c;表设计好之后&#xff0c;往这三张表中初始化了一些测试数据&#xff0…

前端 JavaScript 数组相关知识点有哪些?

JavaScript 中的数组是一种数据结构&#xff0c;用于存储一系列值。在前端开发中&#xff0c;数组是一种常见的数据类型&#xff0c;经常用于存储和处理数据。以下是一些前端 JavaScript 数组相关的知识点&#xff1a; 1、数组的定义和声明 在 JavaScript 中&#xff0c;可以…

Debezium-Embedded 实时监控MySQL数据变更

1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务&#xff0c;并配置一个或多个连接器来监控上游数据库&#xff0c;并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka&#xff0c;在那里它们可以被许多不…

Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView

Flutter.源码分析 GridView flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView 李俊才 的个人博客&#xff1a;https://blog.csdn.net/qq_28550263 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134375048 本文提供 Flutter 框…

类似于推箱子的小游戏 寻找 最短路径

实现效果如下 类似 推箱子小游戏 的变种 C/C版本 BFS最短路径 黑色代表墙壁 不能越过 蓝色代表HOME点 灰色代表要找的小箱子 绿色代表路径 最终目标是将灰色的小箱子移动到蓝色的HOME点 需要两次搜索 第一次是 出发点到灰色小箱子 第二次是灰色小箱子到蓝色HOME点 BF…

Web服务Openlab的搭建

Web服务Openlab的搭建 网站需求&#xff1a; 基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站 基于 www.openlab.com/student 网站访问学生信息&#xff0c; 基于 www.openlab.…

go使用线程锁,等待所有子线程执行完毕示例

go使用线程锁&#xff0c;等待所有子线程执行完毕示例 package mainimport ("fmt""sync" )var count int64 var countSync int64func main() {fmt.Println("开始执行")var wg sync.WaitGroupwg.Add(2000) // 设置等待组的计数器为…

C/C++ #运算符、##运算符、变参宏 ...和_ _VA_ARGS_ _

文章目录 用宏参数创建字符串&#xff1a;#运算符函数宏#号作为一个预处理运算符&#xff0c;可以把记号转换成字符串 预处理器粘合剂&#xff1a;##运算符变参宏&#xff1a;...和_ _VA_ARGS_ _参考 用宏参数创建字符串&#xff1a;#运算符 函数宏 下面是一个类函数宏&#…

MongoDB入门级别教程全(Windows版,保姆级教程)

下载mongodb 进入官网&#xff1a; Download MongoDB Community Server | MongoDB 选择msi&#xff0c;Windows版本 下载完后直接双击&#xff1a; 选择complete 这里建议改地方&#xff1a; 我这里直接改成d盘&#xff1a;work目录下面&#xff1a; 点击next&#xff1a; 因…

spring cloud-注册中心(Eureka)

一、服务注册中心组件(*) 定义&#xff1a;服务注册中心就是在整个微服务架构单独抽取一个服务&#xff0c;该服务不做项目中任何业务功能&#xff0c;仅用来在微服务中记录微服务、对微服务进行健康状态检查&#xff0c;及服务元数据信息存储常用的注册中心&#xff1a;eurek…

[蓝桥杯复盘] 第 3 场双周赛20231111

[蓝桥杯复盘] 第 3 场双周赛20231111 总结深秋的苹果1. 题目描述2. 思路分析3. 代码实现 鲜花之海1. 题目描述2. 思路分析3. 代码实现 斐波拉契跳跃2. 思路分析3. 代码实现 星石传送阵2. 思路分析3. 代码实现 六、参考链接 总结 做了后4题。https://www.lanqiao.cn/oj-contes…

『亚马逊云科技产品测评』活动征文|阿里云服务器亚马逊服务器综合评测

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 引言一、亚马逊&阿里云发展历史介绍1.1 亚马逊发展历史1.2…

【开题报告】基于JavaWeb的奢侈品选购平台的设计与实现

1.研究背景 基于JavaWeb的奢侈品选购平台的设计与实现项目背景可以从奢侈品行业的发展趋势、消费者需求和电子商务的发展等方面展开阐述。 &#xff08;1&#xff09;奢侈品行业的发展趋势 随着中国经济的不断增长和居民收入水平的提高&#xff0c;奢侈品市场呈现出持续增长的…

【 OpenGauss源码学习 —— 列存储(CStore)(六)】

列存储&#xff08;CStore&#xff09;&#xff08;六&#xff09; 概述CStore::GetCUDataFromRemote 函数CStore::CheckConsistenceOfCUDescCtl 函数CStore::CheckConsistenceOfCUDesc 函数CStore::CheckConsistenceOfCUData 函数额外补充 声明&#xff1a;本文的部分内容参考…