服务器修改/home的挂载路径

写在前面:前段时间新装了一台服务器,/home目录原本是挂在在系统盘/dev/sda4的分区下,但是系统盘的空间比较小,为了保证后续使用起来,不会遇到磁盘很快就占满的情况,现在需要将 /home 独立出来,挂载到另一块 NVMe 高速硬盘 /dev/nvme0n1p1,这样新用户的主目录将存储在这块 3.5T 空间充足的硬盘上,而不是原来的 /dev/sda4(仅 831G)。

🔹 1、列出系统的块设备

lsblk    # lsblk -f 可以查看文件系统类型、UUID 等

lsblk 是 Linux 下一个非常实用的命令,主要用于 列出系统中所有的块设备(block devices),包括硬盘、分区、U盘、SSD 等,可以得知nvme0n1p1的高速硬盘目前是挂载在data目录下;

结果解读:

  • NAME:设备名称

  • TYPE:设备类型(disk 是物理磁盘,part 是分区)

  • MOUNTPOINT:当前挂载在哪个目录

🧩 lsblk 的作用总结:

功能说明
查看磁盘和分区结构显示硬盘、分区、挂载点等信息
不显示RAMdf 不同,它只关注磁盘类设备,不显示内存使用
可以显示文件系统类型、挂载点等加参数 -f 可以显示 FSTYPE、LABEL、UUID 等
辅助挂载/格式化常与 mountmkfsfstab 配合使用

🔹 2、确认要迁移新磁盘是 ext4

lsblk -f        # 输出的 FSTYPE 那里显示ext4即可

确认 FSTYPEext4,如果没有格式化,执行:

sudo mkfs.ext4 /dev/nvme0n1p1

⚠️ 这将清空分区!

🔹 3、创建临时挂载点并挂载新分区

sudo mkdir /mnt/new_home
sudo mount /dev/nvme0n1p1 /mnt/new_home

这步首先在 /mnt 目录下创建一个名为 new_home 的空目录,用作临时挂载点

📌 说明:

  • /mnt 是 Linux 中推荐用来临时挂载其他设备的标准目录。

  • 你不能直接把分区挂载到 /home,因为 /home 当前正在使用。

  • 所以你先创建 /mnt/new_home,后续可以把目标分区挂载到这里进行数据操作。

将你的 NVMe 磁盘分区(/dev/nvme0n1p1)挂载到刚刚创建的 /mnt/new_home

📌 说明:

  • mount 是 Linux 的挂载命令,它将一个磁盘分区关联到系统目录结构中

  • 挂载后,你就可以像访问普通文件夹一样访问该磁盘内容,例如:

ls /mnt/new_home
  • 这个操作是临时生效的,重启后会失效,除非写入到 /etc/fstab

🔹 4、复制当前 /home 数据到新分区

sudo rsync -aXS --progress /home/ /mnt/new_home/

确保所有文件完整复制,包括权限和软连接。

🔧 参数说明

参数功能
-a归档模式,保留文件的所有属性(权限、时间戳、符号链接等)
-X保留扩展属性(如 ACL、SELinux 安全上下文)
-S稀疏文件优化(sparse file),节省磁盘空间
--progress显示每个文件的复制进度(用于大文件时很有用)

🔹 5、备份并编辑 /etc/fstab 

sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab

前面我们知道/data目录是挂载在NVMe 高速硬盘 /dev/nvme0n1p1上的,所以我们只需要把这里的/data修改为/home即可;

该文件每列的说明如下:

