Shell ❀ Linux系统磁盘快速挂载执行脚本
此脚本执行时需要指定一个参数,该参数为Linux系统安装磁盘位置,若为/dev/sdc,只需要输入sdc即可,默认参数为sda;
·
1 脚本代码详解
#!/bin/bash
echo "------------------------------------BEGIN------------------------------------"
# 判断默认安装路径是否为/dev/sda
DISK=${1:-sda}
# 磁盘分区函数
function PartedDisk
{
for disk in $DISK
do
echo " Starting parted Disk $disk "
parted -s /dev/${disk} mklabel gpt &> /dev/null
# 配置标签gpt
parted -s /dev/${disk} mkpart primary ext4 0 100% &> /dev/null
# 配置分区名称、主从分区、分区格式、起始位置、结束位置
done
echo -e "\033[32;40m All disk parted Done! \033[0m"
# 黑底绿色回显
sleep 1s
}
# 格式化函数
function FormatDisk
{
for disk in $DISK
do
echo " Starting format Disk $disk "
mkfs.ext4 -F /dev/${disk}1 &> /dev/null
# 修改磁盘文件系统为ext4
done
echo -e "\033[32;40m All disk format Done!!! \033[0m"
sleep 1s
}
# 挂载点创建函数
function MakeDir
{
cd /home
for disk in $DISK
do
echo " Starting make the $disk mount diretory! "
mkdir -pv /home/${disk} &> /dev/null
# 创建挂载点目录,如/home/sda
done
echo -e "\033[32;40m MakeDir Done!! \033[0m"
sleep 1s
}
# 挂载磁盘分区
function MountDisk
{
for disk in $DISK
do
echo " Starting change aoto-mount file! "
uuid=`blkid /dev/${disk}1|awk '{print $2}'|awk -F "\"" '{print $2}'`
# 获取UUID
echo "UUID=$uuid /home/${disk} ext4 defaults 1 2" >>uuid.txt
# 配置自动挂载信息
done
cat uuid.txt >> /etc/fstab
# 将自定义挂载文件信息定向至自动挂载文件
}
# 判断磁盘是否已经挂载
function Check_Disk
{
for disk in $DISK
do
# 不返回查询
cat /etc/fstab | grep -q $disk
# 校验前面查询是否执行成功,成功返回值为0;
if [[ $? -eq 0 ]];then
# 若磁盘被挂载,则返回错误信息
echo -e "\033[31;40m ERROR,$disk is currently mounted, failed to mount again \033[0m"
else
# 若磁盘未被挂载,则执行前面函数,并执行一次后,退出循环
PartedDisk&&FormatDisk&&MakeDir&&MountDisk
break
fi
done
}
# 函数调用
Check_Disk
# 执行挂载并查看结果
mount -a
echo "---------------------------------MountStatus---------------------------------"
cat -n /etc/fstab | grep -i UUID
echo "-------------------------------------END-------------------------------------"
2 代码执行结果
此脚本执行时需要指定一个参数,该参数为Linux系统安装磁盘位置,若为/dev/sdc,只需要输入sdc即可,默认参数为sda;
2.1 使用默认系统路径执行脚本
2.2 使用指定系统路径执行脚本
2.3 磁盘已经完成挂载,执行代码将返回错误
3、脚本参数调整
- 第21行可修改磁盘分区情况,依次为分区名称、主从分区、分区格式、起始位置、结束位置,修改位置
~ primary ext4 0 100%
; - 第35行可修改磁盘格式化文件系统,修改位置
mkfs.ext4
; - 第49行可修改挂载节点目录,修改位置
/home/${disk}
,需要注意的是${disk}
为变量; - 第64行为配置系统自动挂载信息,可根据自定义情况进行修改;
- 第84行为执行函数操作的相关命令,修改需注意;
- 第93行执行挂载命令;
更多推荐
已为社区贡献3条内容
所有评论(0)