Linux服务器搭建笔记-006:拓展/home目录容量
一、问题说明
Ubuntu服务器在使用过程中创建的新用户,每位用户会在/home目录下生成一个属于其个人的主文件夹。如果不限制各个用户的使用空间,所有的用户都会共用/home所挂载的硬盘。在这种多用户情况下,会很快的填满/home目录,导致服务器的硬盘空间不够用。
本篇博客通过添加额外的硬盘,实现对/home目录的扩容。 注意:本篇博客内容不采用换一块更大硬盘替代/home的方式,而是在保留原有/home的基础上,进一步拓展/home的空间。例如,服务器原有的/home目录大小为1TB,本博客会添加一块额外的2TB硬盘,组成一个3TB的更大的/home目录,并且不会损失原有的/home文件内容。
二、/home目录空间拓展
说明:本教程使用的系统为Ubuntu22.04。因为/home目录是Ubuntu系统日常使用过程中的系统目录,所以在当前开机状态下操作该目录是不被允许的,个人推荐使用一个Ubuntu系统的安装U盘,从U盘启动Ubuntu系统。具体从制作U盘和启动系统的过程自行百度。
1. 进入U盘系统
- 当从U盘启动Ubuntu的安装过程时,会出现如下的选项,选择试用Ubuntu就可以进入U盘内的系统。

