linux硬盘挂载(linux 修改某个磁盘挂载到新目录\lvm扩容)

news2025/1/17 14:02:55

文章目录

    • 一、什么是硬盘挂载
    • 二、linux 修改某个磁盘挂载到新目录
    • 三、Esxi下扩容硬盘
      • 1. 判断一个已有的文件系统是否使用了LVM(逻辑卷管理)
      • 2. 原本文件系统没有使用lvm,还可以lvm扩容吗?
      • 3. 原有文件系统使用lvm场景下扩容(lvm扩容)
        • 了解LVM
        • Esxi LVM扩容步骤
      • 4. 过程中遇到的问题
        • Esxi虚拟机磁盘扩容失败,提示“设备“3”的操作无效”

一、什么是硬盘挂载

在Linux操作系统中,挂载硬盘是将硬盘的分区或者整个硬盘与文件系统关联起来,使得我们可以通过文件系统访问硬盘中的数据。

  1. 确认硬盘信息
fdisk -l

该命令会列出所有已连接到系统的硬盘设备及其分区信息。根据输出结果找到你要挂载的硬盘设备,记下设备路径,例如/dev/sda

  1. 新硬盘的话,需要创建新的磁盘分区
  • 我们可以整个硬盘就使用一个分区:
fdisk /dev/sda

依次输入 n:新建分区
p:主分区
在按p,查看分区

我们的硬盘是/dev/sda 分区出来一个分区叫 /dev/sda1。

  • 分区结束后,我们需要对这个分区,设置文件系统格式:
    在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。

在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。

例如,若要创建一个ext4文件系统,只需要运行以下命令

mkfs.ext4 /dev/sda1
  1. 创建挂载点
    挂载点是一个目录,用于将硬盘与文件系统关联起来。可以选择一个合适的目录作为挂载点。
    例如,我们可以在/mnt目录下创建一个名为data的目录作为挂载点:
mkdir /mnt/data
  1. 挂载硬盘
sudo mount /dev/sda1 /mnt/data
  1. 自动挂载
    如果你希望每次系统启动时都自动挂载硬盘,可以在/etc/fstab文件中添加一条挂载信息。打开该文件并在末尾添加以下内容
/dev/sda1 /mnt/data ext4 defaults 0 0

其中,/dev/sda1是你要挂载的硬盘设备路径,/mnt/data是你创建的挂载点路径,ext4是硬盘的文件系统类型,defaults是挂载选项,0 0表示不进行备份和检查。保存文件后,下次系统启动时硬盘将会自动挂载到指定的挂载点上。

二、linux 修改某个磁盘挂载到新目录

输入 fdisk -l 命令,查看当前系统的磁盘分区情况。

fdisk -l
mkdir -p /opt/aptos/data
df -h
umount /mnt/datadisk0
mount /dev/vdb /opt/aptos/data
df -h
vi /etc/fstab

修改为

/dev/vdb /opt/aptos/data ext4 defaults 0 0

进行挂载

mount -a
df -h

三、Esxi下扩容硬盘

Esxi下扩容硬盘,需要先判断原有文件系统是否使用了LVM(逻辑卷管理),如果使用LVM,可以直接在原磁盘的基础上直接扩容。
否则推荐,添加新硬盘,通过挂载到某个目录方式扩容,这样比较安全。

总结:
在 ESXi 下扩容硬盘时:

  1. 如果原有文件系统使用了 LVM,则可以直接在原有磁盘组上扩容逻辑卷和文件系统,操作相对简单。
  2. 如果原有文件系统没有使用 LVM,则不建议直接在其分区上扩容,因为存在数据迁移风险。

推荐的更安全做法是:

  1. 添加新磁盘
  2. 在新磁盘上创建文件系统
  3. 将新文件系统挂载到某个目录,用来提供额外空间
  4. 这样可以避免对原有文件系统进行危险的迁移操作
  5. 也可以通过 symbolic link 将新挂载点链接到适当位置,以方便使用

总之,如果没有 LVM,在已有文件系统直接扩容是有风险的。添加新磁盘并挂载的做法更为稳妥。

