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

(来自一名励志用“普通话”讲技术的菜狗子~)

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

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

相关文章

B2005 字符三角形(python)

a input() print( a) print( a a a) print(a a a a a)python中默认输入的是字符型&#xff0c;第一句就是输入了一个字符赋给a python中单引号内的也是字符串&#xff0c;用print输出需要连接的字符串时用加号加在后面即可

HarmonyOS应用开发-搭建开发环境

本文介绍如何搭建 HarmonyOS 应用的开发环境&#xff0c;介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境&#xff0c;面向全场景多设备&#xff0c;提供一站式的分布式应用开发平台&#xff0c;支持分布式多…

2024年人工智能领域10大预测

2023年人工智能领域如果只能筛选一个关键词的话&#xff0c;恐怕非“大模型”莫属。大模型的发展在过去一年中&#xff0c;让各行各业发生了天翻地覆的变化&#xff0c;有企业因大模型而新生&#xff0c;有企业因大模型而消亡。企业的变迁跟技术迭代息息相关&#xff0c;而大模…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

27 UVM queue

uvm_queue类构建一个动态队列&#xff0c;该队列将按需分配并通过引用传递。 uvm_queue类声明&#xff1a; class uvm_queue #( type T int ) extends uvm_object 1 uvm_queue class hierarchy 2 uvm_queue class Methods 3 UVM Queue Example 在下面的示例中&#xff0c;…

MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可. 数值函数 三角函数 指数与对数函数 进制间的转换函数 字符串函数 注:LPAD函数是右对齐,RPAD函数是左对齐 多表查询 注:如果为表起了别名,就…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1&#xff0c;EasyX的坐标2&#xff0c;EasyX的设备 三、窗口函数1&#xff0c;初始化窗口函数2&#xff0c;关闭绘图窗口3&#xff0c;设置窗口背景板颜色4&#xff0c;清空绘图设备 前言 easyx是针对c的图形库&#xff0c;…

[ffmpeg系列 02] 音视频基本知识

一 视频 RGB&#xff1a; AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB… Y&#xff1a;明亮度, Luminance或luma, 灰阶图&#xff0c; UV&#xff1a;色度&#xff0c;Chrominance或Chroma。 YCbCr: Cb蓝色分量&#xff0c;Cr是红色分量。 取值范围&#xff…

判断电话号码是否重复-excel

有时候重复的数据不需要或者很烦人&#xff0c;就需要采取措施&#xff0c;希望以下的方法能帮到你。 1.判断是否重复 方法一&#xff1a; 1&#xff09;针对第一个单元格输入等号&#xff0c;以及公式countif(查找记录数的范围&#xff0c;需要查找的单元格&#xff09; 2…

网络编程『简易TCP网络程序』

&#x1f52d;个人主页&#xff1a; 北 海 &#x1f6dc;所属专栏&#xff1a; Linux学习之旅、神奇的网络世界 &#x1f4bb;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f324;️前言&#x1f326;️正文TCP网络程序1.字符串回响1.1.核心功能1.2.程序…

AIGC开发:调用openai的API接口实现简单机器人

简介 开始进行最简单的使用&#xff1a;通过API调用openai的模型能力 OpenAI的能力如下图&#xff1a; 文本生成模型 OpenAI 的文本生成模型&#xff08;通常称为生成式预训练 Transformer 或大型语言模型&#xff09;经过训练可以理解自然语言、代码和图像。这些模型提供文…

logstash收集华为、H3C、Cisco交换机日志

网络设备配置 将 syslog-ip 替换成服务器的IP地址。 Huawei info-center loghost source interface info-center loghost syslog-ip local-time facility local6 H3C info-center loghost source interface info-center loghost syslog-ip facility local5 Aruba logging arm …

上市公司企业战略激进度2004-2022市场扩张创新倾向成长性生产效率组织结构稳定性资本密度防御分析进攻型

上市公司企业战略激进度2004-2022市场扩张创新倾向成长性生产效率组织结构稳定性资本密度防御分析进攻型有原始数据、详细代码、计算结果&#xff01;数据来源&#xff1a;基于上市公司公告数据整理计算 数据范围&#xff1a;沪深北证A股上市公司【2023新数据】上市公司企业战略…

linux cat命令增加-f显示文件名功能

在使用cat命令配合grep批量搜索文件内容时&#xff0c;我仅仅能知道是否搜索到&#xff0c;不知道是在哪个文件里找到的。比如cat ./src/*.c | grep full_write,在src目录下的所有.c文件里找full_write,能匹配到所有的full_write&#xff0c;但是不知道它们分别在哪些文件里。于…

「微服务」微服务架构中的数据一致性

在微服务中&#xff0c;一个逻辑上原子操作可以经常跨越多个微服务。即使是单片系统也可能使用多个数据库或消息传递解决方案。使用多个独立的数据存储解决方案&#xff0c;如果其中一个分布式流程参与者出现故障&#xff0c;我们就会面临数据不一致的风险 - 例如在未下订单的情…

进程互斥的软件实现方法-第二十六天

目录 前言 单标志法&#xff08;谦让&#xff09; 双标志先检查法&#xff08;表达意愿&#xff09; 双标志后检查法&#xff08;表达意愿&#xff09; Peterson算法&#xff08;集大成者&#xff09; 本节思维导图 前言 单标志法、双标志的先后检查法中&#xff0c;如果…

【Java】SpringBoot快速整合WebSocket实现客户端服务端相互推送信息

目录 什么是webSocket&#xff1f; webSocket可以用来做什么? WebSocket操作类 一&#xff1a;测试客户端向服务端推送消息 1.启动SpringBoot项目 2.打开网站 3.进行测试消息推送 4.后端进行查看测试结果 二&#xff1a;测试服务端向客户端推送消息 1.接口代码 2.使…

48、激活函数 - 梯度消失和梯度爆炸

简单介绍下梯度消失和梯度爆炸,这个不是重点,但是我觉得有必要再深入了解这个概念,以及很多激活函数为什么是可以防止梯度消失的。 梯度消失和梯度爆炸实际上是在神经网络训练过程中经常会遇到的两类问题,这两类问题都与梯度有关。 什么是梯度 在神经网络训练中,梯度是指…

ALSA学习(5)——设备中的alsa

参考博客&#xff1a; https://blog.csdn.net/DroidPhone/article/details/7165482 &#xff08;一下内容基本是原博主的博客转载&#xff09; 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来 ASoC–ALSA System on Chip …

08-接口文档管理工具-项目集成knife4j__ev

2、knife4j快速入门 2.1 knife4j介绍 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! gitee地址&#xff1a;knife4j: Knife4j是一个集Swagger2 和 OpenAPI3为一体的增…