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

 

posted @ 2026-08-13 23:37  HOUHUILIN  阅读(7)  评论(0)    收藏  举报