磁盘挂载

一、将新数据盘LVM卷组挂载

4个NVMe SSD(每个1.7T)组成了一个名为data_lv的LVM卷组,并创建了一个名为data_lv_vg的逻辑卷,总容量约7T

root@no-use:/# lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                    8:0    0 446.1G  0 disk
├─sda1                 8:1    0   446G  0 part /
└─sda2                 8:2    0    64M  0 part
nvme0n1              259:0    0   1.7T  0 disk
└─data_lv-data_lv_vg 253:0    0     7T  0 lvm
nvme1n1              259:1    0   1.7T  0 disk
└─data_lv-data_lv_vg 253:0    0     7T  0 lvm
nvme2n1              259:2    0   1.7T  0 disk
└─data_lv-data_lv_vg 253:0    0     7T  0 lvm
nvme3n1              259:3    0   1.7T  0 disk
└─data_lv-data_lv_vg 253:0    0     7T  0 lvm

情况一:将逻辑卷挂载到/data(使用全部7T空间)

步骤1:检查逻辑卷状态

# 查看逻辑卷详细信息
lvdisplay /dev/data_lv/data_lv_vg

# 检查是否有文件系统
blkid /dev/data_lv/data_lv_vg

# 检查文件系统类型
file -sL /dev/data_lv/data_lv_vg

步骤2:如果逻辑卷没有文件系统,需要创建文件系统

# 创建ext4文件系统(根据需求选择)
mkfs.ext4 /dev/data_lv/data_lv_vg

# 或者创建xfs文件系统
mkfs.xfs /dev/data_lv/data_lv_vg

步骤3:创建/data目录并挂载

# 创建挂载点
mkdir -p /data

# 临时挂载
mount /dev/data_lv/data_lv_vg /data

# 验证挂载
df -h /data

# 查看当前挂载情况
mount | grep data_lv
lsblk
# 查看LVM状态
pvdisplay
vgdisplay
lvdisplay

步骤4:配置开机自动挂载

image

 

# 获取逻辑卷的UUID
blkid /dev/data_lv/data_lv_vg

#方式一: 编辑/etc/fstab文件,添加以下行(使用UUID更安全)
vim /etc/fstab

# 添加类似内容(替换为您的UUID):
UUID=GY2rX1-MRMd-cNTz-AzAQ-6Z0Y-9488-3Qp8oF /data ext4 defaults 0 0
# 或者使用设备路径(但UUID更稳定):
/dev/data_lv/data_lv_vg /data ext4 defaults 0 0

# 方式二:永久挂载(编辑 /etc/fstab)
echo "/dev/mapper/data_lv-data_lv_vg /data ext4 defaults 0 0" >> /etc/fstab
# 验证fstab配置
mount -a

步骤5:卸载挂载

# 首先卸载(如果已挂载)
umount /data

方法1:查看哪个进程正在使用
# 查看哪个进程占用了 /data
lsof +f -- /data
# 或
fuser -vm /data

方法2:强制卸载
# 使用懒卸载(lazy unmount),断开文件系统但保持已打开的文件可访问
umount -l /data
# 或强制卸载(更强制的方式)
umount -f /data

方法3:更详细的检查
# 查看挂载点的详细信息
mount | grep /data
# 查看是否有进程在 /data 目录下
ps aux | grep /data
# 查看当前工作目录在 /data 的进程
lsof | grep /data


方法4:如果只是终端当前在 /data 目录
# 切换到其他目录
cd /
# 然后再尝试卸载
umount /data


方法5:使用 fuser 终止进程
# 查看占用进程
fuser -m /data

# 终止所有使用 /data 的进程(谨慎使用)
fuser -km /data
# 然后再卸载
umount /data

情况二:将部分空间分配给/data

步骤1:检查当前LVM配置

# 查看逻辑卷详细信息
lvdisplay /dev/data_lv/data_lv_vg

# 查看卷组详细信息
vgdisplay data_lv_vg

# 查看物理卷信息
pvdisplay

步骤1:缩小逻辑卷(如果已存在数据,需要先备份!)

# 首先卸载(如果已挂载)
umount /data
umount /dev/data_lv/data_lv_vg 
# 检查文件系统(假设是ext4)
e2fsck -f /dev/data_lv/data_lv_vg