说明
file system分区标识(设备路径或 UUID)
mount point挂载点(系统目录)
type文件系统类型(如 ext4, vfat, swap
options挂载选项(如 defaults, ro, noatime
dump是否需要 dump 备份(一般为 0)
pass是否在开机时进行 fsck 检查(0=不检,1=优先,2=其次)

🔹 6、准备切换挂载点

sudo mv /home /home.bak         # 临时备份旧 home:把当前系统中的 /home 目录重命名为 /home.bak(备份),为新的 /home 腾出挂载点
sudo mkdir /home                # 创建空目录用于挂载:创建一个新的空 /home 目录,准备挂载新的 /home(此时挂载的是 /dev/nvme0n1p1)
sudo mount -a                   # 重新挂载所有文件系统:按照 /etc/fstab 中的配置重新挂载所有文件系统,此时 /dev/nvme0n1p1 应该会挂载到新建的 /home 上

🔹 7、验证挂载是否成功

df -h /home

输出如下则说明/home挂载到了 /dev/nvme0n1p1,成功 ✅ 

🔹 8、清理旧的 /home 

如果一切正常,则可以删除:

sudo rm -rf /home.bak

    实现效果:

    • 所有用户的主目录都在 /dev/nvme0n1p1

    • 系统分区 /dev/sda4 不再承担 /home 的存储负担

    • 新建用户默认目录 /home/username 也会自动位于新磁盘上

    🔹 9、删除临时挂载目录/mnt/new_home 

    (1)卸载 /mnt/new_home(保险起见)

    sudo umount /mnt/new_home
    

    ⚠️ 如果你之前用 mount 挂载了 /dev/nvme0n1p1 到这里,这一步可以释放它。

    (2)删除临时目录

    sudo rmdir /mnt/new_home
    

    补充说明:

    • rmdir 只能删除空目录(它应该是空的)

    • 如果你不执行 umount,目录是可以删除的,但推荐先 umount 更安全

    • 删除这个目录不会影响 /home,因为新 /home 现在指向的是分区,而不是 /mnt/new_home

    🔹 10、卸载data

    lsblk 
    # 若输出如下,则说明/dev/nvme0n1p1 同时挂载在两个地方: /home 和 /data
    # └─nvme0n1p1 259:1    0   3.5T  0 part /home
    #                                       /data
    sudo umount /data    # 卸载data
    

    最终输出如下即可,说明修改成功:

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

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

    相关文章

    刷机维修进阶教程-----没有开启usb调试 如何在锁定机型的拨号界面特殊手段来开启ADB

    有时候我们会遇到一些机型被屏幕锁 账号锁等锁定。无法进入系统界面。也没有开启usb调试的情况下如何通过一些操作来开启adb调试。然后通过adb指令来禁用对应的app顺利进入系统。以此来操作保数据等操作. 通过博文了解💝💝💝 1💝💝💝----了解一些品牌机型锁定状态…

    虚拟文件(VFS)

    核心知识点:虚拟文件系统(VFS) 1. 通俗易懂的解释 想象一下你家里的冰箱。你把食物放进去,不用管它是放在塑料盒里、玻璃罐里还是直接用保鲜膜包着,你只需要知道它在冰箱的哪个位置(比如“蔬菜抽屉里”&a…

    前后端联调实战指南:Axios拦截器、CORS与JWT身份验证全解析

    前言 在现代Web开发中,前后端分离架构已成为主流,而前后端联调则是开发过程中不可避免的关键环节。本文将深入探讨前后端联调中的三大核心技术:Axios拦截器的灵活运用、CORS跨域问题的全面解决方案以及JWT身份验证的安全实现。通过本文&…

    Postman基础操作

    1.Postman是什么? Postman是接口测试的工具,简单来说它能模拟浏览器对服务器的某个接口发起请求并接收响应数据。 1.1 Postman工作原理 2.Postman发送请求 2.1 发送GET请求 我们知道GET请求是没用请求体的,所以我们需要将请求参数写在Param…

    Elasticsearch Synthetic _source

    _source 字段包含索引时传入的原始 JSON 文档体。_source 字段本身不被索引(因此不可搜索),但会被存储,以便在执行获取请求(如 get 或 search)时返回。 如果磁盘使用很重要,可以考虑以下选项&a…

    Vue3 + Element Plus 实现用户管理模块

    本文介绍一个使用 Vue3 Element Plus 实现的用户与小组管理模块,支持用户的增删改查(CRUD)和分页管理,以及小组的新增和删除功能,适用于管理后台系统中的用户权限管理场景。 一、项目简介 该模块具备以下功能&#…

    Python应用“面向对象”小练习

    大家好!面向对象编程是一种以 “对象” 为核心的编程思想。对象可以看作是具有特定属性和行为的实体。例如,一个学生可以是一个对象,他的属性包括姓名和年龄,行为可以是打招呼。​ 代码呈现: # 定义类和对象 class Student:def __init__(sel…

    线性回归原理推导与应用(八):逻辑回归二分类乳腺癌数据分类

    乳腺癌数据是sklearn中自带的数据集,需要通过相关特征对是否患有乳腺癌进行分类。 数据清洗与建模 首先加载相关库和相关数据 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

    nginx的一些配置的意思

    1.用这个端口可以访问到nginx 2.工作进程,设置成和cpu核心数一样即可 3.每个工作进程的最大网络连接数。 4.主机名称 设置反向代理时,把server_name设置成ip。 5.反向代理进行转发,localhost指的是nginx所在的机器。 关键字proxy_pass。 …

    SID103S/D/Q-300nA, 轨至轨, CMOS 运算放大器替代SGM8141

    概述 SID103系列产品是专注于超低功耗、轨至轨、CMOS运算放大器,最低工作电压可以支持到1.4V,并且工作时每个通道仅消耗300nA的电流。特别适合穿戴式、独立式等对功耗敏感的电池供电场景。 SID103系列产品拥有5kHz的增益带宽积,外接500pF电…

    十六进制字符转十进制算法

    十六进制与十进制对照 十六进制十进制00112233445566778899A10B11C12D13E14F15 十六进制与十进制区别 十六进制是满16进1,十进制是满10进1,这里要注意下区别,16进制的字符里面为什么是0-9没有10,这里面进了一位,表示…

    微软技术赋能:解锁开发、交互与数据潜力,共探未来创新路

    在微软 Build 2025 大会以及创想未来峰会上,微软展示的一系列前沿技术与创新应用,不仅展现了其在科技领域的深厚底蕴与前瞻视野,更为开发者和企业带来了前所未有的机遇与变革动力。 领驭科技作为微软中国南区核心合作伙伴及 HKCSP 1T 首批授…

    并发基础|进程与线程

    进程基础 什么是进程? 为了实现并发的功能,引入了进程的概念。 ​ 为了实现并发,需要引入多程序的环境,但是多程序的环境会造成一些单程序时不存在的问题,比如程序的之间没有了封闭性,程序不可以连续的执…

    鸿蒙仓颉开发语言实战教程:自定义tabbar

    大家周末好呀,今天继续分享仓颉语言开发商城应用的实战教程,今天要做的是tabbar。 大家都知道ArkTs有Tabs和TabContent容器,能够实现上图的样式,满足基本的使用需求。而仓颉就不同了,它虽然也有这两个组件,…

    LINUX526 回顾 配置ssh rsync定时备份(未完成)

    配置SSH回顾: 1.关闭防火墙、selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 vim /etc/selinux/config SELINUXdisable 2. 510 2.配置YUM源 我计划配本地yum源 2.1 yum源备份 cd /etc/yum.repos.d tar -zcf repo.tar.gz *.repo …

    hdc - Mac本环境配置

    1. 安装依赖工具 Homebrew 若未安装 Homebrew,打开终端执行: OpenJDK 11 HDC 依赖 Java 环境,安装 OpenJDK 11: 配置环境变量: 2. 安装 DevEco Studio 下载:从华为开发者联盟下载最新版 DevEco Studio。 …

    项目三 - 任务8:实现词频统计功能

    本项目旨在实现一个词频统计功能,通过读取文本文件并利用Java编程技巧处理和分析文本数据。首先,使用BufferedReader逐行读取文件内容,然后通过String.split(" ")方法将每行文本分割成单词数组。接下来,采用HashMap来存…

    Python - 文件部分

    - 第 101 篇 - Date: 2025 - 05 - 26 Author: 郑龙浩/仟墨 Python - 文件部分 学习时间: 2025-05-19 文章目录 Python - 文件部分一 文件与路径1 文本文件2 二进制文件3 编码格式① 常见编码格式② 指定编码格式③ 最佳格式④ 处理编码错误 4 绝对路径5 相对路径基本写法返回…

    R语言开始绘图--柱状图

    R语言是一种专门用于统计计算和图形显示的编程语言,广泛应用于数据分析、统计建模、数据可视化等领域。它由Ross Ihaka和Robert Gentleman于1993年在新西兰奥克兰大学开发,现已成为数据科学和统计学领域的重要工具。 R语言的特点 R语言具有丰富的统计和…

    PYTORCH_CUDA_ALLOC_CONF基本原理和具体示例

    PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb 是 PyTorch 提供的一项环境变量配置,用于控制 CUDA 显存分配的行为。通过指定此参数,可以有效管理 GPU 显存的碎片化,缓解因显存碎片化而导致的 “CUDA out of memory”(显存溢出&#…