#!/bin/bash
# 函数:显示磁盘和LVM信息
function show_disk_lvm_info() {
echo "==== 当前分区和 LVM 信息 ===="
fdisk -l /dev/vda
vgs
pvs
lvs
echo ""
}
# 函数:扩容磁盘分区 /dev/vda2
function resize_partition() {
# 检查 /dev/vda 的分区数是否为 2
partition_count=$(fdisk -l /dev/vda | grep -c '^/dev/vda')
if [ "$partition_count" -ne 2 ]; then
echo "错误:/dev/vda 上不是只有两个分区,退出脚本。"
exit 1
fi
echo "==== 扩容磁盘分区操作 ===="
echo "正在删除并重新创建 /dev/vda2 分区..."
# 执行 fdisk 操作:删除分区 2 然后创建新的分区
fdisk /dev/vda <<EOF
d
2
n
p
2
409
t
2
8e
w
EOF
echo "分区操作完成,请重启后执行文件系统扩展操作(选项3)。"
exit 0
}
# 函数:扩容文件系统
function extend_filesystem() {
echo "==== 扩容文件系统操作 ===="
# 执行 pvresize, lvextend, resize2fs 命令
echo "1. 调整物理卷大小..."
pvresize /dev/vda2
echo "2. 扩展逻辑卷..."
lvextend -l +100%FREE /dev/VolGroup/LogVol00
echo "3. 调整文件系统大小..."
resize2fs /dev/VolGroup/LogVol00
echo "文件系统扩容完成!"
}
# 主菜单
function main_menu() {
while true; do
clear
echo "=== CentOS 6.8 分区扩容脚本 ==="
echo "1. 查看当前分区和 LVM 信息"
echo "2. 扩容磁盘分区 (/dev/vda2)"
echo "3. 扩容文件系统"
echo "4. 退出"
read -p "请输入选项 (1-4): " choice
case $choice in
1)
show_disk_lvm_info
read -p "按 Enter 键返回菜单..."
;;
2)
resize_partition
;;
3)
extend_filesystem
read -p "按 Enter 键返回菜单..."
;;
4)
echo "退出脚本"
exit 0
;;
*)
echo "无效的选项,请重新选择。"
read -p "按 Enter 键返回菜单..."
;;
esac
done
}
# 启动脚本
main_menu