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

文章目录

    • 一、什么是硬盘挂载
    • 二、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
# 输入要修改的分区号,这里是4Hex 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.mzph.cn/news/132816.shtml

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

相关文章

NOIP2000提高组第二轮T4:方格取数

题目链接 [NOIP2000 提高组] 方格取数 题目描述 设有 N N N \times N NN 的方格图 ( N ≤ 9 ) (N \le 9) (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0 0 0。如下图所示(见样例): 某人从图的左上…

ES 报错问题汇总

报错1: curl -XGET http://192.168.56.115:9200/_license解决方式 在 es/config/elasticsearch.yml文件,把开启密码验证把此处也修改成false xpack.security.enabled: false 报错2: 解决方式: 查看服务器es的license信息,发现 …

用「埋点」记录自己,不妄过一生

最近有朋友问我「埋点怎么做」,给朋友讲了一些互联网广告的案例,从源头的数据采集讲到末尾的应用分析和流量分配等(此处省略N多字) 解释完以后,我想到一个问题:有了埋点可以做分析,那我们对自己…

机器学习概论

一、机器学习概述 1、机器学习与人工智能、深度学习的关系 人工智能:机器展现的人类智能机器学习:计算机利用已有的数据(经验),得出了某种模型,并利用此模型预测未来的一种方法。深度学习:实现机器学习的一种技术 2…

yum

什么是yum? Linux中我们也要进行工具/指令/程序,安装,检查卸载等,需要yum的软件 安装软件的方式: 1.源代码安装--交叉编译工作 2.rpm包直接安装 3.yum / apt-get yum:yum是我们linux预装的一个指令,搜索&#x…

【数据结构】顺序表和链表

顺序表和链表 1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连…

uniapp 省市区三级联动选择器

还有半个小时下班,总想着发点光亮照耀他人。IT技术这东西,尤其是UI方面的东西,于用户体验至关重要,想想最近使用uni-data-picker的丑陋页面,自己重构了这个功能,新加实现,效果图如下&#xff0c…

SRC实战 | CORS跨资源共享漏洞

CORS跨资源共享 跨源资源共享 (CORS) 是一种浏览器机制,允许网页使用来自其他页面或域的资产和数据。 大多数站点需要使用资源和图像来运行它们的脚本。这些嵌入式资产存在安全风险,因为这些资产可能包含病毒或允许服务器访问黑客。 CORS响应头 CORS通…

类(class)

类是 C中一个非常重要的元素,可以说是 C的灵魂所在了,我们都知道 C说一种面向对象的编程语言,那么面向对象是一种什么概念呢?在 C程序设计中,所有一切东西都可以称之为对象,任何对象都应该具有属性和行为。…

C++基础——类与对象

1 概述 C是面向对象的语言,面向对象语言三大特性:封装、继承、多态。 C将万事万物抽象为对象,对象上有其属性和行为。 2 封装 2.1 封装的意义 封装是面向对象的三大特性之一,封装将属性和行为作为一个整体,对属性和…

灵活调整宣传策略,媒体发稿和新闻发布的优势所在

企业在当今信息爆炸的时代,要想在市场竞争中脱颖而出,提高公信力是至关重要的。而媒体发稿和新闻发布是提升企业公信力的重要手段之一。下面将从门户网站的权威展示、搜索引擎排名的提升、内容的持续稳定有效性、内容的可改性以及协助增加网站流量等方面…

浅谈自动化测试框架开发

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

Linux中for循环

for do done 复习知识点:cut命令,id命令,finger命令,for循环 程序如上,-d 接分隔符,-f后的数字表示分隔后的列 从结果可以看出,系统上没有finger这个命令,后面会学到yum安装命令&a…

Python---字符串的修改方法---replace()替换

修改字符串,指的就是通过函数(方法)的形式修改字符串中的数据。 编号函数作用1replace()返回替换后的字符串2split()返回切割后的列表序列3capitalize()首字母大写4title()所有单词首字母大写5upper()与lower()返回全部大写或小写的字符串6l…

[动态规划] (九) 路径问题:LeetCode 64.最小路径和

[动态规划] (九) 路径问题:LeetCode 64.最小路径和 文章目录 [动态规划] (九) 路径问题:LeetCode 64.最小路径和题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 64. 最小路径和 题目解析 (1) 从左上角到右下角 (2) 只能向右…

ardupilot开发 --- gdb 篇

环境 win11 vscode 1.81.0 wsl2 ardupilot 利用gdb工具在vsCode中实现 Ardupilot SITL的断点调试 优点:可在vsCode中实现断点调试。 参考文献:https://ardupilot.org/dev/docs/debugging-with-gdb-using-vscode.html 安装gdb工具 打开wsl&#xff0…

剑指JUC原理-13.线程池

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

从NetSuite Payment Link杂谈财务自动化、数字化转型

最近在进行信息化的理论学习,让我有机会跳开软件功能,用更加宏大的视野,来审视我们在哪里,我们要到哪去。 在过去20多年,我们的财务软件经历了电算化、网络化、目前处于自动化、智能化阶段。从NetSuite这几年的功能发…

【Effective Modern C++】条款2:理解auto类型推导

条款2&#xff1a;理解auto类型推导 条款1中&#xff0c;模板类型推导的函数模板形如&#xff1a; template<typename T> void f(ParamType param);当变量采用auto声明时&#xff0c;auto扮演了模板中的T这个角色&#xff0c;而变量的类型扮演的是ParamType的角色。 条…

Django实战项目-学习任务系统-查询列表分页显示

接着上期代码框架&#xff0c;6个主要功能基本实现&#xff0c;剩下的就是细节点的完善优化了。 接着优化查询列表分页显示功能&#xff0c;有很多菜单功能都有查询列表显示页面情况&#xff0c;如果数据量多&#xff0c;不分页显示的话&#xff0c;页面展示效果就不太好。 本…