#!/bin/bash


# vda             252:0    0  500G  0 disk
# ├─vda1          252:1    0    1G  0 part /boot
# └─vda2          252:2    0  119G  0 part
#   ├─klas-root   253:0    0 74.7G  0 lvm  /
#   ├─klas-swap   253:1    0  7.9G  0 lvm
#   └─klas-backup 253:2    0 36.4G  0 lvm
# 系统的磁盘划分为上图所示，请给出shell命令实现如下的功能
# 1. 关闭/dev/klas/swap /dev/klas/backup 将vda2的磁空间全部分给/dev/klas/root
# 2. 将vda的剩余空间创建 /vda3 分区, 创建 pv /dev/vda3
# 3. 在pv /dev/vda3上创建 vg datavg，大小为全部空间
# 4. 在vg datavg上创建lv docklv，大小为全部空间
# 5. 将lv docklv格式化为xfs格式
# 6. 将lv docklv挂载到 /var/lib/docker
# 7. 将lv docklv的挂载点设置为永久挂载



# 1. 关闭/dev/klas/swap 和 /dev/klas/backup，将vda2的空间全部分给/dev/klas/root
swapoff /dev/klas/swap
lvremove /dev/klas/swap
# lvremove /dev/klas/backup
lvextend -l +100%FREE /dev/klas/root
xfs_growfs /dev/klas/root

# 2. 将vda的剩余空间创建 /vda3 分区, 创建 pv /dev/vda3
if ! lsblk | grep -q vdb; then
    echo "/dev/vdb does not exist, skipping partition creation"
    exit 0
fi

# 1. 调整磁盘 /dev/vdb 的分区表为 GPT 格式
echo yes | parted /dev/vdb mklabel gpt

echo "/dev/vdb exists, starting to partition creation"
echo "n
p



t

8e
w
" | fdisk /dev/vdb
partprobe

pvcreate /dev/vdb1

# 3. 在pv /dev/vdb1上创建 vg datavg，大小为全部空间
vgcreate datavg /dev/vdb1

# 4. 在vg datavg上创建lv docklv，大小为全部空间
lvcreate -l 100%FREE -n docklv datavg

# 5. 将lv docklv格式化为xfs格式
mkfs.xfs /dev/datavg/docklv

# 6. 将lv docklv挂载到 /var/lib/docker
mkdir -p /var/lib/docker
mount /dev/datavg/docklv /var/lib/docker

# 7. 将lv docklv的挂载点设置为永久挂载
echo "/dev/datavg/docklv /var/lib/docker xfs defaults 0 0" >> /etc/fstab

echo ""


df -TH
echo ""
lsblk
echo ""

# 特殊大于2T的磁盘

请写shell命令实现如下的功能
1 请调整磁盘/vda的分区表为GPT格式
2 然后将磁盘剩余空间扩容给/dev/vda3的分区
3 然后扩容在vg datavg
4 然后扩容 将lv docklv

# 1. 调整磁盘 /dev/vda 的分区表为 GPT 格式
parted /dev/vda mklabel gpt

# 2. 将磁盘剩余空间扩容给 /dev/vda3 的分区
parted /dev/vda resizepart 3 100%

# 3. 扩容 vg datavg
pvresize /dev/vda3

# 4. 扩容 lv docklv
lvextend -l +100%FREE /dev/datavg/docklv
resize2fs /dev/datavg/docklv

# 写shell命令，实现如下的功能
删除 /etc/fstab中以 /dev/mapper/klas-backup 和 /dev/mapper/klas-swap 开头的行

sed -i '/^\/dev\/mapper\/klas-\(backup\|swap\)/d' /etc/fstab