使用deepseek大模型编写脚本可以减少我们很少的工作量,但是如果我们直接告诉deepseek来实现这个功能,其给出的脚本往往差强人意,因此我们应该给提供具体的思路使得deepseek能够按照我们的想法一步一步达到我么的目标。下面就是我们提供的思路及deepseek给出的脚本内容。
以下步骤的前提是,我们将创建的分区vda3进行挂载到了其他的目录,并在fstab文件中编写了永久挂载的内容,现在我们任然使用vda3来实现对root目录所在的卷进行扩容,首先我们应该修改之前的操作,取消之前在fstab文件最后一行增加的已实现永久挂载的内容,并对vda3取消挂载操作。
-
注释
/etc/fstab文件的最后一行。 -
卸载
/dev/vda3。 -
将
/dev/vda3创建为物理卷(PV),并将其加入到卷组klas中。 -
将卷组
klas中的所有空间分配给逻辑卷/dev/klas/root。 -
使用
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 "所有操作已完成!"
说明
-
注释
/etc/fstab的最后一行:-
使用
sed命令将最后一行开头加上#注释符。 -
$表示最后一行,s/^/#/表示在行首插入#。
-
-
卸载
/dev/vda3:-
使用
umount命令卸载设备。 -
如果卸载失败,脚本会退出并提示错误。
-
-
创建物理卷并加入卷组:
-
使用
pvcreate创建物理卷。 -
使用
vgextend将物理卷加入卷组klas。
-
-
扩展逻辑卷:
-
使用
lvextend将卷组中的所有空闲空间分配给逻辑卷/dev/klas/root。
-
-
扩展文件系统:
-
使用
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
浙公网安备 33010602011771号