kaixuan1115 / notes

笔记收录
6 stars 0 forks source link

Armbian开启udev自动挂载USB设备 #32

Closed xiaokaixuan closed 3 years ago

xiaokaixuan commented 3 years ago
  1. 编写挂载脚本 (/opt/scripts/usb_mount.sh)
    
    #!/bin/bash

DEV_SDA1='/dev/disk/by-uuid/01858b67-6fd5-8e4f-b240-71f815451b67' MOUNT_SDA1=/media/udisk DEV_SDB1='/dev/disk/by-uuid/7a64333b-6e67-4298-880d-644bbe0be95d' MOUNT_SDB1=/media/udisk/aria2_ng_2 DEV_SDC1='/dev/disk/by-uuid/1a11b316-c01b-d547-9062-2af71f9288db' MOUNT_SDC1=/media/udisk/aria2_ng

function add_sda1 { [ -b ${DEV_SDA1} ] || return 1 mountpoint -q ${MOUNT_SDA1} && return 0

mount -o defaults,noatime,nodiratime -t ext4 ${DEV_SDA1} ${MOUNT_SDA1}
[ "$?" = "0" ] || return 1

docker start qbittorrent sync aria2_ng samba filebrowser

add_sdb1
add_sdc1
return 0

}

function remove_sda1 { remove_sdb1 remove_sdc1

mountpoint -q ${MOUNT_SDA1} || return 0
umount -l ${MOUNT_SDA1}

docker stop qbittorrent sync aria2_ng samba filebrowser

return 0

}

function add_sdb1 { [ -b ${DEV_SDA1} ] || return 1 mountpoint -q ${MOUNT_SDA1} || return 1

[ -b ${DEV_SDB1} ] || return 1
mountpoint -q ${MOUNT_SDB1} && return 0

[ -a ${MOUNT_SDB1} ] || mkdir ${MOUNT_SDB1}
mount -o defaults,noatime,nodiratime -t ext4 ${DEV_SDB1} ${MOUNT_SDB1}
[ "$?" = "0" ] || return 1

return 0

}

function remove_sdb1 { mountpoint -q ${MOUNT_SDB1} || return 0 umount -l ${MOUNT_SDB1}

return 0

}

function add_sdc1 { [ -b ${DEV_SDA1} ] || return 1 mountpoint -q ${MOUNT_SDA1} || return 1

[ -b ${DEV_SDC1} ] || return 1
mountpoint -q ${MOUNT_SDC1} && return 0

[ -a ${MOUNT_SDC1} ] || mkdir ${MOUNT_SDC1}
mount -o defaults,noatime,nodiratime -t ext4 ${DEV_SDC1} ${MOUNT_SDC1}
[ "$?" = "0" ] || return 1

return 0

}

function remove_sdc1 { mountpoint -q ${MOUNT_SDC1} || return 0 umount -l ${MOUNT_SDC1}

return 0

}

[ "${ID_FS_UUID}" = "01858b67-6fd5-8e4f-b240-71f815451b67" ] && ${ACTION}_sda1 [ "${ID_FS_UUID}" = "7a64333b-6e67-4298-880d-644bbe0be95d" ] && ${ACTION}_sdb1 [ "${ID_FS_UUID}" = "1a11b316-c01b-d547-9062-2af71f9288db" ] && ${ACTION}_sdc1

> 2. 编写udev规则 (/etc/udev/rules.d/11-usbdisk.rules)

KERNEL=="sda1", SUBSYSTEM=="block", RUN+="/bin/bash /opt/scripts/usb_mount.sh" KERNEL=="sdb1", SUBSYSTEM=="block", RUN+="/bin/bash /opt/scripts/usb_mount.sh" KERNEL=="sdc1", SUBSYSTEM=="block", RUN+="/bin/bash /opt/scripts/usb_mount.sh" KERNEL=="sdd1", SUBSYSTEM=="block", RUN+="/bin/bash /opt/scripts/usb_mount.sh"

> 3. 关闭udev的PrivateMounts (/etc/systemd/system/systemd-udevd.service.d/override.conf)

[Service] PrivateMounts=no

> 4. 重启udev服务
```bash
sudo systemctl daemon-reload
sudo systemctl restart systemd-udevd.service
xiaokaixuan commented 1 year ago

常用Docker命令


docker run -d --name filebrowser --restart=on-failure -v /media/udisk:/srv:rslave -p82:80 xiaokaixuan/filebrowser
docker run -d --name aria2_ng -v /media/udisk/aria2_ng:/downloads:rslave -p 6800:6800 -p 81:80 xiaokaixuan/aria2_ng

docker run -d --name samba -e USERID=0 -e GROUPID=0 -p 139:139 -p 445:445 -v /media/udisk:/mount:rslave dperson/samba -Sr docker exec -it samba samba.sh -u "admin;admin" -s "Data;/mount/data;yes;no;yes" -s "Baby;/mount/baby;yes;no;yes" -s "Root;/mount;no;no;no;admin"