2. LVM(逻辑卷管理)工具的使用
- 使用LVM工具可以将原有隶属不同硬盘的空间进行打包合并。例如原本的/home文件夹在/dev/sda5的分区上面,大小是1TB,现在新添加了一块2T的硬盘,装入服务器后识别为/dev/sdb。LVM工具的功能就是可以将sda5和sdb进行一个打包操作,变成一组硬盘。具体查看硬盘挂载信息可以使用命令lsblk实现。
- 安装LVM工具:
ff@EVA-01:~$ sudo apt install lvm2
3. 备份/home文件夹
- 备份现有的/home文件夹,比如使用rsync工具备份/home目录。这个过程需要你有一块足够大的硬盘可以容纳/home,比如这块硬盘挂载到了/mnt/backup文件夹下面。
- 注意:这个过程非常重要,因为后面需要把这个备份的/home信息重新拷贝回新合并的,更大的/home空间中。当然,如果是新服务器还没有用户信息不拷贝也没问题。如果不备份,整个/home文件夹会在后续被清空。
# 备份数据
ff@EVA-01:~$ sudo rsync -aAXHv --progress /home/ /mnt/backup/
4. 打包已有硬盘空间
- 创建物理卷。物理卷是组成卷组的基本单位,卷组我们可以理解为合并后的整体硬盘(1TB sda5 + 2TB sdb = 3TB),
# 创建第一个卷组
ff@EVA-01:~$ sudo pvcreate /dev/sda5
# 创建第二个卷组
ff@EVA-01:~$ sudo pvcreate /dev/sdb
- 在上述过程中可能会出现如下错误:
Cannot use /dev/sdb: device is partitioned
这个错误是因为硬盘中额外的独立分区,或者旧系统的磁盘签名,需要将其全部抹除。对于硬盘中的额外分区,可以使用fdisk(以sdb空间为例):
# 以sdb为例
ff@EVA-01:~$ sudo fdisk /dev/sdb
使用 d 命令删除分区
使用 w 命令保存更改并退出
如果删除全部分区后依然出现上述错误,那需要抹除各种签名:
# 抹除所有的硬盘信息
ff@EVA-01:~$ sudo wipefs -a /dev/sdb
- 创建物理卷成功后,使用物理卷查询命令,可以查看已经创建好的两个物理卷:
ff@EVA-01:~$ sudo pvdisplay
5. 打包物理卷,创建卷组
- 将上面创建的物理卷进行组合并,其中 cat_home 可以自定义为你自己喜欢的卷组名称:
ff@EVA-01:~$ sudo vgcreate cat_home /dev/sda5 /dev/sdb
- 创建新的逻辑卷,其中 homelv 是逻辑卷的名称,可以自己自定义:
ff@EVA-01:~$ sudo lvcreate -n homelv -l 100%VG cat_home
逻辑卷的地位和我们前面获得的 /sda5,/sdb的地位相同,可以作为硬盘的盘符了,此时的 homelv 可以简单理解为是一个已经合并好的,大小为3TB的新硬盘空间。
- 格式化上面创建好的新空间:
ff@EVA-01:~$ sudo mkfs.ext4 /dev/cat_home /homelv
- 创建逻辑卷成功后,使用逻辑卷查询命令,可以查看已经创建好的逻辑卷:
ff@EVA-01:~$ sudo lvdisplay
效果类似下图:
--- Logical volume ---LV Path /dev/cat_home/homelvLV Name homelvVG Name cat_homeLV UUID 81f8L6-fFxb-H0TR-LJXu-Ifwl-fRQO-5kxD6vLV Write Access read/writeLV Creation host, time ubuntu, 2023-12-29 14:50:52 +0800LV Status available# open 1LV Size <2.42 TiBCurrent LE 633119Segments 2Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0
- 此时再查询物理卷,会发现物理卷上新增加了很多新信息:
ff@EVA-01:~$ sudo pvdisplay
--- Physical volume ---PV Name /dev/sda5VG Name cat_homePV Size 684.63 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 175265Free PE 0Allocated PE 175265PV UUID cnlg0m-8G3T-Jab4-mEwR-AnKI-Uq1t-FALf30--- Physical volume ---PV Name /dev/sdbVG Name cat_homePV Size <1.75 TiB / not usable <4.34 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 457854Free PE 0Allocated PE 457854PV UUID XeW7Hr-4ajr-HRKo-ezxZ-GyNX-a0lp-6Utfj5
6. 迁移/home数据到新的逻辑卷
- 挂载新逻辑卷到临时位置 /mnt/new_home:
ff@EVA-01:~$ sudo mount /dev/cat_home/homelv /mnt/new_home
- 将之前备份到 /mnt/backup/ 的内容恢复到 /mnt/new_home 中:
ff@EVA-01:~$ sudo rsync -aAXHv --progress /mnt/backup/ /mnt/new_home/
- 数据回复完毕后,将以下挂载盘卸载:
# 卸载已挂载的盘符
ff@EVA-01:~$ sudo umount /home
ff@EVA-01:~$ sudo umount /mnt/backup/
ff@EVA-01:~$ sudo umount /mnt/new_home/
7. 修改原系统的启动挂载项
- 说明:之前的所有操作我们都是在U盘上的Ubuntu系统中完成的,并没有启动原始服务器中的系统。现在我们需要修改原有服务器系统中启动过程的挂载项,使得系统启动后可以挂载我们创建的 /dev/cat_home/homelv 这个新硬盘到 /home 目录下。
- 首先需要挂载原系统重的系统文件存储路径。这个系统路径就是服务器Ubuntu系统中 /etc/fstab 文件夹的存在目录,在我的系统中是 /dev/sda1,将其挂载到/mnt/oldsys目录下面,挂载到的目标目录可以自定义:
# 挂载原系统的/etc目录所在的磁盘
ff@EVA-01:~$ sudo mount /dev/sda1 /mnt/oldsys
- 挂载完毕后修改原Ubuntu系统开机的挂载硬盘启动项:
# 挂载原系统的/etc目录所在的磁盘
ff@EVA-01:~$ sudo vim /mnt/oldsys/etc/fstab
- 对上面fstab文件进行编辑,将已经打包好的硬盘挂载到/home下面,例如,我的路径设置最终如下(重点关注/home路径的挂载内容,挂载到/home路径下的其他硬盘需要排在/home之后进行挂载):
# /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/sda3 during installation
UUID=26a27c3d-b23f-484a-9a2b-1cb624d834a5 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda2 during installation
UUID=7fabb7a1-c63f-407a-afb7-4272b9c51dea /boot ext4 defaults 0 2
# /boot/efi was on /dev/sda1 during installation
UUID=7576-5283 /boot/efi vfat umask=0077 0 1
# /home was on /dev/cat_home/homelv
/dev/cat_home/homelv /home ext4 defaults 0 2
# /home/A_DataSets0 was on /dev/sdc1 during installation
UUID=3632d36e-8b9a-4fc9-a202-3caddd5c3700 /home/A_DataSets0 ext4 defaults 0 2
# /home/A_DataSets1 was on /dev/sdd1 during installation
UUID=f439163a-4bd5-423b-888a-128564bc70cb /home/A_DataSets1 ext4 defaults 0 2
# swap was on /dev/sda4 during installation
UUID=3b0f58aa-e365-447a-98ba-e8ebc467985c none swap sw 0 0
/dev/disk/by-uuid/08bb9073-dd08-4689-9f3a-d71b5e9c4a0b /home/A_DataSets2 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/e58b8ffb-fc27-47c6-9e41-1e9d809da14b /home/A_DataSets3 auto nosuid,nodev,nofail,x-gvfs-show 0 0
(来自一名励志用“普通话”讲技术的菜狗子~)
相关文章:
Linux服务器搭建笔记-006:拓展/home目录容量
一、问题说明 Ubuntu服务器在使用过程中创建的新用户,每位用户会在/home目录下生成一个属于其个人的主文件夹。如果不限制各个用户的使用空间,所有的用户都会共用/home所挂载的硬盘。在这种多用户情况下,会很快的填满/home目录,导…...
元宇宙与VR虚拟现实的未来如何?
从科幻小说到商业现实 自从 Facebook年更名为 Meta 以来,关于元宇宙的热议不断,人们对虚拟世界的兴趣也重新燃起,因为尽管虚拟现实 (VR) 的概念由来已久,但该技术现在才开始真正得以应用。 定义元宇宙和虚拟现实 首先是 The Met…...
微服务事务处理:CAP 定理和最终一致性的关系
CAP 定理和最终一致性 CAP 定理和最终一致性是两个密切相关的概念,但它们在范围和细节上有所不同。以下是比较: CAP 定理 **正式陈述:**在分布式系统中,最多只能同时满足以下三个保证中的两个:一致性、可用性和分区…...
【Linux操作系统】探秘Linux奥秘:操作系统的入门与实战
🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS …...
Copilot概述:AI助手引领编程新纪元
前言: 随着人工智能(AI)技术的不断进步,编程领域也在逐渐迎来一场革命。GitHub Copilot,作为一款由 OpenAI 和 GitHub 合作开发的编程助手,引发了广泛的关注和讨论。本篇博客将全面概述 Copilot 的背景、功…...
最小覆盖子串(LeetCode 76)
文章目录 1.问题描述2.难度等级3.热门指数4.解题思路参考文献 1.问题描述 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对于 t 中重复字符ÿ…...
Windows Sockets 2 笔记
文章目录 一、Winsock简介二、Windows中Winsock对网络协议支持的情况三、使用Winsock3.1 关于服务器和客户端3.2 创建基本Winsock应用程序3.3 初始化Winscok3.3.1 初始化步骤3.3.2 初始化的核心代码3.3.3 WSAStartup函数的协调3.3.4 WSACleanup函数3.3.5 初始化的完整代码 3.4 …...
13章总结
一.泛型 1.定义泛型类 泛型机制语法: 类名<T> 其中,T是泛型的名称,代表某一种类型。 【例13.6】创建带泛型的图书类 代码: 结果: 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyClass<T1,T2>…...
(2023,3D NeRF,无图像变分分数蒸馏,单步扩散)SwiftBrush:具有变分分数蒸馏的一步文本到图像扩散模型
SwiftBrush : One-Step Text-to-Image Diffusion Model with Variational Score Distillation 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 方法 1.1 基础 1.2 SwiftBrus…...
【WPF.NET开发】将路由事件标记为已处理和类处理
本文内容 先决条件何时将路由事件标记为已处理预览和浮升路由事件对实例和类路由事件处理程序复合控件中的输入事件禁止 尽管对于何时将路由事件标记为已处理没有绝对规则,但如果代码以重要方式响应事件,请考虑将事件标记为已处理。 标记为已处理的路由…...
2023年03月18日_微软office365 copilot相关介绍
文章目录 Copilot In WordCopilot In PowerpointCopilot In ExcelCopilot In OutlookCopilot In TeamsBusiness Chat1 - copilot in word2 - copilot in excel3 - copilot in powerpoint4 - copilot in outlook5 - copilot in teams6 - business chat word 1、起草草稿 2、自动…...
GBASE南大通用携手宇信科技打造“一表通”全链路解决方案
什么是“一表通”? “一表通”是国家金融监督管理总局为发挥统计监督效能、完善银行保险监管统计制度、推进监管数据标准化建设、打破数据壁垒,而制定的新型监管数据统计规范。相较于以往的报送接口,“一表通”提高了对报送时效性、校验准确…...
Python 内置高阶函数练习(Leetcode500.键盘行)
Python 内置高阶函数练习(Leetcode500.键盘行) 【一】试题 (1)地址: 500. 键盘行 - 力扣(LeetCode) (2)题目 给你一个字符串数组 words ,只返回可以使用在…...
【JavaWeb】day01-HTMLCSS
day01-HTML&CSS HTML 图片标签:<img> src:指定图像URL(绝对路径/相对路径)width:图像宽度(像素/相对于父元素的百分比)height:图像高度(像素/相对于父元素的百…...
【工具】windeployqt 在windows + vscode环境下打包
目录 0.背景简介 1.windeployqt简介 2.打包具体过程 1)用vscode编译,生成Release文件夹(也有Debug文件夹,但是发布版本一般都是用Release) 2)此时可以看下Release文件夹内,一般是.exe可执行…...
跟着LearnOpenGL学习12--光照贴图
文章目录 一、前言二、漫反射贴图三、镜面光贴图3.1、采样镜面光贴图 一、前言 在跟着LearnOpenGL学习11–材质中,我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观…...
DotNet 命令行开发
DotNet 命令行开发 下载安装下载 SDK安装 SDK绿色版下载绿化脚本 常用命令创建 dotnet new运行 dotnet run发布应用 dotnet publish更多命令 VSCode 调试所需插件调试 CS 配置项目.csproj排除依赖关系 launch.jsontasks.json 参考资料 下载安装 下载 SDK 我们就下最新的好&am…...
hyperf console 执行
一、原理描述 hyperf中,不难发现比如自定义控制器中获取参数,hyperf.php中容器获取,传入的都是接口,而不是实体类。 这是因为框架中的配置文件有设置对应抽象类的子类,框架加载的时候将其作为数组,使用的…...
第一篇 设计模式引论 - 探索软件设计的智慧结晶
1. 设计模式的定义和起源 设计模式,这个术语最初在建筑领域被广泛使用,用来描述在建筑设计中反复出现的问题及其解决方案。在软件工程中,设计模式同样指的是在软件设计过程中反复出现的、经过验证的最佳实践和解决方案。 1994年,…...
HBase基础知识(六):HBase 对接 Hive
1. HBase 与 Hive 的对比 1.Hive (1) 数据仓库 Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以 方便使用 HQL 去管理查询。 (2) 用于数据分析、清洗 Hive 适用于离线的数据分析和清洗,延迟较高。 (3) 基于…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
