今天做LVM实验,第一次感觉手动交互的创建分区是在太费劲了。遂写以下脚本:

第一个:删除分区脚本

#!/bin/bash
#删除分区的脚本
#使用方法 /PATH/TO/SHELL_NAME  /dev/DEV_NAME
DEV=$1
DEVID=${C##*/} #取得设备的基名
PARTNUM=$(cat /proc/partitions  | grep -o "$DEVID[0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}" | sort -nr) #现有分区数量
for I in $PARTNUM;do
        echo -n "d
        $I
        w" | fdisk $1 &> /dev/null
        partx -a $1  &> /dev/null
done
cat /proc/partitions #最后查看结果
#

第二个:只增加逻辑分区脚本

#!/bin/bash
#自动增加8个逻辑分区脚本
#使用方法: SHELL_NAME  /DEV/DEV_NAME
#判断是否存在扩展分区
if ! fdisk -l $1 | grep -i "extended" &> /dev/null;then
        echo -n "n
        e
        1
           
           
        w" | fdisk $1 &> /dev/null
        partx -a $1 &> /dev/null
fi
#由于fdisk -l出来的多2个$1,所以必须在$2上多加2
declare -i LOGICPARTNUM=$(fdisk -l $1 | grep -o "$1" | wc -l)
while [ $LOGICPARTNUM -lt $2 ];do
        echo -n "n
        l
           
        +2G
        w" | fdisk $1 &> /dev/null
        partx -a $1 &> /dev/null
        LOGICPARTNUM=$(fdisk -l $1 | grep -o "$1"| wc -l)
done
#这里取得共有多少逻辑分区需要被转换类型
LOGICPARTT=$(fdisk -l /dev/sdb | grep -v Extended | grep -o "$1[0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
for I in $LOGICPARTT;do
        echo -n "t
        $I
        8e
        w" | fdisk $1 &> /dev/null
done
cat /proc/partitions