Linux命令-分区管理
parted - 高级分区工具
Linux 高级分区工具(支持 GPT/MBR)parted 是 GNU 开发的交互式分区工具,相比 fdisk 主要优势:
- 原生支持 GPT 分区表(适用于 2TB+ 大磁盘)
- 可无损调整分区大小(需文件系统支持)
- 支持更多高级功能(分区对齐、文件系统操作等)
语法格式
parted [选项] <磁盘设备> [命令]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-l | 列出所有块设备的分区信息 | parted -l |
-s | 脚本模式(不提示用户确认) | parted -s /dev/sdb mklabel gpt |
-a 对齐 | 设置分区对齐方式(min/opt) | parted -a optimal /dev/sdc |
-f | 强制操作(跳过部分安全检查) | parted -f /dev/sdd |
交互模式常用命令
parted /dev/sdX
| 命令 | 描述 | 示例 |
|---|---|---|
mklabel 类型 | 创建新的分区表(gpt/msdos) | (parted) mklabel gpt |
mkpart 类型 [fs] 起点 终点 | 创建新分区 | (parted) mkpart primary ext4 1MiB 5GiB |
rm 分区号 | 删除分区 | (parted) rm 2 |
resizepart 分区号 终点 | 调整分区大小 | (parted) resizepart 1 10GiB |
print | 显示分区表 | (parted) print |
set 分区号 标志 状态 | 设置分区标志 | (parted) set 1 boot on |
unit 单位 | 设置显示单位(s/MiB/GiB 等) | (parted) unit GiB |
align-check 类型 分区号 | 检查分区对齐 | (parted) align-check optimal 1 |
mkswap - 设置Linux交换分区/文件
mkswap 命令用于将磁盘分区或文件初始化为Linux交换空间(swap area),这是虚拟内存系统的重要组成部分。
语法格式
mkswap [选项] 设备/文件 [大小]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-c | 在创建交换空间前检查坏块 | mkswap -c /dev/sdb1 |
-f | 强制创建交换空间(即使设备已格式化) | mkswap -f /swapfile |
-p 页大小 | 指定交换空间的页大小(单位:字节) | mkswap -p 4096 /dev/sdc1 |
-L 标签 | 为交换空间设置标签 | mkswap -L swap1 /dev/sdd1 |
-U UUID | 为交换空间设置指定的 UUID | mkswap -U 123e4567-e89b-12d3-a456-426614174000 /dev/sde1 |
-v | 显示详细输出 | mkswap -v /swapfile |
经典案例
# 在分区 /dev/sdb1 上创建交换空间
mkswap /dev/sdb1
# 创建交换文件(需先分配空间)
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
# 启用交换空间
swapon /swapfile
# 检查交换空间是否生效
free -h
# 永久挂载交换空间(编辑 /etc/fstab)
echo '/swapfile none swap sw 0 0' >> /etc/fstab启用交换空间
创建后需要使用swapon激活
swapon /dev/sdb2 # 或 swapon /swapfile注意事项
- 交换分区/文件创建后需要
swapon才能生效 - 交换文件大小建议为物理内存的1-2倍
- 生产环境建议使用专用交换分区而非文件
- 使用
free -h或swapon --show验证交换空间状态 - 永久生效需在
/etc/fstab中添加条目:
/swapfile none swap sw 0 0相关命令
swapon- 启用交换空间swapoff- 禁用交换空间dd- 创建交换文件fdisk- 创建交换分区
swapon - 激活交换空间
swapon 是 Linux 系统中用于激活交换空间(swap space)的命令,将指定的设备或文件作为虚拟内存使用。通常用于系统内存不足时扩展可用内存。
语法格式
swapon [选项] [设备/文件]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-a | 启用 /etc/fstab 中所有标记为 swap 的设备 | swapon -a |
-d | 显示详细信息(调试模式) | swapon -d /swapfile |
-e | 静默模式(不显示错误信息) | swapon -e /dev/sdb1 |
-f | 强制启用(即使设备未标记为交换空间) | swapon -f /swapfile |
-p 优先级 | 设置交换空间的优先级(数值越高优先级越高) | swapon -p 100 /dev/sdc1 |
-s | 显示当前启用的交换空间摘要 | swapon -s |
-v | 显示详细输出 | swapon -v /swapfile |
经典案例
# 启用交换分区 /dev/sdb1
swapon /dev/sdb1
# 启用交换文件 /swapfile
swapon /swapfile
# 启用所有在 /etc/fstab 中定义的交换设备
swapon -a
# 设置交换分区的优先级(数值越高越优先使用)
swapon -p 100 /dev/sdc1
# 显示当前启用的交换空间
swapon -s注意事项
需要 root 权限执行
交换文件/分区需先通过
mkswap初始化永久生效需在
/etc/fstab添加配置:/swapfile none swap sw 0 0使用
swapoff命令可停用交换空间生产环境建议交换空间大小为物理内存的1-2倍
swapoff - 停止交换空间
swapoff 是 Linux 系统中用于 停用交换空间(swap space) 的命令,可以释放交换分区或交换文件占用的资源。通常在调整交换空间或维护系统时使用。
语法格式
swapoff [选项] [设备/文件]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-a | 禁用 /etc/fstab 中所有标记为 swap 的设备 | swapoff -a |
-v | 显示详细输出 | swapoff -v /swapfile |
-h | 显示帮助信息 | swapoff -h |
-V | 显示版本信息 | swapoff -V |
经典案例
# 禁用交换分区 /dev/sdb1
swapoff /dev/sdb1
# 禁用交换文件 /swapfile
swapoff /swapfile
# 禁用所有在 /etc/fstab 中定义的交换设备
swapoff -a
# 显示详细禁用过程
swapoff -v /swapfile注意事项
- 需要 root 权限(使用
sudo执行)。 - 确保系统有足够的内存,否则停用交换空间可能导致 OOM(内存不足)错误。
- 永久停用交换空间 需要修改
/etc/fstab,删除或注释掉对应的swap行。 - 重新启用交换空间 可使用
swapon命令。
pvcreate - 创建物理卷
pvcreate 是 Linux LVM(Logical Volume Manager,逻辑卷管理)工具的一部分,用于 初始化物理卷(Physical Volume, PV),使其可以被 LVM 管理。通常用于将磁盘或分区转换为 LVM 可识别的存储单元
语法格式
pvcreate [选项] 物理设备 [物理设备2...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-f | 强制创建,不提示确认 | pvcreate -f /dev/sdb |
-u UUID | 指定物理卷的 UUID | pvcreate -u 12345678-1234-5678-1234-567890abcdef /dev/sdb |
-y | 对所有问题回答 "yes" | pvcreate -y /dev/sdb |
-Z | 不擦除设备上的现有数据 | pvcreate -Z /dev/sdb |
--metadatatype | 指定元数据类型 | pvcreate --metadatatype lvm2 /dev/sdb |
--dataalignment | 设置数据对齐 | pvcreate --dataalignment 1m /dev/sdb |
--labelsector | 指定标签扇区 | pvcreate --labelsector 1 /dev/sdb |
经典案例
# 将/dev/sdb初始化为物理卷
pvcreate /dev/sdb
# 强制初始化/dev/sdc(不提示确认)
pvcreate -f /dev/sdc
# 初始化多个设备
pvcreate /dev/sdd /dev/sde
# 创建物理卷后验证
pvdisplay
# 将物理卷添加到卷组
vgcreate myvg /dev/sdb注意事项
- 需要 root 权限(使用
sudo执行)。 - 设备必须未被挂载,否则会报错。
- 数据会被擦除,初始化前请确保设备无重要数据。
- 后续操作:
- 使用
vgcreate创建卷组(VG) - 使用
lvcreate创建逻辑卷(LV)
- 使用
- 撤销操作:
- 使用
pvremove移除物理卷
- 使用
pvmove - 迁移物理卷上的数据
pvmove 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 将数据从一个物理卷(PV)迁移到另一个物理卷。通常在以下场景使用:
更换硬盘(将旧硬盘数据迁移到新硬盘)
维护存储(移除某个物理卷前迁移数据)
负载均衡(优化存储分布)
语法格式
pvmove [选项] [源物理卷] [目标物理卷]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-i | 交互模式,操作前确认 | pvmove -i /dev/sdb1 |
-n | 仅移动指定逻辑卷 | pvmove -n lv_data /dev/sdb1 |
-b | 后台运行 | pvmove -b /dev/sdb1 |
--alloc contiguous | 分配连续空间 | pvmove --alloc contiguous /dev/sdb1 |
--atomic | 原子操作(要么全部成功,要么全部失败) | pvmove --atomic /dev/sdb1 |
--noudevsync | 跳过 udev 同步 | pvmove --noudevsync /dev/sdb1 |
--verbose | 显示详细输出 | pvmove --verbose /dev/sdb1 |
经典案例
# 将/dev/sdb1上的所有数据迁移到卷组中的其他物理卷
pvmove /dev/sdb1
# 将/dev/sdb1上的数据迁移到指定的/dev/sdc1
pvmove /dev/sdb1 /dev/sdc1
# 仅移动名为lv_data的逻辑卷
pvmove -n lv_data /dev/sdb1
# 在后台运行迁移
pvmove -b /dev/sdb1
# 交互式迁移
pvmove -i /dev/sdb1
# 取消正在进行的迁移
pvmove --abort注意事项
- 卷组要求:源和目标物理卷必须在同一卷组中
- 空间要求:目标物理卷必须有足够的空间
- 性能影响:大数据量迁移可能影响系统性能
- 中断恢复:迁移过程可以中断,之后可以继续
- 监控进度:使用
lvs -o+devices或pvdisplay -m查看进度 - 权限要求:需要 root 权限执行
pvremove - 移除物理卷
从物理卷(Physical Volume, PV)中删除 LVM(Logical Volume Manager)元数据,使其不再被 LVM 识别和管理。
语法格式
pvremove [选项] 物理卷 [物理卷2 ...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-f | 强制移除,不提示确认 | pvremove -f /dev/sdb1 |
-ff | 双重强制,即使设备被使用也强制移除 | pvremove -ff /dev/sdb1 |
-y | 对所有问题回答 "yes" | pvremove -y /dev/sdb1 |
--debug | 显示调试信息 | pvremove --debug /dev/sdb1 |
--verbose | 显示详细输出 | pvremove --verbose /dev/sdb1 |
典型用法
# 移除单个物理卷 /dev/sdb1 的 LVM 属性
pvremove /dev/sdb1
# 强制移除 /dev/sdc1(不提示确认)
pvremove -f /dev/sdc1
# 移除多个设备的 LVM 属性
pvremove /dev/sdd1 /dev/sde1
# 双重强制移除(即使设备正在使用)
pvremove -ff /dev/sdf1注意事项
- 数据安全:
pvremove仅移除 LVM 元数据,不会擦除设备上的实际数据。- 使用
-ff选项时需谨慎,因为它可能破坏正在使用的设备。
- 设备状态:
- 确保设备未被任何卷组(VG)或逻辑卷(LV)使用。
- 如果设备仍在使用中,先使用
vgreduce或pvmove移除设备。
- 权限要求:
- 需要 root 权限执行。
- 恢复:
- 移除后如需重新使用该设备为物理卷,需重新运行
pvcreate。
- 移除后如需重新使用该设备为物理卷,需重新运行
pvdisplay(pvs) - 查看物理卷信息
pvdisplay 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 显示物理卷(PV)的详细信息,包括空间使用情况、所属卷组(VG)、UUID 等。
语法格式
pvdisplay [选项] [物理卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-c | 以紧凑格式输出(便于脚本处理) | pvdisplay -c /dev/sdb1 |
-m | 显示物理卷的物理区域(PE)映射 | pvdisplay -m /dev/sdb1 |
-s | 以短格式输出(仅显示摘要信息) | pvdisplay -s /dev/sdb1 |
-v | 显示详细信息(包括底层设备信息) | pvdisplay -v /dev/sdb1 |
--all | 显示所有物理卷(包括未使用的) | pvdisplay --all |
--colon | 以冒号分隔的格式输出(适合解析) | pvdisplay --colon /dev/sdb1 |
经典案例
# 显示所有物理卷的详细信息
pvdisplay
# 显示特定物理卷(如 /dev/sdb1)的详细信息
pvdisplay /dev/sdb1
# 以紧凑格式显示物理卷信息(适合脚本处理)
pvdisplay -c /dev/sdb1
# 显示物理卷的物理区域(PE)映射
pvdisplay -m /dev/sdb1
# 以短格式显示物理卷摘要
pvdisplay -s /dev/sdb1关键信息解读
--- Physical volume ---
PV Name /dev/sdb1 # 物理卷设备路径
VG Name vg_data # 所属卷组
PV Size 100.00 GiB # 总容量
PE Size 4.00 MiB # 物理扩展(PE)大小
Total PE 25599 # PE总数
Free PE 1024 # 剩余PE数
Allocated PE 24575 # 已分配PE数
PV UUID abc123-xyz-456 # 唯一标识符注意事项
- 需要 root 权限(普通用户可查看部分信息,但细节需
sudo) - 物理卷必须已初始化(通过
pvcreate)才会显示 - 相关命令对比:
pvs:简要列表(类似ls)pvdisplay:详细信息(类似ls -l)
vgcreate - 创建卷组
vgcreate 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 创建卷组(Volume Group, VG)。卷组由一个或多个物理卷(PV)组成,用于管理存储池,以便后续创建逻辑卷(LV)
语法格式
vgcreate [选项] <卷组名> <物理卷路径> [物理卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-s | 指定物理区域(PE)的大小(默认 4MB) | vgcreate -s 8M vg_data /dev/sdb1 |
--physicalextentsize | 同 -s,指定 PE 大小 | vgcreate --physicalextentsize 16M vg_data /dev/sdb1 |
-l | 设置卷组的最大逻辑卷数量 | vgcreate -l 100 vg_data /dev/sdb1 |
-p | 设置卷组的最大物理卷数量 | vgcreate -p 10 vg_data /dev/sdb1 |
--addtag | 为卷组添加标签 | vgcreate --addtag backup vg_data /dev/sdb1 |
--alloc | 设置分配策略(normal/contiguous/cling/anywhere) | vgcreate --alloc contiguous vg_data /dev/sdb1 |
--verbose | 显示详细输出 | vgcreate --verbose vg_data /dev/sdb1 |
经典案例
# 创建一个名为 vg_data 的卷组,使用 /dev/sdb1 作为物理卷
vgcreate vg_data /dev/sdb1
# 创建卷组时指定 PE 大小为 8MB
vgcreate -s 8M vg_data /dev/sdb1
# 创建卷组并设置最大逻辑卷数量为 50
vgcreate -l 50 vg_data /dev/sdb1 /dev/sdc1
# 创建卷组并添加标签
vgcreate --addtag ssd vg_ssd /dev/nvme0n1p1
# 使用多个物理卷创建卷组
vgcreate vg_storage /dev/sdb1 /dev/sdc1 /dev/sdd1注意事项
- 物理卷准备:
- 在创建卷组之前,必须先用
pvcreate初始化物理卷。
- 在创建卷组之前,必须先用
- PE 大小:
- PE 大小决定了逻辑卷的最小分配单位,创建后不可更改。
- 卷组名称:
- 卷组名称在系统中必须唯一。
- 权限要求:
- 需要 root 权限执行。
- 扩展性:
- 卷组可以动态扩展(通过
vgextend),但某些属性(如 PE 大小)创建后不可修改。
- 卷组可以动态扩展(通过
vgextend - 扩展卷组
vgextend 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 扩展卷组(Volume Group, VG),使其包含更多的物理卷(PV)。常用于动态扩容存储池。
语法格式
vgextend [选项] <卷组名> <物理卷路径> [物理卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-v 或 --verbose | 显示详细操作信息 | vgextend -v vg_data /dev/sdc1 |
-f 或 --force | 强制添加物理卷(即使设备已初始化) | vgextend -f vg_data /dev/sdc1 |
--alloc | 设置分配策略(normal/contiguous/cling/anywhere) | vgextend --alloc contiguous vg_data /dev/sdc1 |
--test | 仅测试操作,不实际执行 | vgextend --test vg_data /dev/sdc1 |
--restoremissing | 恢复丢失的物理卷 | vgextend --restoremissing vg_data /dev/sdc1 |
经典案例
# 将物理卷 /dev/sdc1 添加到卷组 vg_data 中
vgextend vg_data /dev/sdc1
# 强制添加物理卷(即使设备已初始化)
vgextend -f vg_data /dev/sdc1
# 添加多个物理卷到卷组
vgextend vg_data /dev/sdc1 /dev/sdd1
# 显示详细操作信息
vgextend -v vg_data /dev/sdc1
# 测试操作(不实际执行)
vgextend --test vg_data /dev/sdc1注意事项
- 物理卷初始化:
- 在扩展卷组之前,必须先用
pvcreate初始化新的物理卷。
- 在扩展卷组之前,必须先用
- 卷组状态:
- 确保卷组未被锁定或处于活动状态。
- 数据安全:
- 扩展卷组不会影响现有逻辑卷的数据。
- 权限要求:
- 需要 root 权限执行。
- 恢复丢失的物理卷:
- 如果物理卷丢失但卷组仍标记为 “部分丢失”,可以使用
--restoremissing选项尝试恢复。
- 如果物理卷丢失但卷组仍标记为 “部分丢失”,可以使用
vgreduce - 从卷组移除物理卷
vgreduce 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 从卷组(Volume Group, VG)中移除物理卷(PV),从而缩减卷组的存储容量。通常用于维护或替换存储设备。
语法格式
vgreduce [选项] <卷组名> <物理卷路径> [物理卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-a 或 --all | 移除所有未使用的物理卷 | vgreduce -a vg_data |
--removemissing | 移除所有丢失的物理卷 | vgreduce --removemissing vg_data |
-v 或 --verbose | 显示详细操作信息 | vgreduce -v vg_data /dev/sdc1 |
--force | 强制移除(即使数据可能丢失) | vgreduce --force vg_data /dev/sdc1 |
--test | 仅测试操作,不实际执行 | vgreduce --test vg_data /dev/sdc1 |
经典案例
# 从卷组 vg_data 中移除物理卷 /dev/sdc1
vgreduce vg_data /dev/sdc1
# 移除所有未使用的物理卷
vgreduce -a vg_data
# 强制移除物理卷(即使数据可能丢失)
vgreduce --force vg_data /dev/sdc1
# 移除所有丢失的物理卷
vgreduce --removemissing vg_data
# 显示详细操作信息
vgreduce -v vg_data /dev/sdc1注意事项
- 需要 root 权限(使用
sudo执行)。 - 物理卷必须未被逻辑卷使用,否则需先迁移数据(
pvmove)。 - 移除后物理卷仍保留 LVM 元数据,需手动清除(
pvremove)。 - 数据安全:
- 确保目标物理卷无活跃数据,否则可能导致数据丢失。
- 生产环境建议先备份 LVM 元数据(
vgcfgbackup)
vgdisplay(vgs) - 查看卷组信息
vgdisplay 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 显示卷组(Volume Group, VG)的详细信息,包括空间分配、物理卷(PV)组成、逻辑卷(LV)数量等。
语法格式
vgdisplay [选项] [卷组名]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-v 或 --verbose | 显示更详细的信息(包括物理卷和逻辑卷的详细信息) | vgdisplay -v vg_data |
-s 或 --short | 以简短格式显示信息 | vgdisplay -s vg_data |
-C 或 --colon | 以冒号分隔的格式输出(适合脚本处理) | vgdisplay -C vg_data |
--units | 指定显示单位(b/B/s/S/k/K/m/M/g/G/t/T/p/P/e/E) | vgdisplay --units g vg_data |
--activevolumegroups | 仅显示活动的卷组 | vgdisplay --activevolumegroups |
经典案例
# 显示所有卷组的详细信息
vgdisplay
# 显示特定卷组(vg_data)的详细信息
vgdisplay vg_data
# 以简短格式显示卷组信息
vgdisplay -s vg_data
# 显示详细信息和物理卷、逻辑卷的详细信息
vgdisplay -v vg_data
# 以 GB 为单位显示卷组大小
vgdisplay --units g vg_data
# 仅显示活动的卷组
vgdisplay --activevolumegroups关键信息解读
--- Volume group ---
VG Name vg_data # 卷组名称
System ID
Format lvm2 # LVM版本
VG Size 100.00 GiB # 总容量
PE Size 4.00 MiB # 物理扩展(PE)大小
Total PE 25599 # PE总数
Alloc PE / Size 24575 / 96.00 GiB # 已分配空间
Free PE / Size 1024 / 4.00 GiB # 剩余空间
VG UUID xyz789-abc-123 # 唯一标识符注意事项
- 需要 root 权限(普通用户可查看部分信息,但细节需
sudo) - 相关命令对比:
vgs:简要列表(类似ls)vgdisplay:详细信息(类似ls -l)
- 重要指标:
Free PE/Size:决定能否创建/扩展逻辑卷PV#:当前卷组包含的物理卷数量
vgremove - 删除卷组
vgremove 是 LVM (Logical Volume Manager) 工具集中的命令,用于从系统中删除指定的卷组(Volume Group)。该操作会永久移除卷组及其元数据,但不会影响物理卷(PV)上的实际数据。
语法格式
vgremove [选项] <卷组名> [卷组名...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-f 或 --force | 强制删除卷组(不提示确认) | vgremove -f vg_old |
--test | 仅测试操作,不实际执行 | vgremove --test vg_old |
-v 或 --verbose | 显示详细操作信息 | vgremove -v vg_old |
经典案例
# 删除名为 vg_old 的卷组(会提示确认)
vgremove vg_old
# 强制删除卷组(不提示确认)
vgremove -f vg_old
# 删除多个卷组
vgremove vg_old1 vg_old2
# 显示详细操作信息
vgremove -v vg_old
# 测试删除操作(不实际执行)
vgremove --test vg_old注意事项
- 数据安全:
- 删除卷组会同时删除其包含的所有逻辑卷,但不会清除物理卷上的数据。如果需要完全清除物理卷,需手动使用
pvremove。 - 确保卷组中没有重要数据,或已提前备份。
- 删除卷组会同时删除其包含的所有逻辑卷,但不会清除物理卷上的数据。如果需要完全清除物理卷,需手动使用
- 依赖关系:
- 如果卷组中的逻辑卷正在被使用(如挂载或作为交换分区),必须先卸载或停用。
- 权限要求:
- 需要 root 权限执行。
- 强制删除:
-f选项会跳过确认提示,慎用!
- 测试模式:
- 使用
--test选项可以预览操作效果而不实际执行。
- 使用
lvcreate - 创建逻辑卷(lv)
lvcreate 是 Linux LVM(Logical Volume Manager)的核心命令,用于 在卷组(VG)中创建逻辑卷(LV)。逻辑卷是最终可格式化和挂载的存储单元,提供比物理磁盘更灵活的存储管理方式。
语法格式
lvcreate [选项] -n <逻辑卷名> -L <大小> <卷组名>选项
| 选项 | 描述 | 示例 |
|---|---|---|
-L 或 --size | 指定逻辑卷大小(支持单位:K/M/G/T) | lvcreate -L 10G -n lv_data vg_data |
-l 或 --extents | 指定逻辑卷大小(以 PE 数量为单位) | lvcreate -l 100%FREE -n lv_data vg_data |
-n 或 --name | 指定逻辑卷名称 | lvcreate -n lv_data -L 5G vg_data |
-s 或 --snapshot | 创建快照卷 | lvcreate -s -L 2G -n snap_data /dev/vg_data/lv_data |
--type | 指定逻辑卷类型(linear/striped/raid 等) | lvcreate --type raid1 -L 10G -n lv_mirror vg_data |
-i 或 --stripes | 指定条带数量(用于条带化卷) | lvcreate -i 2 -L 20G -n lv_stripe vg_data |
-I 或 --stripesize | 指定条带大小(KB) | lvcreate -i 2 -I 64 -L 20G -n lv_stripe vg_data |
--thin | 创建精简配置卷 | lvcreate --thin -V 50G -n lv_thin vg_data/thinpool |
-V 或 --virtualsize | 指定精简卷的虚拟大小 | lvcreate -V 100G -n lv_thin vg_data/thinpool |
经典案例
lvcreate -L 20G -n lv_data vg_storage # 创建固定大小的逻辑卷
lvcreate -l 100%FREE -n lv_backup vg_storage # 使用剩余全部空间创建逻辑卷
# 创建精简配置的逻辑卷(动态分配空间)(需先创建 thin pool,适用于虚拟化/云存储)
lvcreate --type thin -V 50G -n lv_thin vg_storage/thin_pool
# 创建快照卷(用于备份)(为 lv_data 创建 5GB 的快照)
lvcreate -s -L 5G -n lv_snap /dev/vg_storage/lv_data
# 创建条带化逻辑卷(提高性能)(-i 2 表示跨 2 块磁盘条带化,适合 SSD 阵列)
lvcreate --type striped -i 2 -L 10G -n lv_fast vg_ssd
# 创建10GB的逻辑卷
lvcreate -L 10G -n lv_data vg_data
# 使用卷组所有剩余空间创建逻辑卷
lvcreate -l 100%FREE -n lv_rest vg_data
# 创建条带化逻辑卷(2个条带,条带大小64KB)
lvcreate -i 2 -I 64 -L 20G -n lv_stripe vg_data
# 创建RAID1镜像卷
lvcreate --type raid1 -m 1 -L 10G -n lv_mirror vg_data
# 创建精简配置卷
lvcreate -V 100G --thin -n lv_thin vg_data/thinpool
# 创建快照卷
lvcreate -s -L 2G -n snap_data /dev/vg_data/lv_data注意事项
需要 root 权限(使用
sudo执行)。卷组必须有足够空间,否则创建失败。
创建后需格式化才能使用:
bashmkfs.ext4 /dev/vg_storage/lv_data挂载逻辑卷:
bashmount /dev/vg_storage/lv_data /mnt/data永久挂载需在
/etc/fstab添加条目。
警告:
- 逻辑卷删除后数据不可恢复,操作前请确认!
- 生产环境建议先测试快照功能确保备份有效。
lvremove - 删除逻辑卷
lvremove 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 删除逻辑卷(Logical Volume, LV),释放其占用的存储空间。适用于清理不再需要的逻辑卷或重新规划存储结构。
语法格式
lvremove [选项] <逻辑卷路径> [逻辑卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-f 或 --force | 强制删除(跳过确认提示) | lvremove -f /dev/vg_data/lv_old |
--test | 仅测试操作,不实际执行 | lvremove --test /dev/vg_data/lv_old |
-v 或 --verbose | 显示详细操作信息 | lvremove -v /dev/vg_data/lv_old |
-y | 对所有确认提示回答 "yes" | lvremove -y /dev/vg_data/lv_old |
经典案例
# 删除单个逻辑卷(删除 vg_data 卷组中的 lv_old 逻辑卷)
lvremove /dev/vg_data/lv_old
# 强制删除(不提示确认)(适用于脚本自动化操作)
lvremove -f /dev/vg_storage/lv_temp
# 删除多个逻辑卷(批量删除多个逻辑卷)
lvremove /dev/vg_app/lv_logs /dev/vg_app/lv_cache
# 删除所有空闲逻辑卷(清理未激活的逻辑卷)
lvremove --select 'lv_active=0'注意事项
需要 root 权限(使用
sudo执行)。数据不可恢复:删除前请确认逻辑卷无重要数据。
逻辑卷必须未挂载:
bashumount /dev/vg_data/lv_old # 先卸载 lvremove /dev/vg_data/lv_old快照卷依赖:若逻辑卷有快照,需先删除快照。
生产环境建议:
- 提前备份数据
- 在业务低峰期操作
lvextend - 扩容逻辑卷
lvextend 是 Linux LVM(Logical Volume Manager)的核心命令,用于 动态扩展逻辑卷(LV)的容量。它允许在不中断服务的情况下增加存储空间,是 LVM 最强大的特性之一。
语法格式
lvextend [选项] <逻辑卷路径> [大小]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-L 或 --size | 指定扩展后的逻辑卷大小(支持单位:K/M/G/T) | lvextend -L +5G /dev/vg_data/lv_data |
-l 或 --extents | 指定扩展的逻辑卷大小(以 PE 数量为单位) | lvextend -l +100%FREE /dev/vg_data/lv_data |
-r 或 --resizefs | 同时调整文件系统大小(支持 ext2/3/4, XFS 等) | lvextend -r -L +5G /dev/vg_data/lv_data |
--test | 仅测试操作,不实际执行 | lvextend --test -L +5G /dev/vg_data/lv_data |
-v 或 --verbose | 显示详细操作信息 | lvextend -v -L +5G /dev/vg_data/lv_data |
-f | 强制扩展,不提示 | lvextend -f +5G /dev/vg_data/lv_data |
经典案例
# 扩展逻辑卷并自动调整文件系统(推荐)(增加 5GB 空间并自动扩展 ext4/xfs 文件系统)
lvextend -r -L +5G /dev/vg_data/lv_files
# 使用全部剩余空间扩展逻辑卷(最大化利用卷组剩余空间)
lvextend -l +100%FREE /dev/vg_storage/lv_archive
# 指定扩展后的总大小(而非增量)(将逻辑卷扩展到 精确的 30GB)
lvextend -L 30G /dev/vg_app/lv_database
# 扩展后手动调整文件系统(适用于旧系统)
sudo lvextend -L +8G /dev/vg_logs/lv_nginx # 先扩展LV
sudo resize2fs /dev/vg_logs/lv_nginx # 调整ext4
# 或对于XFS:
sudo xfs_growfs /mnt/nginx_logs
# 扩展逻辑卷并增加5GB空间
lvextend -L +5G /dev/vg_data/lv_data
# 使用卷组所有剩余空间扩展逻辑卷
lvextend -l +100%FREE /dev/vg_data/lv_data
# 扩展逻辑卷并自动调整文件系统大小(适用于 ext4/XFS)
lvextend -r -L +5G /dev/vg_data/lv_data
# 测试扩展操作(不实际执行)
lvextend --test -L +5G /dev/vg_data/lv_data
# 显示详细操作信息
lvextend -v -L +5G /dev/vg_data/lv_data注意事项
- 卷组可用空间:
- 确保卷组(Volume Group)有足够的可用空间(使用
vgdisplay或vgs检查)。
- 确保卷组(Volume Group)有足够的可用空间(使用
- 文件系统调整:
- 如果逻辑卷包含文件系统,建议使用
-r选项自动调整文件系统大小。 - 对于不支持在线调整的文件系统(如某些旧版 ext2),可能需要先卸载。
- 如果逻辑卷包含文件系统,建议使用
- 快照卷限制:
- 不能直接扩展快照卷(Snapshot Volume),需先删除快照。
- 在线扩展:
- 大多数现代文件系统(如 ext4、XFS)支持在线扩展,无需卸载。
- 备份数据:
- 虽然
lvextend是安全的,但操作前仍建议备份重要数据。
- 虽然
lvresize - 动态调整逻辑卷大小
lvresize 是 Linux LVM(Logical Volume Manager)的核心命令,用于 动态调整逻辑卷(LV)的容量,支持 扩展 和 收缩 操作。相比 lvextend 和 lvreduce,它提供了更统一的调整方式。
语法格式
lvresize [选项] <逻辑卷路径> [大小]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-L 或 --size | 指定调整后的逻辑卷大小(支持单位:K/M/G/T) | lvresize -L 20G /dev/vg_data/lv_data |
-l 或 --extents | 指定调整的逻辑卷大小(以 PE 数量为单位) | lvresize -l +50 /dev/vg_data/lv_data |
-r 或 --resizefs | 同时调整文件系统大小(支持 ext2/3/4, XFS 等) | lvresize -r -L 15G /dev/vg_data/lv_data |
--test | 仅测试操作,不实际执行 | lvresize --test -L 15G /dev/vg_data/lv_data |
-v 或 --verbose | 显示详细操作信息 | lvresize -v -L 15G /dev/vg_data/lv_data |
-f 或 --force | 强制调整(跳过某些检查) | lvresize -f -L 10G /dev/vg_data/lv_data |
经典案例
# 扩展逻辑卷并自动调整文件系统(推荐)(增加 10GB 并自动扩展 ext4/xfs 文件系统)
lvresize -r -L +10G /dev/vg_data/lv_files
# 收缩逻辑卷(需先收缩文件系统)
# 先缩小文件系统(ext4示例):
sudo umount /mnt/data
sudo e2fsck -f /dev/vg_data/lv_files # 强制检查
sudo resize2fs /dev/vg_data/lv_files 15G # 先缩文件系统
sudo lvresize -L 15G /dev/vg_data/lv_files # 再缩LV
sudo mount /dev/vg_data/lv_files /mnt/data
# 使用百分比调整空间(占用卷组 80% 的剩余空间)
lvresize -l +80%FREE -r /dev/vg_storage/lv_media注意事项
- 缩小逻辑卷:
- 缩小逻辑卷前,必须先缩小文件系统,否则可能导致数据丢失。
- 对于 ext2/3/4 文件系统,使用
resize2fs调整大小。 - 对于 XFS 文件系统,XFS 不支持缩小,需备份数据后重新创建。
- 文件系统调整:
- 使用
-r选项可自动调整文件系统大小(仅适用于支持的文件系统)。 - 如果不使用
-r,需手动调整文件系统大小。
- 使用
- 卷组可用空间:
- 扩展逻辑卷时,确保卷组有足够的可用空间(使用
vgdisplay或vgs检查)。
- 扩展逻辑卷时,确保卷组有足够的可用空间(使用
- 数据备份:
- 缩小逻辑卷或调整文件系统时,建议先备份重要数据。
- 快照卷限制:
- 不能直接调整快照卷(Snapshot Volume)的大小。
严重警告:
- 收缩操作不当会导致数据丢失!必须:
- 备份数据
- 确保新尺寸大于已用空间
- 在非生产环境测试
lvdisplay(lvs) - 查看逻辑卷信息
lvdisplay 是 Linux LVM(Logical Volume Manager)工具的一部分,用于 显示逻辑卷(Logical Volume, LV)的详细信息,包括容量、路径、所属卷组(VG)、快照状态等。
语法格式
lvdisplay [选项] [逻辑卷路径...]选项
| 选项 | 描述 | 示例 |
|---|---|---|
-a 或 --all | 显示所有逻辑卷(包括非活动状态) | lvdisplay -a |
-c 或 --colon | 以冒号分隔的格式输出(适合脚本解析) | lvdisplay -c /dev/vg_data/lv_data |
-m 或 --maps | 显示逻辑卷的物理卷映射信息 | lvdisplay -m /dev/vg_data/lv_data |
-v 或 --verbose | 显示更详细的信息 | lvdisplay -v /dev/vg_data/lv_data |
--help | 显示帮助信息 | lvdisplay --help |
经典案例
# 显示所有逻辑卷的详细信息
lvdisplay
# 显示特定逻辑卷的详细信息
lvdisplay /dev/vg_data/lv_data
# 显示所有逻辑卷(包括非活动状态)
lvdisplay -a
# 以冒号分隔的格式输出(适合脚本解析)
lvdisplay -c /dev/vg_data/lv_data
# 显示逻辑卷的物理卷映射信息
lvdisplay -m /dev/vg_data/lv_data关键信息解读
--- Logical volume ---
LV Path /dev/vg_data/lv_files # 逻辑卷设备路径
LV Name lv_files # 逻辑卷名称
VG Name vg_data # 所属卷组
LV UUID xyz123-456-789 # 唯一标识符
LV Write Access read/write # 读写权限
LV Creation host server01 # 创建主机名
LV Status available # 状态(active/inactive)
LV Size 50.00 GiB # 逻辑卷容量
Current LE 12800 # 逻辑扩展块数量
Segments 1 # 数据段数量
Allocation inherit # 分配策略
Read ahead sectors auto # 预读设置
Block device 253:2 # 设备映射标识注意事项
- 需要 root 权限(普通用户可查看部分信息,但细节需
sudo) - 相关命令对比:
lvs:简要列表(类似ls)lvdisplay:详细信息(类似ls -l)
- 重要状态指标:
LV Status:确保为available(若为inactive需先激活)Segments:大于1表示数据跨多个物理卷
