Linux查看磁盘的挂载和分区情况

前言

当有一个新的服务器的时候,我们首先要确认磁盘是否挂载了。

这里说一下怎样判断及怎样挂载和扩容。

查看磁盘的挂载情况

查看磁盘是否挂载

1
lsblk

查看输出中的 MOUNTPOINTS,没值的就是没挂载。

类型

TYPE 值 含义 说明
disk 物理磁盘(或 NVMe SSD) sdanvme0n1,代表一块完整的硬盘或固态盘
part 分区(Partition) disk 上划分出的逻辑区域,如 sda1nvme0n1p1
lvm LVM 逻辑卷(Logical Volume) 由多个物理卷(PV)组成的逻辑存储池中划分出的“虚拟分区”
loop Loop 设备 将普通文件模拟成块设备,常用于 Snap 软件包、容器镜像等

其中

loop

  • TYPE = loop:这些是 Snap 软件包系统 自动挂载的只读镜像文件。
  • 它们不是真实磁盘,而是把 /var/lib/snapd/snaps/xxx.snap 文件当作“虚拟磁盘”挂载。
  • 可忽略,不影响你的数据盘管理。

lvm

  • 磁盘/分区 → 物理卷 → 卷组 → 逻辑卷 → 文件系统:使用LVM时,磁盘或分区转换为物理卷,加入卷组,从中创建逻辑卷,最后在逻辑卷上建立文件系统。

我们看这样一个示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
NAME                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.8M 1 loop /snap/core20/2682
loop1 7:1 0 63.8M 1 loop /snap/core20/2686
loop2 7:2 0 91.4M 1 loop /snap/lxd/36558
loop3 7:3 0 91.4M 1 loop /snap/lxd/36918
loop4 7:4 0 50.9M 1 loop /snap/snapd/25577
loop5 7:5 0 48.1M 1 loop /snap/snapd/25935
sda 8:0 0 893.8G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 891.7G 0 part /
nvme0n1 259:0 0 3.5T 0 disk
└─nvme0n1p1 259:2 0 3.5T 0 part
└─datavg-lv01 253:0 0 5T 0 lvm
nvme1n1 259:1 0 3.5T 0 disk
└─nvme1n1p1 259:3 0 3.5T 0 part
└─datavg-lv01 253:0 0 5T 0 lvm
nvme3n1 259:4 0 3.5T 0 disk
nvme2n1 259:5 0 3.5T 0 disk

可以看出

设备 状态 建议
sda 系统盘,已完全挂载 无需操作
nvme0n1 + nvme1n1 已组成 5TB LVM 逻辑卷,但 未挂载 ✅ 应挂载到 /data 或其他目录
nvme2n1nvme3n1 完全未使用(无分区、无文件系统) 可扩容 LVM 或单独使用

LVM

磁盘 → 分区 → 物理卷 → 卷组 → 逻辑卷 → 文件系统 → 挂载

注意

设置卷组和逻辑卷的时候命名不要有-

因为我们在用lsblk查看的时候逻辑卷的名称是卷组名-逻辑卷名,如果命名时有-,就比较难区分。

磁盘=>分区

1
cfdisk /dev/nvme2n1

标签选择gpt

NewWriteQuit

查看

1
lsblk

创建的分区为

1
nvme2n1p1

分区=>物理卷

初始化为物理卷

初始化的物理卷不能有文件系统,如果有的化会提示擦除。

1
pvcreate /dev/nvme2n1p1

查看物理卷

1
pvs

卷组添加物理卷

查看卷组

1
vgs

已有卷组

修改卷组名

1
vgrename data-vg datavg

物理卷添加至卷组

1
vgextend datavg /dev/nvme2n1p1

新建卷组

我们可以创建卷组同时添加物理卷

1
vgcreate data-vg /dev/nvme0n1p1

查看

1
2
pvs
vgs

创建逻辑卷

查看逻辑卷

1
lvs

已有逻辑卷

修改逻辑卷名

1
lvrename datavg data-vol1 lv01

扩容逻辑卷

1
2
# 扩容逻辑卷占用所有剩余空间
lvextend -l +100%FREE /dev/datavg/lv01

如果想扩容逻辑卷指定空间

1
lvextend -L +10G /dev/datavg/lv01

其中

  • datavg 是卷组名
  • lv01 是逻辑卷名

新建逻辑卷

按剩余空间比例创建

1
lvcreate -l +100%free -n lv01 datavg

按指定大小创建

1
lvcreate -L 100G -n lv01 datavg

查看

1
2
lvs
lsblk

文件系统

查看文件系统的类型和容量

1
blkid /dev/datavg/lv01

扩容文件系统

如果有文件系统,则进行扩容。

扩容要根据文件系统的类型。

对于 ext4 文件系统:

1
resize2fs /dev/datavg/lv01

对于 XFS 文件系统:

1
xfs_growfs /dev/datavg/lv01

再次查看容量判断是否扩容成功

1
df -Th

格式化文件系统

如果没有文件系统就要格式化文件系统

若要格式化为 xfs 文件系统,则执行:

1
mkfs.xfs /dev/datavg/lv01

若要格式化为 ext4 文件系统,执行:

1
mkfs.ext4 /dev/datavg/lv01

查看文件系统

1
blkid

挂载

挂载的分区必须有文件系统

临时生效

创建文件夹

1
mkdir /data

挂载

1
mount /dev/datavg/lv01 /data

查看硬盘的剩余空间

1
df -hl

取消挂载

1
umount /data

永久生效

配置/etc/fstab文件

备份etc/fstab文件:

1
cp /etc/fstab /etc/fstab.bak

root用户可以运行以下命令直接修改/etc/fstab文件。

1
echo `blkid /dev/datavg/lv01 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab

查看

1
blkid

查看

查看物理卷

1
pvs

查看卷组

1
vgs

查看逻辑卷

1
lvs

挂载信息

查看已挂载文件系统的使用情况

1
df -h

文件夹大小

1
du -sh ./*