面是从零开始在 Ubuntu 上使用全新硬盘配置 LVM 的完整步骤指南,涵盖物理卷(PV)创建、卷组(VG)创建、逻辑卷(LV)创建、文件系统格式化到挂载使用的全过程。
目标: 将一块全新的物理硬盘(例如 /dev/sdb
)通过 LVM 管理,创建一个逻辑卷,格式化为 ext4 文件系统,并挂载到 /data
目录使用。
前提:
-
已安装
lvm2
软件包(Ubuntu 通常默认安装)。 -
已连接一块未使用的新硬盘到系统。
-
重要! 使用
lsblk
或sudo fdisk -l
确认新硬盘的设备名(如/dev/sdb
,/dev/nvme0n2
)。务必确认无误,操作错误设备会导致数据丢失!
步骤 1:识别新硬盘
sudo lsblk -f
sudo fdisk -l
-
找到目标新硬盘,它应该没有分区表或文件系统。例如:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
...
sdb
这里 /dev/sdb
就是我们要操作的新硬盘。
步骤 2:在硬盘上创建物理卷(PV)
LVM 可以直接使用整个硬盘作为物理卷,无需预先分区(推荐此方式,简单高效)。如果你想先分区再使用,也可以(将分区类型改为 Linux LVM (8e)
),但直接使用硬盘更常见。
选项 A:直接使用整个硬盘创建 PV (推荐)
sudo pvcreate /dev/sdb # 将 /dev/sdb 替换为你的新硬盘设备名
选项 B:先创建分区再创建 PV (较少用)
1、使用 fdisk
或 gparted
创建分区:
sudo fdisk /dev/sdb
1、n (新建分区)
2、选择分区类型 (p 主分区)
3、分区号 (1)
4、起始扇区 (默认)
5、结束扇区 (默认,使用整个硬盘)
6、t (更改分区类型)
7、输入 8e (设置类型为 Linux LVM)
8、w (写入分区表并退出)
2、在分区上创建 PV:
sudo pvcreate /dev/sdb1 # 在刚创建的分区上创建 PV
验证 PV 创建成功:
sudo pvdisplay
sudo pvs
输出应显示你创建的 PV (/dev/sdb
或 /dev/sdb1
),状态为 allocatable
。
步骤 3:创建卷组(VG)
卷组(VG)是物理卷(PV)的集合,它像一个大的存储池。
sudo vgcreate myvg /dev/sdb # 将 'myvg' 替换为你想要的卷组名,'/dev/sdb' 替换为你的 PV
-
myvg
:这是你为卷组起的名字(例如data-vg
,storage-vg
)。选择一个有意义的名字。 -
/dev/sdb
:指定要加入这个新卷组的物理卷。
验证 VG 创建成功:
sudo vgdisplay myvg # 显示 myvg 的详细信息
sudo vgs # 简要列出所有 VG
输出应显示你的 VG (myvg
),包含你添加的 PV,并显示总大小和可用空间。
步骤 4:在卷组(VG)中创建逻辑卷(LV)
逻辑卷(LV)是从卷组(VG)中划分出来的空间块,它最终会被格式化成文件系统并挂载使用。
sudo lvcreate -n mylv -L 100G myvg # 创建一个名为 'mylv' 大小为 100G 的 LV,从 'myvg' VG 中分配
-
-n mylv
:指定逻辑卷的名称(例如data-lv
,home-lv
)。 -
-L 100G
:指定逻辑卷的大小(例如50G
,1T
)。注意: 大小不能超过 VG 的可用空间。使用vgdisplay myvg
查看Free PE / Size
。 -
myvg
:指定从哪个卷组分配空间。
创建 LV 的其他常用选项:
-
使用 VG 的全部剩余空间:
sudo lvcreate -n mylv -l 100%FREE myvg
-
指定使用所有可用空间 (
-l 100%FREE
) 是创建 LV 时最常用的方式之一。
验证 LV 创建成功:
sudo lvdisplay /dev/myvg/mylv # 显示 mylv 的详细信息 (使用完整路径)
sudo lvs # 简要列出所有 LV
输出应显示你的 LV (mylv
),位于 VG (myvg
) 下,大小符合预期。记住 LV 的完整设备路径:/dev/myvg/mylv
,下一步格式化要用。
步骤 5:在逻辑卷(LV)上创建文件系统
现在 /dev/myvg/mylv
就像一个普通的分区,需要在其上创建文件系统(格式化)才能存储文件。
选择文件系统类型:
-
ext4 (推荐,通用稳定):
sudo mkfs -t ext4 /dev/myvg/mylv
-
xfs (高性能,适合大文件):
sudo mkfs -t xfs /dev/myvg/mylv
-
btrfs (高级特性如快照、压缩):
sudo mkfs -t btrfs /dev/myvg/mylv
验证格式化:
sudo blkid /dev/myvg/mylv
输出应显示该 LV 的设备路径、UUID 和文件系统类型(如 TYPE="ext4"
)。
步骤 6:挂载逻辑卷(LV)
创建挂载点目录: 选择一个目录作为该逻辑卷的访问入口。
sudo mkdir /data # 创建一个名为 /data 的目录,你可以选择其他路径如 /mnt/mydata
临时挂载(测试):
sudo mount /dev/myvg/mylv /data
验证挂载:
df -hT /data # 查看 /data 的空间使用和文件系统类型
lsblk -f # 查看块设备树,确认 LV 已挂载到 /data
-
你应该看到
/data
对应的设备是/dev/mapper/myvg-mylv
,大小、文件系统类型正确,并且有可用的空间。 -
永久挂载(修改
/etc/fstab
): 让系统每次启动自动挂载。-
获取 LV 的 UUID (推荐) 或设备路径:
sudo blkid /dev/myvg/mylv
复制输出的
UUID
值(一长串字符)。 -
编辑
/etc/fstab
:sudo nano /etc/fstab
-
在文件末尾添加一行: (以 ext4 为例)
UUID=你的LV的UUID /data ext4 defaults 0 2
-
UUID=...
: 替换为上一步复制的 UUID。强烈推荐使用 UUID! 因为/dev/mapper/myvg-mylv
路径虽然稳定,但使用 UUID 是绝对可靠的。 -
/data
: 你的挂载点目录。 -
ext4
: 你的文件系统类型(如果是 xfs 或 btrfs 则替换)。 -
defaults
: 标准的挂载选项(包含读写、允许执行等)。你可以根据需求调整(如添加noatime
提升性能)。 -
0
: dump 工具忽略此文件系统。 -
2
: 开机时fsck
磁盘检查的顺序(根/
是1
,其他非根文件系统通常是2
)。
-
-
保存并退出编辑器。
-
-
测试 fstab 配置:
sudo umount /data # 先卸载 sudo mount -a # 根据 fstab 重新挂载所有文件系统
-
如果这条命令没有报错信息,并且
df -hT
显示/data
已成功挂载,则配置正确。 -
如果有任何错误,立即检查
/etc/fstab
中的拼写、UUID、路径和选项! 错误的 fstab 可能导致系统无法启动。
-
步骤 7:设置目录权限(可选)
默认情况下,只有 root 用户能在 /data
下创建文件。如果你想让普通用户也能读写:
sudo chown -R yourusername:yourgroup /data # 将 /data 及其内容的所有权给指定用户和组
sudo chmod -R 775 /data # 设置权限 (rwxrwxr-x),允许所有者和组读写执行,其他人读执行
-
将
yourusername
和yourgroup
替换为实际的用户名和组名(通常用户名和主组名相同)。可以使用id
命令查看你的用户和组信息。
最终验证与使用
-
检查整体状态:
sudo pvs # 查看物理卷状态 sudo vgs # 查看卷组状态 sudo lvs # 查看逻辑卷状态 df -hT # 查看文件系统挂载和使用情况
-
在
/data
下创建测试文件:touch /data/testfile ls -l /data
确认文件能正常创建。
总结:从头开始 LVM 流程 (一张表搞定)
步骤 | 作用 | 核心命令 | 关键参数/说明 | 验证命令 |
---|---|---|---|---|
1 | 识别硬盘 | sudo lsblk , sudo fdisk -l | 确认 /dev/sdX (新硬盘) | |
2 | 创建物理卷 (PV) | sudo pvcreate /dev/sdX | 使用整个硬盘 (推荐) | sudo pvdisplay |
3 | 创建卷组 (VG) | sudo vgcreate myvg /dev/sdX | myvg (自定义 VG 名) | sudo vgdisplay |
4 | 创建逻辑卷 (LV) | sudo lvcreate -n mylv -l 100%FREE myvg | -n mylv (LV名), -l 100%FREE (用光空间) | sudo lvdisplay |
5 | 格式化 LV | sudo mkfs -t ext4 /dev/myvg/mylv | ext4 /xfs /btrfs (文件系统类型) | sudo blkid |
6 | 创建挂载点 | sudo mkdir /data | /data (自定义挂载路径) | |
临时挂载 & 测试 | sudo mount /dev/myvg/mylv /data | df -hT , lsblk | ||
永久挂载 (fstab) | 编辑 /etc/fstab | 添加行:UUID=... /data ext4 defaults 0 2 | sudo mount -a | |
7 | 设置权限 (可选) | sudo chown , sudo chmod | 让普通用户可读写 | ls -ld /data |
核心要点:
-
PV -> VG -> LV: 理解 LVM 的三层结构是核心。
-
100%FREE
: 创建 LV 时常用此选项利用全部 VG 空间。 -
UUID in fstab: 在
/etc/fstab
中务必使用 UUID 来标识 LV,确保挂载可靠性。 -
mount -a
: 修改/etc/fstab
后必须执行此命令测试,无错误才重启。 -
确认设备名:
/dev/sdX
必须是你新添加的、目标硬盘,操作前反复用lsblk
确认!
以上内容均来自互联网或ai生成只作为学习参考,有任何侵权行为请联系删除