卑微的大白熊

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用deepseek大模型编写脚本可以减少我们很少的工作量,但是如果我们直接告诉deepseek来实现这个功能,其给出的脚本往往差强人意,因此我们应该给提供具体的思路使得deepseek能够按照我们的想法一步一步达到我么的目标。下面就是我们提供的思路及deepseek给出的脚本内容。

以下步骤的前提是,我们将创建的分区vda3进行挂载到了其他的目录,并在fstab文件中编写了永久挂载的内容,现在我们任然使用vda3来实现对root目录所在的卷进行扩容,首先我们应该修改之前的操作,取消之前在fstab文件最后一行增加的已实现永久挂载的内容,并对vda3取消挂载操作。

  1. 注释 /etc/fstab 文件的最后一行。

  2. 卸载 /dev/vda3

  3. 将 /dev/vda3 创建为物理卷(PV),并将其加入到卷组 klas 中。

  4. 将卷组 klas 中的所有空间分配给逻辑卷 /dev/klas/root

  5. 使用 xfs_growfs 命令扩展 /dev/klas/root 的文件系统。 

以下是deepseek给出的脚本内容:

#!/bin/bash

# 1. 注释 /etc/fstab 文件的最后一行
sed -i '$ s/^/#/' /etc/fstab
echo "已注释 /etc/fstab 文件的最后一行。"

# 2. 卸载 /dev/vda3
umount /dev/vda3
if [ $? -eq 0 ]; then
    echo "已成功卸载 /dev/vda3。"
else
    echo "卸载 /dev/vda3 失败,请检查是否已挂载。"
    exit 1
fi

# 3. 将 /dev/vda3 创建为物理卷(PV),并加入到卷组 klas 中
pvcreate /dev/vda3
if [ $? -eq 0 ]; then
    echo "已成功创建物理卷 /dev/vda3。"
else
    echo "创建物理卷 /dev/vda3 失败。"
    exit 1
fi

vgextend klas /dev/vda3
if [ $? -eq 0 ]; then
    echo "已成功将 /dev/vda3 加入到卷组 klas 中。"
else
    echo "将 /dev/vda3 加入到卷组 klas 失败。"
    exit 1
fi

# 4. 将卷组 klas 中的所有空间分配给逻辑卷 /dev/klas/root
lvextend -l +100%FREE /dev/klas/root
if [ $? -eq 0 ]; then
    echo "已成功将卷组 klas 中的所有空间分配给逻辑卷 /dev/klas/root。"
else
    echo "扩展逻辑卷 /dev/klas/root 失败。"
    exit 1
fi

# 5. 使用 xfs_growfs 扩展 /dev/klas/root 的文件系统
xfs_growfs /dev/klas/root
if [ $? -eq 0 ]; then
    echo "已成功扩展 /dev/klas/root 的文件系统。"
else
    echo "扩展 /dev/klas/root 文件系统失败。"
    exit 1
fi

echo "所有操作已完成!"

说明

  1. 注释 /etc/fstab 的最后一行

    • 使用 sed 命令将最后一行开头加上 # 注释符。

    • $ 表示最后一行,s/^/#/ 表示在行首插入 #

  2. 卸载 /dev/vda3

    • 使用 umount 命令卸载设备。

    • 如果卸载失败,脚本会退出并提示错误。

  3. 创建物理卷并加入卷组

    • 使用 pvcreate 创建物理卷。

    • 使用 vgextend 将物理卷加入卷组 klas

  4. 扩展逻辑卷

    • 使用 lvextend 将卷组中的所有空闲空间分配给逻辑卷 /dev/klas/root

  5. 扩展文件系统

    • 使用 xfs_growfs 扩展 XFS 文件系统。

注意事项

  • 确保脚本以 root 权限运行。

  • 确保 /dev/vda3 没有被其他进程占用。

  • 确保卷组 klas 和逻辑卷 /dev/klas/root 已存在。

  • 如果文件系统不是 XFS,请替换 xfs_growfs 为适合的文件系统扩展工具(如 resize2fs 用于 ext4)。

运行脚本

将脚本保存为 extend_lv.sh,并赋予执行权限:

chmod +x extend_lv.sh

使用root账户运行

sudo ./extend_lv.py

  

posted on 2025-03-18 09:28  卑微的大白熊  阅读(21)  评论(0)    收藏  举报