터미널 컴퓨터에 연결하면 udevrule이 USB 스틱이나 SD 카드를 자동으로 마운트하도록 하고 싶습니다. 이를 달성하려고 시도한 방법은 udevrule을 추가하고 루트가 아닌 사용자로 장치를 마운트하는 pmount의 기능을 활용하는 것이었습니다.
다음 추가 규칙은 my 에 정의되어 있습니다 configuration.nix
.
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="block", RUN+="${pkgs.bash}/bin/bash -c '${pkgs.pmount}/bin/pmount --sync --umask 000 %N &>> /tmp/udev-pmount.log'"
'';
오류 출력은 /tmp/udev-pmount.log
다음과 같습니다.
mount: /media/sdd2: permission denied.
/media 폴더에는 777 권한이 있으며 비어 있습니다.
sudo
그런데 동일한 명령을 수동으로 실행하면 작동합니다.
이 작업을 수행하기 위해 NixOS에서 pmount 및 udev가 제대로 작동하도록 하는 방법을 모르겠습니다.
참고로 링크를 추가했습니다.nix 자동 마운트, 유사한 목표를 달성해야 합니다. 하지만 KERNEL=="sd[a-z][0-9]"
아무것도 일치하지 않기 때문에 작동하지 않습니다 .
답변1
다음 솔루션은 pmount
다루지 않지만 재현 가능한 방식으로 스토리지를 자동으로 마운트할 수 있는 가장 간단한 udev 자동 마운트 규칙은 다음과 같습니다.
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", RUN{program}+="${pkgs.systemd}/bin/systemd-mount --no-block --automount=yes --collect $devnode /media"
'';
해결책을 찾았습니다.아치 위키에서, 이는 를 사용한 자동 마운트에 대한 다양한 답변에서 언급되었습니다 udev
.