# 从当前data_lv_vg中缩减空间,缩小文件系统(例如缩小到2T)
resize2fs /dev/data_lv/data_lv_vg 2T           #减少2TB

# 从当前空间缩小逻辑卷(与文件系统大小一致)
lvreduce -L 2T /dev/data_lv/data_lv_vg

#确认
lvdisplay /dev/data_lv/data_lv_vg

步骤2:创建新的逻辑卷给/data

#查看当前逻辑卷的名称
lvdisplay

# 查看剩余空间 vgdisplay data_lv # 创建新逻辑卷(例如分配1T给
/data) lvcreate -L 1T -n data_part data_lv # 或者使用剩余空间的50% lvcreate -l 50%FREE -n data_part data_lv

# 查看新建的逻辑卷
lvdisplay /dev/data_lv_vg/data_part

步骤3:格式化并挂载新逻辑卷

# 创建文件系统
mkfs.ext4 /dev/data_lv/data_part

# 挂载
mkdir -p /data
mount /dev/data_lv/data_part /data

# 添加到fstab
echo "/dev/data_lv/data_part /data ext4 defaults 0 0" >> /etc/fstab

步骤4:验证配置

# 验证挂载
df -h /data

# 验证fstab配置
mount -a

# 检查逻辑卷状态
lvs
vgs

二、将同一磁盘LVM(逻辑卷管理)扩容到根目录/

系统使用 LVM(逻辑卷管理),需要将 /dev/sda3 的剩余空间扩展到根目录 /

image

步骤 1: 确认当前磁盘和文件系统状态

首先,让我们确认当前的磁盘布局和文件系统类型:

# 查看块设备及其分区结构
lsblk
# 显示更详细信息(文件系统类型、UUID等)
lsblk -f
# 显示设备大小
lsblk -b   # 字节
lsblk -h   # 人类可读格式(GB、MB)
# 显示所有设备(包括空设备)
lsblk -a
# 显示设备拓扑和依赖关系
lsblk -t
# 查看指定磁盘剩余空间
lsblk /dev/sda
#==============================================================

# 查看磁盘分区情况
sudo fdisk -l /dev/sda

# 查看物理卷(PV)信息
sudo pvdisplay

# 查看卷组(VG)信息
sudo vgdisplay

# 查看逻辑卷(LV)信息
sudo lvdisplay

# 查看文件系统类型和挂载情况
df -hT

步骤 2: 扩展分区(如果需要)

image

运行 fdisk -l /dev/sda,查看分区表及总大小,确认是否有未分配空间。

若发现 /dev/sda3 分区没有占用所有可用空间(如果还有未分配空间),需要先扩展分区:

# 使用 parted 工具调整分区大小
sudo parted /dev/sda

在 parted 交互界面中:

  1. 输入 print 查看当前分区表

  2. 输入 resizepart 3选择调整第3个分区

  3. 当询问结束位置时,输入 100% 或具体大小(如 6.5TB

  4. 输入 quit 退出

(parted) resizepart 3 100%

步骤 3: 扩展物理卷(PV)

# 重新读取分区表(无需重启)
sudo partprobe /dev/sda

# 扩展物理卷
sudo pvresize /dev/sda3

# 验证物理卷大小
sudo pvdisplay

若/dev/sda3分区已经占了所有可用空间,忽略2、3步骤,直接执行第4步

步骤 4: 扩展逻辑卷(LV)

# 查看可用的空闲空间
sudo vgdisplay

# 扩展逻辑卷(使用所有可用空间)
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
  • -l +100%FREE: 表示使用卷组中 100% 的空闲空间。

  • /dev/ubuntu-vg/ubuntu-lv: 替换为你的实际 LV 路径。

#指定扩容空间大小
sudo lvextend -L +2T /dev/ubuntu-vg/ubuntu-lv
  • -L +2T: 表示增加 2TiB 的空间。注意 + 号表示“增加”,没有 + 号则表示“设置为”。

# 验证逻辑卷大小
sudo lvdisplay

步骤 5: 扩展文件系统

根据您的文件系统类型选择相应命令:

#如果是 ext4 文件系统:
# 调整文件系统大小
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

如果是 xfs 文件系统:
# 调整文件系统大小
sudo xfs_growfs /

步骤 6: 验证扩容结果

# 检查文件系统大小
df -h

# 检查逻辑卷状态
sudo lvdisplay

# 检查卷组状态
sudo vgdisplay

步骤 7: 故障排除

# 检查文件系统错误(ext4)
sudo e2fsck -f /dev/ubuntu-vg/ubuntu-lv

# 强制检查并修复文件系统
sudo fsck -y /dev/ubuntu-vg/ubuntu-lv

三、将普通磁盘挂载到/data

普通磁盘sda信息。


[root@centos7 /]# lsblk

NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda               8:0    0   8G  0 disk
sdb               8:16   0  50G  0 disk
├─sdb1            8:17   0   1G  0 part /boot
└─sdb2            8:18   0  49G  0 part
  ├─centos-root 253:0    0  47G  0 lvm  /
  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]。把sba挂载到/data

