연결이 끊어지거나 연결될 때 드라이브를 자동으로 마운트 해제/마운트합니다.

연결이 끊어지거나 연결될 때 드라이브를 자동으로 마운트 해제/마운트합니다.

systemd.mount컴퓨터를 다시 시작하거나 장치를 다시 로드하지 않고도 장치가 드라이브 상태를 감지 하도록 하는 방법이 있습니까 ? 그렇지 않다면 이를 달성할 수 있는 다른 방법이 있습니까?

자동으로 하고 싶습니다 . mount a drive when it is inserted자동으로요 unmount it when it is disconnected.

내 현재 systemd.mount구성:

[Unit]
Description=var-test.mount

[Mount]
What=LABEL=TEST_LABEL
Where=/var/test
Type=ext4
Options=defaults,noatime

[Install]
WantedBy=multi-user.target

이렇게 하고 싶은 이유는 드라이브 연결이 끊어져도 마운트 해제되지 않기 때문입니다. 따라서 예를 들어 /dev/sda1마운트된 상태로 유지되지만 액세스할 수는 없습니다. 드라이브를 연결하면 새 파티션이 생성됩니다. 예를 들어 /dev/sdb1이미 사용 중이기 때문에 동일한 마운트 지점에 마운트할 수 없습니다.

systemd.mount드라이브를 분리하기 전에 장치를 중지하고 드라이브를 다시 연결한 후 장치를 시작하여 이 문제를 피할 수 있었습니다 . 그러나 이것은 자동화하고 싶은 단계입니다.

편집하다:아래 링크된 글에서 좋은 답변을 얻은 것 같습니다. 제가 조사해 보겠습니다 udev rules. 아마도 . systemd.mountudev rulehttps://unix.stackexchange.com/a/44509/540247

답변1

udev 규칙을 사용하면 나에게 적합합니다. 방금 설치 장치를 실행하기 위해 udev 규칙을 만들었습니다. 따라서 장치가 연결될 때마다 설치됩니다(아래 udev 규칙에 지정된 장치 속성). 장치 연결이 끊어질 때마다 제거됩니다.

다음과 같습니다.

# Mount when disk is inserted
KERNEL=="sd[a-z][0-9]", KERNELS=="ata[12]", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ext4", ENV{ID_FS_LABEL}=="TEST_LABEL", ACTION=="add", RUN+="/bin/systemctl restart var-test.mount"

# Unmount device when removed (Edit: don't do this)
KERNEL=="sd[a-z][0-9]", KERNELS=="ata[12]", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ext4", ENV{ID_FS_LABEL}=="TEST_LABEL", ACTION=="remove", RUN+="/bin/systemctl restart var-test.mount"

편집하다:아래 @roaima가 게시한 것처럼 연결이 끊어진 후 장치를 마운트 해제하는 것은 좋지 않습니다. 그러나 위의 해결 방법은 장치가 연결되어 있는 동안 장치를 장착하는 데 여전히 작동합니다.

관련 정보