以前のRaspbianバージョンでは自動マウントが可能でしたが、拡張時に「マウント」を実行しないことが規則でした。
ルール:
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="relatime"
# Filesystem-specific mount options
ACTION=="add",ENV{ID_FS_TYPE}=="vfat|ntfs",ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
# Mount the device
ACTION=="add", RUN+="/home/pi/11-media-by-label.sh /bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
実行されます。ACTION=="add", RUN+="/home/pi/11-media-by-label.sh /bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
これには以下が含まれます。
`pi@tv:~ $ cat /home/pi/11-media-by-label.sh
#!/bin/sh
echo "11-media-by-label-auto-mount.rules: $@" >> /tmp/11-media-by-label-auto-mount.rules.log
`以下を実行して生成します。
pi@tv:~ $ cat /tmp/11-media-by-label-auto-mount.rules.log
11-media-by-label-auto-mount.rules: /bin/mount -o relatime,utf8,gid=100,umask=002 /dev/sda1 /media/USB_DISK
前の行の「マウント」操作は正しい形式のようです。これは、手動でターミナルウィンドウに貼り付けると
pi@tv:~ $ sudo /bin/mount -o relatime,utf8,gid=100,umask=002 /dev/sda1 /media/USB_DISK
正しく機能するためです。
以降のsudo udevadm control --log-priority=info
システムログには以下が含まれます。
/var/log/syslog:Jun 10 17:34:54 tv systemd-udevd[121]: Process '/bin/mount -o relatime,utf8,gid=100,umask=002 /dev/sda1 /media/USB_DISK' failed with exit code 32.
これは「インストール失敗」を解決します。
(また、mkdir -pを使用して終了コード1を取得しましたが、これは権限の問題のように見えますが、ログファイルはルートによって生成されたため、実際にはルートであることがわかります。
どんなアイデアがありますか?