fstab挂载硬盘
命令
nano mount_disk.sh配置块
#!/bin/bash
# 检查是否以 root 运行
if [[ $EUID -ne 0 ]]; then
echo "[!] This script must be run as root."
exit 1
fi
# 1. 列出所有可用硬盘及分区
echo "[+] Available disks and partitions:"
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,UUID
# 2. 让用户选择要挂载的分区
echo
read -p "Enter the partition to mount (e.g., sdb1): " PARTITION
# 确保用户输入了有效的分区
if [[ -z "$PARTITION" ]]; then
echo "[!] No partition selected. Exiting."
exit 1
fi
PARTITION_PATH="/dev/$PARTITION"
# 3. 获取 UUID 和文件系统类型
UUID=$(blkid -s UUID -o value "$PARTITION_PATH")
FSTYPE=$(blkid -s TYPE -o value "$PARTITION_PATH")
if [[ -z "$UUID" || -z "$FSTYPE" ]]; then
echo "[!] Failed to get UUID or filesystem type. Make sure the partition exists."
exit 1
fi
echo "[+] Selected Partition: $PARTITION_PATH"
echo " UUID: $UUID"
echo " Filesystem Type: $FSTYPE"
# 4. 让用户输入挂载目录
read -p "Enter the mount point (e.g., /home, /data, /mnt/storage): " MOUNT_POINT
# 确保用户输入了挂载目录
if [[ -z "$MOUNT_POINT" ]]; then
echo "[!] No mount point specified. Exiting."
exit 1
fi
# 5. 确保挂载目录存在
if [[ ! -d "$MOUNT_POINT" ]]; then
echo "[+] Creating mount directory: $MOUNT_POINT"
mkdir -p "$MOUNT_POINT"
fi
# 6. 生成 fstab 记录
FSTAB_ENTRY="UUID=$UUID $MOUNT_POINT $FSTYPE defaults 0 2"
# 7. 备份现有的 /etc/fstab
echo "[+] Backing up /etc/fstab to /etc/fstab.bak"
cp /etc/fstab /etc/fstab.bak
# 8. 将新记录追加到 /etc/fstab
echo "[+] Writing entry to /etc/fstab:"
echo "$FSTAB_ENTRY"
echo "$FSTAB_ENTRY" >> /etc/fstab
# 9. 挂载新分区
echo "[+] Mounting $PARTITION_PATH to $MOUNT_POINT"
mount -a
# 10. 检查挂载是否成功
echo "[+] Verifying mount:"
df -hT | grep "$MOUNT_POINT"
echo "[✔ ] Mount setup completed successfully! Your partition will now be mounted at $MOUNT_POINT on boot."