根据您的需求,需要将 sda 磁盘挂载到 /data 目录。以下是详细步骤:

1. 创建分区(如果 sda 还没有分区)

# 查看当前磁盘分区情况
fdisk -l /dev/sda

# 如果 sda 没有分区,创建新分区
fdisk /dev/sda

方式一:将 sda 磁盘中的 8GB 挂载到 /data

在 fdisk 中按顺序执行:

输入 n 创建新分区
选择 p 主分区
分区号默认 1
起始扇区默认
结束扇区默认(使用整个磁盘)
输入 w 保存并退出

方式二:将 sda 磁盘中的 4GB 挂载到 /data,剩余空间保留

在 fdisk 中按顺序执行:

n      # 创建新分区
p      # 主分区
1      # 分区号(第一个分区)
回车    # 起始扇区默认(从开始)
+4G    # 大小为 4GB(输入 +4G)
w      # 保存并退出

验证分区创建:

# 重新读取分区表
partprobe /dev/sda

# 查看分区表
fdisk -l /dev/sda
# 应该看到 sda1 分区,大小为 4GB或8GB

2. 格式化分区

# 格式化分区为 ext4 文件系统(也可以选择 xfs)
mkfs.ext4 /dev/sda1

# 或使用 xfs
# mkfs.xfs /dev/sda1

3. 创建挂载点,临时挂载

# 创建 /data 目录
mkdir -p /data

# 挂载分区到 /data
mount /dev/sda1 /data

# 检查是否挂载成功
df -h /data
lsblk

4. 配置永久挂载

# 获取分区的 UUID(推荐使用 UUID 挂载,更稳定)
blkid /dev/sda1

# 编辑 /etc/fstab 文件
vim /etc/fstab

在 /etc/fstab 末尾添加一行(根据实际情况选择):

# 使用 UUID(推荐)
UUID=你的sda1的UUID /data ext4 defaults 0 0

# 或使用设备名(不推荐,设备名可能变化)
# /dev/sda1 /data ext4 defaults 0 0

