在Linux系统中,磁盘管理和分区是系统维护的重要组成部分。通过合理的磁盘管理和分区,可以提高系统的性能,确保数据的安全性,并有效利用存储资源。本文将详细介绍如何使用fdisk
、pvcreate
、vgextend
、lvextend
等一系列命令来进行磁盘分区和扩展的操作。
一、磁盘分区管理工具 fdisk
fdisk
是一个用于对硬盘进行分区管理的命令行工具。它允许用户对硬盘进行分区、删除分区、查看分区信息等操作。以下是一些常用的fdisk
命令:
列出当前硬盘分区信息:
fdisk -l
进入fdisk
交互模式:
sudo fdisk /dev/sda
进入
fdisk
交互模式后,可以使用以下命令:p
:显示当前硬盘分区表信息。n
:创建一个新的分区。d
:删除一个分区。w
:保存更改并退出。q
:不保存更改直接退出。
二、创建和管理逻辑卷
在进行逻辑卷管理之前,需要先初始化硬盘分区作为物理卷(Physical Volume),然后创建卷组(Volume Group),最后创建逻辑卷(Logical Volume)。
初始化物理卷:
sudo pvcreate /dev/sda4
创建卷组(假设名为rl
):
sudo vgcreate rl /dev/sda4
创建逻辑卷(假设名为root
,大小为50GB):
sudo lvcreate -L 50G -n root rl
扩展逻辑卷(假设要增加49.99GB空间):
sudo lvextend -L +49.99G /dev/mapper/rl-root
调整文件系统大小:
sudo xfs_growfs /dev/mapper/rl-root
三、磁盘分区的增减操作
在需要增加或减少磁盘分区容量时,通常涉及卸载挂载点、删除旧分区、重新创建分区、重新创建文件系统等步骤。
卸载挂载点:
sudo umount /home
删除旧分区:
sudo lvremove /dev/mapper/rl-home
重新创建分区:
- 使用
fdisk
重新创建分区表。 - 使用
pvcreate
初始化分区。 - 使用
vgextend
扩展卷组。 - 使用
lvcreate
创建新的逻辑卷。 - 使用
xfs_growfs
调整文件系统大小。
- 使用
四、磁盘初始化操作以及脚本的创建
使用
fdisk
进行分区 首先,使用fdisk
对/dev/vdb
进行分区:sudo fdisk /dev/vdb
在
fdisk
交互模式下,您可以执行以下操作:- 输入
n
创建新分区。 - 输入
p
创建主分区。 - 按提示设置分区大小(默认全部可用空间)。
- 输入
w
保存分区表并退出。
- 输入
创建物理卷(Physical Volume) 使用
pvcreate
命令将分区/dev/vdb1
初始化为物理卷:sudo pvcreate /dev/vdb1
创建卷组(Volume Group) 使用 vgcreate
命令创建卷组 klas
并添加物理卷 /dev/vdb1
:
sudo vgcreate klas /dev/vdb1
创建逻辑卷(Logical Volume) 使用 lvcreate
命令创建逻辑卷 data
,并分配整个卷组的空间:
sudo lvcreate -l +100%VG -n data klas
格式化逻辑卷 使用 mkfs.ext4
命令将逻辑卷 /dev/mapper/klas-data
格式化为 ext4
文件系统:
sudo mkfs.ext4 /dev/mapper/klas-data
创建挂载点 创建挂载点 /u01
:
sudo mkdir /u01
挂载逻辑卷 将逻辑卷挂载到 /u01
目录:
sudo mount /dev/mapper/klas-data /u01
设置权限 设置 /u01
目录的权限:
sudo chmod 777 /u01
更新 /etc/fstab
最后,将逻辑卷挂载信息添加到 /etc/fstab
文件中,以便系统启动时自动挂载:
echo "/dev/mapper/klas-data /u01 ext4 defaults 0 0" | sudo tee -a /etc/fstab
完整脚本
#!/bin/bash
# 使用fdisk进行分区
sudo fdisk /dev/vdb <<EOF
n
p
1
w
EOF
# 创建物理卷
sudo pvcreate /dev/vdb1
# 创建卷组
sudo vgcreate klas /dev/vdb1
# 创建逻辑卷
sudo lvcreate -l +100%VG -n data klas
# 格式化逻辑卷
sudo mkfs.ext4 /dev/mapper/klas-data
# 创建挂载点
sudo mkdir /u01
# 挂载逻辑卷
sudo mount /dev/mapper/klas-data /u01
# 设置权限
sudo chmod 777 /u01
# 更新/etc/fstab
echo "/dev/mapper/klas-data /u01 ext4 defaults 0 0" | sudo tee -a /etc/fstab