#!/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