fstab 各字段说明:

  • 第1列:设备(UUID或设备路径)

  • 第2列:挂载点

  • 第3列:文件系统类型

  • 第4列:挂载选项(defaults表示默认)

  • 第5列:dump备份标志(0表示不备份)

  • 第6列:fsck检查顺序(0表示不检查

5. 测试并应用配置

# 测试 fstab 配置是否正确(不实际挂载)
mount -a

# 验证挂载
df -h
lsblk

6. 验证剩余空间

# 查看磁盘剩余空间
fdisk -l /dev/sda
# 输出中会显示:
# /dev/sda1 大小为 4GB
# 磁盘总大小 8GB,应该有约 4GB 未分配空间

# 或者使用 parted
parted /dev/sda print free
# 会显示已分配和未分配的空间

7. 剩余空间处理选项

选项 A:创建第二个分区

fdisk /dev/sda
# 按顺序:
# n  # 新建分区
# p  # 主分区
# 2  # 第二个分区
# 回车 # 使用默认起始位置
# 回车 # 使用所有剩余空间
# w  # 保存

# 然后格式化
mkfs.ext4 /dev/sda2

# 可以挂载到其他目录
mkdir /data2
mount /dev/sda2 /data2

选项 B:剩余空间扩容到/dev/sda1

方式一:删除并重新创建分区

重要:先备份数据,删除分区会丢失分区表信息,但不影响数据,只要不格式化。

# 进入fdisk
fdisk /dev/sda

在 fdisk 中按顺序执行:

p      # 打印当前分区表,记录sda1的起始扇区
d      # 删除分区
1      # 删除分区1
n      # 创建新分区
p      # 主分区
1      # 分区号1
回车    # 使用相同的起始扇区(必须与原来相同!)
回车    # 使用默认结束扇区(使用所有剩余空间)
w      # 保存并退出

检查分区表

# 重新读取分区表
partprobe /dev/sda

# 查看新分区表
fdisk -l /dev/sda
# 现在应该看到sda1大小为整个8GB磁盘

检查和修复文件系统

# 检查文件系统(ext4)
e2fsck -f /dev/sda1

# 如果是xfs文件系统,使用:
# xfs_repair /dev/sda1

扩展文件系统

(一)如果是 ext4 文件系统:
# 调整文件系统大小以填充整个分区
resize2fs /dev/sda1

# 或者指定具体大小(可选)
# resize2fs /dev/sda1 8G

(二)如果是 xfs 文件系统:
# 先挂载分区
mount /dev/sda1 /data

# 扩展xfs文件系统
xfs_growfs /dev/sda1
# 或
# xfs_growfs /data


(三)重新挂载分区(如果是ext4)
# 对于ext4,如果之前卸载了,现在重新挂载
mount /dev/sda1 /data

# 对于xfs,如果已经挂载了,跳过这一步

方式二:使用 parted(更安全)进行分区扩容

如果担心fdisk操作风险,可以使用parted:

# 安装parted(如果未安装)
yum install parted -y

# 查看分区信息
parted /dev/sda print

# 调整分区大小
parted /dev/sda
# 在parted交互界面:
# select /dev/sda
# resizepart 1
# Yes
# 100%
# quit

第一步:使用 parted 扩容分区

请严格按照以下顺序执行命令:
# 1. 启动 parted,操作磁盘 /dev/sda
parted /dev/sda

进入 parted 的交互模式后,你会看到提示符变为 (parted)。依次输入以下命令:
# 2. 查看当前分区表,确认分区编号和空闲空间
(parted) print free

这个命令的输出至关重要。它会显示类似下面的信息:
型号:Virtio Block Device (virtblk)
磁盘 /dev/sda: 107GB
扇区大小 (逻辑/物理):512B/512B
分区表:msdos
数字  开始: 结束    大小   类型     文件系统  标志
 1    1049kB  40GB   40GB   primary  ext4      boot
       40GB   107GB  67GB            Free Space

请记下:
你要扩容的分区号(例如 1)。
是否有 Free Space(空闲空间),且是否紧挨在你目标分区的后面。

# 3. 执行扩容。将分区 1 的结束位置调整为磁盘的 100%(使用所有空闲空间)
#    注意:这里的 `1` 必须替换成你上一步看到的分区编号
(parted) resizepart 1 100%


# 4. 再次检查,确认分区结束位置已变为磁盘最大容量
(parted) print
# 5. 退出 parted
(parted) quit

第二步:扩容文件系统

# 检查文件系统(ext4)
e2fsck -f /dev/sda1
情况A:最常见的 ext2/ext3/ext4 文件系统
# 检查文件系统类型(通常是 ext4)
blkid /dev/sda1
# 如果是 ext2/3/4,使用 resize2fs
resize2fs /dev/sda1


情况B:XFS 文件系统
# 如果是 XFS,使用 xfs_growfs
xfs_growfs /dev/sda1

四、磁盘LVM分区

sda磁盘进行LVM分区并挂载到/data目录。以下是具体步骤:

[root@centos7 /]# lsblk
NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda               8:0    0   8G  0 disk
sdb               8:16   0  50G  0 disk
├─sdb1            8:17   0   1G  0 part /boot
└─sdb2            8:18   0  49G  0 part
  ├─centos-root 253:0    0  47G  0 lvm  /
  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]

步骤1:创建LVM物理卷

# 创建物理卷
pvcreate /dev/sda

# 查看物理卷信息
pvdisplay

步骤2:创建卷组

# 创建卷组,命名为vg_data
vgcreate vg_data /dev/sda

# 查看卷组信息
vgdisplay

步骤3:创建逻辑卷

# 创建逻辑卷,使用全部空间,命名为lv_data
lvcreate -l 100%FREE -n lv_data vg_data

#将4g空间分配lv_data
lvcreate -l 50%FREE -n lv_data vg_data

