Shell - 磁盘自动格式化挂载脚本
Step1:准备好设备和挂载点对应关系(test.txt)
/dev/sdb /mnt/disk1
/dev/sdc /mnt/disk2
/dev/sdd /mnt/disk3
/dev/sde /mnt/disk4
Step2:核心脚本(auto_mount.sh)
#!/bin/bash
set -e
CONFIG_FILE="./test.txt"
format_disk() {
local dev=$1
if lsblk "$dev" &>/dev/null; then
echo "==> 格式化磁盘: $dev"
mkfs.xfs -f "$dev"
else
echo "❌ 设备不存在: $dev"
exit 1
fi
}
config_fstab() {
local dev=$1
local mount_point=$2
mkdir -p "$mount_point"
local uuid
uuid=$(blkid -s UUID -o value "$dev")
if [[ -z "$uuid" ]]; then
echo "❌ 获取 UUID 失败: $dev"
return 1
fi
# 防止重复写 fstab
if ! grep -q "$uuid" /etc/fstab; then
echo "==> 写入 fstab: $mount_point"
echo "UUID=$uuid $mount_point xfs defaults 0 0" >> /etc/fstab
else
echo "⚠️ UUID 已存在 fstab,跳过: $dev"
fi
}
while read -r dev mount_point; do
[[ -z "$dev" || "$dev" =~ ^# ]] && continue
format_disk "$dev"
config_fstab "$dev" "$mount_point"
done < "$CONFIG_FILE"
echo "==> 执行 mount -a"
mount -a
lsblk -f
df -h

浙公网安备 33010602011771号