linux自动查看未挂载的硬盘,自动生成挂载点名称 ,自动挂载,自动开机挂载

 流程图

流程图说明

  1. 开始执行脚本。
  2. 检索未挂载的块设备。
  3. 判断是否有未挂载的磁盘,如果没有则结束脚本。
  4. 若有未挂载磁盘,显示未挂载磁盘列表。
  5. 遍历每个未挂载的设备。
  6. 初始化索引为 1。
  7. 生成挂载点名称 /mnt/disk_索引
  8. 检查挂载点是否存在,若存在则索引加 1 并重新生成挂载点名称,若不存在则创建挂载点。
  9. 尝试挂载设备,判断是否挂载成功。
  10. 若挂载成功,获取文件系统类型,将挂载信息写入 /etc/fstab 并提示开机自动挂载。
  11. 若挂载失败,提示无法挂载设备。
  12. 判断是否还有未处理的设备,若有则继续遍历,若没有则结束脚本。

脚本 

#!/bin/bash

# 1. 检索未挂载的块设备
unmounted_devices=$(lsblk -no NAME,FSTYPE,MOUNTPOINT | awk '$2!="" && $3=="" {print "/dev/"$1}')
if [ -z "$unmounted_devices" ]; then
    echo "没有发现未挂载的磁盘。"
    exit 0
fi
echo "未挂载的磁盘列表:"
echo "$unmounted_devices"

for device in $unmounted_devices; do
    index=1
    while true; do
        # 2. 生成挂载点名称
        mount_point="/mnt/disk_$index"
        # 3. 检查挂载点是否存在
        if [ ! -d "$mount_point" ]; then
            break
        fi
        ((index++))
    done

    # 4. 创建挂载点
    mkdir -p "$mount_point"

    # 5. 挂载设备
    if mount $device $mount_point; then
        echo "成功将 $device 挂载到 $mount_point"
        # 6. 获取文件系统类型
        fs_type=$(blkid -o value -s TYPE $device)
        # 7. 将挂载信息写入 /etc/fstab 实现开机自动挂载
        echo "$device $mount_point $fs_type defaults 0 0" >> /etc/fstab
        echo "已将 $device 的挂载信息添加到 /etc/fstab,系统开机时将自动挂载"
    else
        echo "无法将 $device 挂载到 $mount_point"
    fi
done