1. 判断一个已有的文件系统是否使用了LVM(逻辑卷管理)

  1. 使用 lsblk 命令
    LVM的卷组和逻辑卷会显示为类似"lvm"的TYPE类型。
  2. 使用 pvdisplay、vgdisplay、lvdisplay等命令
    如果显示了LVM的详细信息,则说明正在使用LVM。、

2. 原本文件系统没有使用lvm,还可以lvm扩容吗?

如果原先的文件系统没有使用 LVM (逻辑卷管理),还是可以通过创建 LVM 并移动数据的方式来实现扩容的。
步骤如下:

  1. 使用 pvcreate 在新磁盘上创建物理卷
  2. 使用 vgcreate 创建卷组,将新建的物理卷加入进去
  3. 使用 lvcreate 在卷组上创建逻辑卷,大小大于原有文件系统的大小
  4. 使用 mkfs 在新建逻辑卷上创建文件系统
  5. 将原有文件系统中的数据临时备份到其他位置
  6. 使用 mount 将新文件系统挂载到原来的挂载点
  7. 将备份的数据恢复到新文件系统
  8. 编辑 /etc/fstab,使用新逻辑卷的设备路径来挂载原位置
  9. 重启系统生效

通过这种方式,可以为原先的文件系统增加更大的存储,实现扩容的目的。
需要注意的是,这个过程会暂时中断对原文件系统的访问。所以需要谨慎操作,在用户访问较少的时间段进行。而且需要提前做好数据备份,避免数据丢失。
如果条件允许,**在一开始搭建文件系统时就使用 LVM **是更好的选择,可以避免后期做数据迁移来扩容。

原先未使用 LVM 的文件系统来说,想要实现扩容就需要进行数据迁移,存在一定的风险:

  1. 数据迁移风险
    扩容需要将原有文件系统的数据临时迁移到其他位置,然后再复制回新文件系统。在这个复制的过程中,如果操作不当,可能会导致数据丢失或损坏。
  2. 文件系统损坏风险
    在迁移过程中,原有的文件系统是处于未挂载状态,如果在这个时候发生断电等问题,可能会导致文件系统损坏,无法重新挂载。

为了降低风险,在进行这种扩容之前,必须要做好完整备份数据,并经过验证确保备份可工作。

如果不具备上述条件,不建议在生产环境中直接进行扩容,而应该考虑重新部署使用 LVM 的新文件系统。

3. 原有文件系统使用lvm场景下扩容(lvm扩容)

了解LVM

LVM是一个逻辑卷管理器,它允许我们将多个物理存储空间(硬盘、分区等)组合成一个或多个逻辑卷,并对逻辑卷进行管理。LVM的核心概念包括物理卷(Physical Volume)、卷组(Volume Group)和逻辑卷(Logical Volume)。

物理卷是硬盘或硬盘分区,可以用作LVM的物理存储单元。
卷组是由一个或多个物理卷组成的逻辑单元,我们可以在卷组中创建和管理逻辑卷。
逻辑卷是从卷组中划分出来的逻辑存储单元,它们可以被格式化为文件系统,用于存储数据。
通过使用LVM,我们可以在不重新分区或重新格式化硬盘的情况下动态地扩展磁盘空间。

Esxi LVM扩容步骤

步骤1. 登录Esxi web ui
步骤2. 点击“编辑虚拟机设置”选项,打开虚拟机设置页。
步骤3. 进行磁盘设置
对原有磁盘大小进行设置,从 100GB 编辑为 2T,点击扩展按钮。
在这里插入图片描述
步骤4. 查看磁盘分区表

命令:

fdisk -l

在这里插入图片描述

注意看,我们是原有硬盘直接扩容,这里,可以看到已经几个分区了,比如已经有分区 sda1 和 sda2、sda3.

  1. 使用 fdisk新磁盘上创建分区
fdisk /dev/sda
  • 输入 m 查看帮助信息,
  • 再输入 n(表示增加分区),
  • 回车后输入 p(创建主分区),
    在这里插入图片描述
  • 回车后 partition number 输入4(查看之前fdisk -l命令结果,假如已经有两个分区 sda1 和 sda2、sda3),
  • 回车会提示输入分区的 start 值,默认即可,
  • 回车会提示输入分区的 end 值,默认即可(即当前最大值),
  • 回车后输入 w 进行保存,

