本文目录导读:

我来为你提供几种自动挂载ISO镜像的脚本方案:
基础自动挂载脚本
#!/bin/bash
# 自动挂载ISO镜像脚本
# 配置变量
ISO_PATH="/path/to/your.iso" # ISO文件路径
MOUNT_POINT="/mnt/iso" # 挂载点
# 检查是否为root用户
if [ "$EUID" -ne 0 ]; then
echo "请使用root权限运行此脚本"
exit 1
fi
# 创建挂载点目录
if [ ! -d "$MOUNT_POINT" ]; then
mkdir -p "$MOUNT_POINT"
echo "创建挂载点: $MOUNT_POINT"
fi
# 检查ISO文件是否存在
if [ ! -f "$ISO_PATH" ]; then
echo "错误: ISO文件不存在: $ISO_PATH"
exit 1
fi
# 检查是否已经挂载
if mount | grep -q "$MOUNT_POINT"; then
echo "ISO已经挂载到 $MOUNT_POINT"
exit 0
fi
# 挂载ISO
mount -o loop "$ISO_PATH" "$MOUNT_POINT"
# 检查挂载是否成功
if [ $? -eq 0 ]; then
echo "成功挂载ISO到: $MOUNT_POINT"
else
echo "挂载失败"
exit 1
fi
带卸载功能的脚本
#!/bin/bash
# ISO镜像挂载/卸载管理器
usage() {
echo "使用方法: $0 {mount|umount|status} [iso_path] [mount_point]"
echo " mount - 挂载ISO"
echo " umount - 卸载ISO"
echo " status - 查看挂载状态"
exit 1
}
# 默认配置
ISO_PATH="${2:-/path/to/default.iso}"
MOUNT_POINT="${3:-/mnt/iso}"
check_root() {
if [ "$EUID" -ne 0 ]; then
echo "请使用root权限运行此脚本"
exit 1
fi
}
mount_iso() {
check_root
# 创建挂载点
if [ ! -d "$MOUNT_POINT" ]; then
mkdir -p "$MOUNT_POINT"
fi
# 检查是否已挂载
if mount | grep -q "$MOUNT_POINT"; then
echo "警告: $MOUNT_POINT 已经挂载"
mount | grep "$MOUNT_POINT"
exit 0
fi
# 检查ISO文件
if [ ! -f "$ISO_PATH" ]; then
echo "错误: ISO文件不存在: $ISO_PATH"
exit 1
fi
# 挂载ISO
echo "正在挂载 $ISO_PATH 到 $MOUNT_POINT..."
mount -o loop,ro "$ISO_PATH" "$MOUNT_POINT"
if [ $? -eq 0 ]; then
echo "挂载成功!"
df -h "$MOUNT_POINT"
else
echo "挂载失败!"
exit 1
fi
}
umount_iso() {
check_root
if [ ! -d "$MOUNT_POINT" ]; then
echo "挂载点不存在: $MOUNT_POINT"
exit 1
fi
echo "正在卸载 $MOUNT_POINT..."
umount "$MOUNT_POINT"
if [ $? -eq 0 ]; then
echo "卸载成功!"
rmdir "$MOUNT_POINT" 2>/dev/null || true
else
echo "卸载失败,可能正在使用中"
fuser -km "$MOUNT_POINT" 2>/dev/null
sleep 2
umount "$MOUNT_POINT" && echo "强制卸载成功" || echo "卸载失败"
fi
}
status_iso() {
echo "=== ISO挂载状态 ==="
mount | grep -E "\.iso|loop" || echo "没有已挂载的ISO镜像"
echo "=================="
}
# 主程序
case "$1" in
mount)
mount_iso
;;
umount)
umount_iso
;;
status)
status_iso
;;
*)
usage
;;
esac
批量挂载多个ISO的脚本
#!/bin/bash
# 批量挂载ISO镜像脚本
ISO_DIR="/path/to/iso/directory" # ISO文件存放目录
BASE_MOUNT="/mnt" # 基础挂载路径
check_root() {
if [ "$EUID" -ne 0 ]; then
echo "请使用root权限运行此脚本"
exit 1
fi
}
# 获取ISO文件列表
get_iso_files() {
find "$ISO_DIR" -name "*.iso" -type f 2>/dev/null | sort
}
# 挂载单个ISO
mount_single_iso() {
local iso_file="$1"
local iso_name=$(basename "$iso_file" .iso)
local mount_point="${BASE_MOUNT}/${iso_name}"
# 创建挂载点
mkdir -p "$mount_point"
# 检查是否已挂载
if mount | grep -q "$mount_point"; then
echo "已挂载: $iso_name"
return 0
fi
echo "正在挂载: $iso_name"
mount -o loop,ro "$iso_file" "$mount_point"
if [ $? -eq 0 ]; then
echo "成功挂载 $iso_name -> $mount_point"
else
echo "挂载失败: $iso_name"
rmdir "$mount_point" 2>/dev/null
return 1
fi
}
# 卸载所有ISO
umount_all_iso() {
echo "正在卸载所有ISO镜像..."
mount | grep "$BASE_MOUNT" | while read line; do
local mount_point=$(echo "$line" | awk '{print $3}')
echo "卸载: $mount_point"
umount "$mount_point" 2>/dev/null || {
fuser -km "$mount_point" 2>/dev/null
sleep 1
umount "$mount_point" 2>/dev/null || echo "无法卸载: $mount_point"
}
rmdir "$mount_point" 2>/dev/null
done
echo "卸载完成"
}
# 主程序
check_root
echo "=== ISO批量挂载工具 ==="
# 查找ISO文件
iso_files=($(get_iso_files))
iso_count=${#iso_files[@]}
if [ $iso_count -eq 0 ]; then
echo "在 $ISO_DIR 中未找到ISO文件"
exit 1
fi
echo "找到 $iso_count 个ISO文件"
# 显示选项
echo "请选择操作:"
echo "1) 挂载所有ISO"
echo "2) 卸载所有ISO"
echo "3) 查看挂载状态"
echo "4) 退出"
read -p "输入选项 (1-4): " choice
case $choice in
1)
echo "开始挂载所有ISO..."
for iso in "${iso_files[@]}"; do
mount_single_iso "$iso"
done
echo "挂载完成!"
;;
2)
umount_all_iso
;;
3)
echo "=== 挂载状态 ==="
mount | grep "$BASE_MOUNT" || echo "没有已挂载的ISO"
;;
4)
exit 0
;;
*)
echo "无效选项"
;;
esac
自动挂载fstab配置(持久化)
如果你想在系统启动时自动挂载ISO,可以添加到fstab:
# 创建挂载点 sudo mkdir -p /mnt/iso # 添加到 /etc/fstab(需要root权限) echo "/path/to/your.iso /mnt/iso iso9660 loop,ro,auto 0 0" | sudo tee -a /etc/fstab # 测试挂载 sudo mount -a
systemd服务自动挂载
#!/bin/bash # 创建systemd服务脚本 cat << 'EOF' | sudo tee /etc/systemd/system/iso-mount.service [Unit] Description=ISO Image Auto Mount Service After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/mount-iso.sh mount ExecStop=/usr/local/bin/mount-iso.sh umount [Install] WantedBy=multi-user.target EOF # 启用服务 sudo systemctl daemon-reload sudo systemctl enable iso-mount.service sudo systemctl start iso-mount.service
使用说明
- 保存脚本:将脚本保存为
mount-iso.sh - 添加执行权限:
chmod +x mount-iso.sh - 修改配置:根据实际情况修改ISO路径和挂载点
- 运行脚本:
- 基础版:
./mount-iso.sh - 管理版:
./mount-iso.sh mount或./mount-iso.sh umount
- 基础版:
注意事项
- 需要root权限运行
- ISO文件路径需要使用绝对路径
- 挂载点目录需要存在或脚本会自动创建
- 卸载前确保没有程序在使用挂载目录中的文件
选择适合你需求的脚本版本即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播