发表于 2026年08月05日

armbian安装u盘硬盘自动挂载记录

先确认一点:你的 U 盘插入后:

blkid
能看到:
/dev/sda1: UUID="8AB7-0B43"
说明硬件识别没问题。 2. 创建一个真正的 systemd 热插拔服务

创建:

nano /usr/local/bin/usb-music-check.sh
写:
#!/bin/bash

UUID="8AB7-0B43"
DIR="/media/music/usb"

mkdir -p "$DIR"


if blkid | grep -q "$UUID"; then

    if ! mountpoint -q "$DIR"; then

        mount UUID=$UUID "$DIR" \
        -o rw,noatime,uid=mpd,gid=audio,iocharset=utf8

        sleep 3

        mpc update
    fi

else

    if mountpoint -q "$DIR"; then
        umount "$DIR"
        mpc update
    fi

fi
保存
chmod +x /usr/local/bin/usb-music-check.sh
3. 做循环检测服务

创建:

nano /etc/systemd/system/usb-music-check.service
内容:
[Unit]
Description=USB Music Auto Mount


[Service]
Type=simple
ExecStart=/bin/bash -c 'while true; do /usr/local/bin/usb-music-check.sh; sleep 5; done'

Restart=always


[Install]
WantedBy=multi-user.target
启动:
systemctl daemon-reload

systemctl enable usb-music-check.service

systemctl restart usb-music-check.service
测试

拔掉 U盘:

df -h
确认没有:
/media/music/usb
插回。

等 5~10 秒:

df -h
应该出现:
/dev/sda1   /media/music/usb
这个方法虽然不是最“漂亮”,但是在:

Armbian 电视盒 eMMC启动 无桌面环境 MPD播放器

这种环境里反而最可靠。

它每5秒检查一次,不依赖 udev 事件,所以不会出现“设备到了但事件没触发”的问题。

等这个跑通后,再可以把扫描间隔改成30秒降低CPU。你这个盒子性能足够,5秒几乎没占用。 这个方法只能固定这个u盘下面是通用版

nano /usr/local/bin/usb-music-check.sh
全部删除,改成:
#!/bin/bash

DIR="/media/music/usb"

mkdir -p "$DIR"


DEVICE=$(lsblk -lnpo NAME,TYPE | awk '$2=="part" && $1 ~ "/dev/sd" {print $1}' | head -1)


# 没有U盘
if [ -z "$DEVICE" ]; then

    if mountpoint -q "$DIR"; then
        umount -l "$DIR"
        mpc update
    fi

    exit 0
fi



# 已挂载不用重复挂
if mountpoint -q "$DIR"; then
    exit 0
fi



# 自动挂载
mount "$DEVICE" "$DIR" \
-o rw,noatime,uid=mpd,gid=audio,iocharset=utf8


sleep 3


mpc update
保存。

执行:

chmod +x /usr/local/bin/usb-music-check.sh
2. 重启检测服务
systemctl restart usb-music-check.service
3. 测试

插入U盘后:

执行:

lsblk
df -h
如果手动执行脚本能挂,说明服务没问题,只是检测周期。

看服务:

systemctl status usb-music-check.service
以后换:

U盘 移动硬盘 USB读卡器

都能挂。

延伸阅读