分区划分完毕,如下多了1个分区:
在这里插入图片描述

  1. 修改分区ID
    默认创建的分区类型id是83,83是标准Linux文件系统分区,8e是LVM分区。将分区类型改为8e意味着计划在这个分区上使用LVM。
    查看某个分区的类型ID
lsblk -o NAME,FSTYPE /dev/sda4

当 FSTYPE 为空时,说明这个分区还没有建立文件系统或者文件系统类型无法识别。
我们可以通过一些其他命令进一步确定这个分区的类型:
使用 blkid 命令看 TYPE 字段:

# blkid /dev/sda4
/dev/sda4: PARTUUID="6e4b82a8-3b07-0c49-8755-efe4b76ce048"

根据blkid命令的输出,/dev/sda4这个分区没有显示文件系统类型,只显示了PARTUUID。
这表示该分区还没有建立任何文件系统。
如果想建立文件系统,可以:

sudo mkfs.ext4 /dev/sda4

这将在sda4分区创建ext4文件系统。
之后再次运行blkid命令,就可以看到文件系统类型了。

既然该分区还没有建立文件系统,我们需要先将其设置为 LVM 分区类型:

sudo fdisk /dev/sda
# 进入fdisk分区编辑模式

Command (m for help): t  
# 输入t进入修改分区类型子命令

Partition number (1-4): 4
# 输入要修改的分区号,这里是4

Hex code (type L to list codes): 8e
# 输入新分区类型的16进制代码,这里是8e

注意:Ubuntu 20.04默认的fdisk确实不支持将分区类型设置为8e(Linux LVM)。
Ubuntu会在初始化物理卷(pvcreate /dev/sda4)时自动把分区类型改为8e,不需要做这一步骤。

  1. 使用 pvcreate 在新分区上创建物理卷
    显示逻辑卷分区信息:
    命令:
lvs

显示卷组信息:
命令:

vgdisplay

将物理硬盘分区初始化为物理卷,以便被 LVM 使用。
命令:

pvcreate /dev/sda4

注意:要创建物理卷必须首先对硬盘进行分区,并且将硬盘分区的类型设置为“8e”后,才能使用pvcreat指令将分区初始化为物理卷。

  1. 使用 vgextend 将新物理卷扩展到已有的卷组中
    一旦我们添加了新的物理卷,我们可以将其添加到现有的卷组中,以扩展卷组的容量。可以使用以下命令将新的物理卷添加到卷组中:

扩展卷组: {VG Name} vgdisplay 查到的 VG Name
命令:vgextend {VG Name} /dev/sda4
比如:我查看通过刚才的命令vgdisplay,查到的vg名字是:ubuntu-vg,扩容该vg命令如下:

vgextend ubuntu-vg /dev/sda4
  1. 使用 lvextend 将卷组上的逻辑卷扩展到需要的大小
lvextend -L +100%FREE /dev/ubuntu-vg/ubuntu-lv
  • +100%FREE表示扩展逻辑卷的空间为当前卷组的全部剩余空间
  • 要指定逻辑卷完整路径,也就是卷组+逻辑卷名,例如/dev/ubuntu-vg/ubuntu-lv
    这会自动使用ubuntu-vg卷组全部剩余空间来扩展ubuntu-lv逻辑卷。

因为我们扩展的vg, 已经有一部分vg已经被使用,这里 使用 +100FREE 会报错,我们可以使用 vgdisplay 查看剩余空间,具体指定要扩容多大,例如:

lvextend -L +1.9T /dev/ubuntu-vg/ubuntu-lv
  1. 使用 resize2fs 或 xfs_growfs 扩展文件系统的大小、

在使用 lvextend 命令扩展 LVM 逻辑卷大小之后,你还需要对文件系统进行扩容才能真正使用新增的空间

resize2fs 命令就是用于扩展 ext2/ext3/ext4 文件系统的大小。
命令用法是:

resize2fs /dev/ubuntu-vg/ubuntu-lv

这里指定的是逻辑卷的完整路径,而不是卷组名字。
执行这个命令将会把文件系统大小扩展到逻辑卷的新的大小。

  1. 验证扩容后的容量
