流程图

流程图说明
- 开始执行脚本。
- 检索未挂载的块设备。
- 判断是否有未挂载的磁盘,如果没有则结束脚本。
- 若有未挂载磁盘,显示未挂载磁盘列表。
- 遍历每个未挂载的设备。
- 初始化索引为 1。
- 生成挂载点名称
/mnt/disk_索引
。
- 检查挂载点是否存在,若存在则索引加 1 并重新生成挂载点名称,若不存在则创建挂载点。
- 尝试挂载设备,判断是否挂载成功。
- 若挂载成功,获取文件系统类型,将挂载信息写入
/etc/fstab
并提示开机自动挂载。
- 若挂载失败,提示无法挂载设备。
- 判断是否还有未处理的设备,若有则继续遍历,若没有则结束脚本。
脚本
#!/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