이전 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을 얻었는데 이는 권한 문제처럼 보이지만 로그 파일은 루트에 의해 생성되었으므로 실제로 루트라는 것을 알 수 있습니다.
어떤 아이디어가 있나요?