df -h

在这里插入图片描述

4. 过程中遇到的问题

Esxi虚拟机磁盘扩容失败,提示“设备“3”的操作无效”

在这里插入图片描述

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

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

相关文章

C++模板编程与泛型编程之函数模板

文章目录 函数模板(第一部分)定义函数模板使用函数模板样例 两阶段翻译 Two-Phase Translation模板的编译和链接问题 多模板参数引入额外模板参数作为返回值类型让编译器自己找出返回值类型将返回值声明为两个模板参数的公共类型样例 默认模板参数样例 重载函数模板模板函数特化…

偏序关系用分治优化建图:ARC165F

https://atcoder.jp/contests/arc165/tasks/arc165_f 首先可以建图&#xff0c;然后变成求字典序最小的的拓扑排序 然后发现这样复杂度会炸&#xff0c;观察连边的条件是什么&#xff1a; l i < l j l_i<l_j li​<lj​ r i < r j r_i<r_j ri​<rj​ 这是个…

麒麟-v10系统添加字体方法

先找到需要添加的字库文件&#xff0c;一般为TTF文件。 例如&#xff1a;方正粗黑宋简体.ttf 在 /usr/share/fonts 路径下创建一个chines 文件夹 。 * * * 注意以下所有操作涉及到的操作命令&#xff0c;均需ROOT操作。 mkdir /usr/share/fonts/chines 三&#xff0e;将需…

Single Image Haze Removal Using Dark Channel Prior(暗通道先验)

去雾算法都会依赖于很强的先验以及假设&#xff0c;并结合相应的物理模型&#xff0c;完成去雾过程。本文作者何凯明及其团队通过大量的无雾图像和有雾图像&#xff0c;归纳总结出无雾图像在其对应的暗通道图像上具有极低的强度值&#xff08;趋近于0&#xff09;&#xff0c;并…

虚拟机没有桥接模式--物理机WiFi不见了--注册表修复

我们知道虚拟机有三种模式&#xff1a; vmnet0 桥接模式&#xff1b;vmnet1 仅主机模式&#xff1b;vmnet8 NAT模式 我自己以前一直用的NAT模式&#xff0c;今天突然要用到桥接模式&#xff0c;发现无法切换... 我下面这个是后面弄好了的&#xff0c;最开始是没有显示桥接模式…

运放电压跟随器为什么要加电阻

这个是运放构成的电压跟随器&#xff0c;他的特点是输出电压等于输入电压&#xff0c;它常常用来对信号进行隔离&#xff0c;缓冲和提高带载能力。 有时候我们还会在电压跟随器上加这两个电阻&#xff0c;其中R1主要是起保护作用&#xff0c;Rf主要是为了消除偏置电流对输出电压…

stable-diffusion-webui安装Wav2Lip

常见错误 1.错误&#xff1a;Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check 修改代码&#xff1a; launch_utils.py 删除三个地方&#xff1a;

LangChain+LLM实战---文本分块(Chunking)方法

RAG是一个考验技术的工作 基于大模型的企业应用中很大一部分需求就是RAG——检索增强生成。 这个流程依然无法描述RAG的复杂性 RAG涉及的内容其实广泛&#xff0c;包括Embedding、分词分块、检索召回&#xff08;相似度匹配&#xff09;、chat系统、ReAct和Prompt优化等&…

Optional——优雅判空

初始化 Optional提供了三个初始化方法&#xff1a; SpringBootTest public class OptionalTest {Testpublic void testOptional() {Optional.empty();Optional.ofNullable(null);Optional.of(null);} }empty返回一个空的Optional对象。 of遇到空会报错&#xff0c;但是使用Op…

Python | 安装、环境配置及包的安装

Python | 安装、环境配置及包的安装 一、前言二、python安装及编辑器配置2.1 python安装2.2 python调试2.3 python编辑器 | PyCharm2.3.1 PyCharm下载2.3.2 PyCharm安装2.3.3 PyCharm启动界面2.3.4 PyCharm初步设置2.3.5 PyCharm环境配置(含Python Interpreter配置)2.3.5.1 New…

2003-2022年飞机航线信息数据

