在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