#指定4G空间大小 lvcreate
-L 4G -n lv_data vg_data # 查看逻辑卷信息 lvdisplay

步骤4:格式化逻辑卷

# 或者使用ext4文件系统(如果您更熟悉)
mkfs.ext4 /dev/vg_data/lv_data

# 格式化逻辑卷为xfs文件系统(CentOS 7推荐使用xfs)
mkfs.xfs /dev/vg_data/lv_data

步骤5:创建挂载点并挂载

# 创建/data目录
mkdir -p /data

# 临时挂载
mount /dev/vg_data/lv_data /data

# 查看挂载情况
df -h

步骤6:配置开机自动挂载

# 获取文件系统的UUID(可选但推荐)
blkid /dev/vg_data/lv_data

# 编辑/etc/fstab文件
vi /etc/fstab


在/etc/fstab文件中添加以下行(选择一种方式):
方式1:使用设备路径(较简单)
/dev/vg_data/lv_data /data xfs defaults 0 0

方式2:使用UUID(更稳定)
UUID=<这里填写blkid命令显示的UUID> /data xfs defaults 0 0

步骤7:验证安装

# 测试fstab配置
mount -a

# 检查是否挂载成功
df -h /data


# 查看所有LVM组件
pvs
vgs
lvs

# 查看挂载信息
lsblk
df -h

步骤8:将剩余空间扩容到/dev/vg_data/lv_data

(一)扩展逻辑卷(LV)
# 查看可用的空闲空间
sudo vgdisplay

# 扩展逻辑卷(使用所有可用空间)
sudo lvextend -l +100%FREE /dev/vg_data/lv_data
  -l +100%FREE: 表示使用卷组中 100% 的空闲空间。
  /dev/vg_data/lv_data: 替换为你的实际 LV 路径。

#指定扩容空间大小
sudo lvextend -L +4G /dev/vg_data/lv_data
-L +4g: 表示增加 4giB 的空间。注意 + 号表示“增加”,没有 + 号则表示“设置为”。

# 验证逻辑卷大小
sudo lvdisplay


 (二)扩展文件系统
根据您的文件系统类型选择相应命令:
#如果是 ext4 文件系统:
# 调整文件系统大小
sudo resize2fs /dev/vg_data/lv_data

如果是 xfs 文件系统:
# 调整文件系统大小
sudo xfs_growfs /

步骤9:删除LVM分区

方法1:卸载文件系统删除整个LVM结构

步骤1:卸载文件系统
# 先卸载挂载点
umount /data

# 如果卸载失败(设备忙),可以查看哪个进程在使用
lsof /data
# 或
fuser -m /data

# 强制卸载(谨慎使用)
umount -f /data

步骤2:删除逻辑卷
# 删除逻辑卷(这会删除所有数据!)
lvremove /dev/vg_data/lv_data

# 或强制删除
lvremove -f /dev/vg_data/lv_data

步骤3:删除卷组
# 删除卷组
vgremove vg_data

步骤4:删除物理卷
# 删除物理卷
pvremove /dev/sda


步骤5:清理fstab配置
# 编辑fstab文件,删除/data的挂载行
vi /etc/fstab

# 或者使用sed删除包含/data的行
sed -i '/\/data/d' /etc/fstab

步骤6:删除挂载点(可选)
# 删除空目录
rmdir /data

方法2:重置磁盘为普通磁盘(清除所有LVM签名)

如果想彻底清除LVM信息,恢复磁盘为原始状态:

# 1. 卸载并删除LVM
umount /data
lvremove -f /dev/vg_data/lv_data
vgremove vg_data
pvremove /dev/sda

# 2. 清除磁盘的LVM签名
wipefs -a /dev/sda

# 3. 清除分区表(如果需要完全重置)
dd if=/dev/zero of=/dev/sda bs=512 count=1

# 4. 或者使用parted清除
parted /dev/sda mklabel gpt

验证删除结果
# 检查LVM状态
pvs     # 应该看不到/dev/sda
vgs     # 应该看不到vg_data
lvs     # 应该看不到lv_data

# 检查挂载
df -h   # 应该看不到/data挂载

# 检查磁盘状态
lsblk

 

posted on 2025-12-22 11:15  uestc2007  阅读(18)  评论(0)    收藏  举报

导航