2003-2022年飞机航线信息数据 时间&#xff1a;2003-2022年指标&#xff1a;起点城市、起点城市所属地级市、起点城市所属省份、起点机场、终点城市、终点城市所属地级市、终点城市所属省份、终点机场、航空公司、航班、机型、出发时间、到达时间、准点率、班次_周一、班次_周…

pip安装apex报错ERROR: Could not build wheels for cryptacular.......

问题&#xff1a;在训练模型的时候需要安装apex包&#xff0c;遂即使用以下命令 pip install apex但是报错了&#xff0c;报错信息如下&#xff1a; WARNING: Building wheel for cryptacular failed: [Errno 2] No such file or directory: C:\\Users\\XXX\\AppData\\Local\…

Corel VideoStudio 会声会影2024剪辑中间的视频怎么删 剪辑中音乐太长怎么办

我很喜欢视频剪辑软件Corel VideoStudio 会声会影2024&#xff0c;因为它使用起来很有趣。它很容易使用&#xff0c;但仍然给你很多功能和力量。视频剪辑软件Corel VideoStudio 会声会影2023让我与世界分享我的想法&#xff01;“这个产品的功能非常多&#xff0c;我几乎没有触…

解决找不到msvcp120.dll,无法继续执行代码的办法,msvcp120.dll丢失的解决办法

在使用电脑的过程中出现了“找不到msvcp120.dll,无法继续执行代码”&#xff0c;通常出现这种错误的原因是因为电脑中的msvcp120.dll文件丢失&#xff0c;但是文件丢失就会导致电脑出现软件不能打开的情况&#xff0c;也可能会导致电脑出现其他的问题&#xff0c;所以今天就给大…

【学习草稿】

【数据分析】 1、相关性分析 对变量之间相关关系的分析&#xff0c;即相关性分析。其中比较常用的是线性相关分析&#xff0c;用来衡量它的指标是线性相关系数&#xff0c;又叫皮尔逊相关系数&#xff0c;通常用r表示&#xff0c;取值范围是[-1,1]。 r的绝对值<0.3 ,低度线性…

spring报错 @EnableAsync annotation metadata was not injected

报错 报错 internalAsyncAnnotationProcessor 这个spring内部的后处理器 创建失败&#xff0c;进而导致 EnableAsync 注解元数据没有注入容器 分析问题 查了 博客 是配置类放到原始项目路径下导致的问题。 博主的路径虽然正确&#xff0c;但发现是相似的问题&#xff0c;最…

linux 驱动——将模块编译进内核

文章目录 新增 C 文件修改 Makefile 文件修改 Kconfig 文件模块使能内核启动日志参考 linux 驱动——字符设备驱动 linux 驱动——字符设备驱动(自动生成设备节点文件) linux 驱动——将模块编译进内核 前面两节介绍的驱动都是以模块的形式&#xff0c;需要手动加载&#xff0…

【kubernetes】pod的生命周期

文章目录 1、概述2、pod的生命期3、pod阶段4、容器状态5、容器重启策略6、pod状况6.1 Pod就绪态6.2 Pod就绪态的状态6.3 Pod网络就绪 7、容器探针7.1 检查机制7.2 探测结果7.3 探测类型 8、Pod的终止8.1 强制终止Pod8.2 Pod的垃圾收集 1、概述 pod遵循预定义的生命周期&#x…

matlab中的mapminmax函数初步理解和应用

matlab中的mapminmax函数初步认识 一、mapminmax 顾名思义&#xff1a;映射最大最小 二、语法及举例 2.1 语法1 [Y,PS] mapminmax(X) 将矩阵X映射形成矩阵Y, Y中每行中的最小值对应-1&#xff0c;最大值对应1。PS是一个包含映射信息的结构体。 举例&#xff1a; clc cle…

4.第一个Java程序的讲解—Hello World

本文将写一个程序输出 Hello World &#xff0c;然后逐句讲解 ~ 文章目录 一、输出 Hello World二、代码讲解2.1 package com.goole.demo;2.1.1 .idea、out、src2.1.2 解释 2.2 public class Main2.2.1 解释2.2.2 创建新类 2.3 public static void main(String[] args)2.3.1 解…