systemd를 사용하여 USB 드라이브를 깔끔하게 마운트 해제합니다.

systemd를 사용하여 USB 드라이브를 깔끔하게 마운트 해제합니다.

/etc/fstab아래와 같이 추가 규칙을 추가하여 USB 드라이브의 자동 마운트를 구성했습니다.

/dev/sda1  /media  vfat  noauto,nofail,x-systemd.automount,x-systemd.idle-timeout=2,x-systemd.device-timeout=2

그런 다음 systemd는 이 항목을 선택하여 fsab-generator마운트 및 자동 마운트를 위한 두 개의 유닛 파일을 생성합니다 /dev/sda1.

  • 미디어 자동 마운트
  • 미디어 마운트

일단 삽입되면 USB 드라이브는 지정된 마운트 지점에 올바르게 마운트됩니다. 이는 를 실행하여 확인되었습니다 ls /media. Journalctl의 출력은 다음과 같습니다.

Sep 17 13:19:55 pcxx systemd[1]: Mounted /media.
Sep 17 13:19:57 pcxx systemd[1]: Unmounting /media...
Sep 17 13:19:57 pcxx systemd[1]: Unmounted /media.

1. systemd가 /media설치 직후 제거되는 이유는 무엇입니까?

USB 드라이브를 사용한 후 깔끔하게 마운트 해제할 수 있도록 하는 것이 목적입니다.

이 작업을 수행하는 방법에는 두 가지가 있다는 것을 알았습니다.

첫 번째는 실행 중입니다 umount /media. 이렇게 하면 작업이 완료되지만 media.automount 서비스가 손상됩니다. Journalctl 및 실행 시 관찰되는 오류 메시지 systemctl status -l media.automount는 다음과 같습니다.

Sep 17 13:28:44 pcxx systemd[1]: media.automount: Got invalid poll event 16 on pipe (fd=59)
Sep 17 13:28:44 pcxx systemd[1]: media.automount: Failed with result 'resources'.

두 번째는 systemd의 umount 명령을 실행하는 것입니다 systemd-umount /media. 이 작업도 수행되지만 media.mount 및 media.automount 서비스는 중지됩니다. 그 결과 다음 USB 드라이브를 삽입할 때 자동으로 마운트되지 않아 자동 마운트 목적이 무효화됩니다.

2. 자동 마운트 서비스를 중지하지 않고 systemd에 의해 자동으로 마운트된 드라이브를 마운트 해제하는 올바른 방법이 있습니까?

답변1

Q1: systemd가 /media를 마운트한 후 즉시 마운트 해제하는 이유는 무엇입니까?

A1: 2초 동안 활동이 없으면 제거하도록 지시했기 때문에:

x-systemd.idle-timeout옵션이 이를 제어합니다. 항목에서 2초로 설정했습니다 /etc/fstab.x-systemd.idle-timeout=2

Q2. 자동 마운트 서비스를 중지하지 않고 systemd에 의해 자동 마운트된 드라이브를 마운트 해제하는 올바른 방법이 있습니까?

A2. 우리가 당신을 위해 그것을 해보자 systemd.automount.

Q1과 마찬가지로 이 x-systemd.idle-timeout옵션은 마운트가 마운트 해제되기 전에 마운트가 유휴 상태로 있을 수 있는 시간을 제어합니다. 현재 설정한 대로 2초입니다. 따라서 2초 동안 활동이 없으면 USB 드라이브가 마운트 해제됩니다. 이 시점에서 해야 할 일은 드라이브를 분리/분리하는 것뿐입니다. 명령을 사용하려면 마운트 해제되었는지 확인할 수도 있습니다 lsblk -f. USB 드라이브에 마운트 지점이 없다고 표시되면 아직 마운트되지 않은 것입니다. 명확하게 설명하기 위해 내 시스템의 예는 다음과 같습니다(무시 mmcblk0- 시스템 SD 카드임).

USB 드라이브를 마운트한 후 lsblk -f다음 마운트 지점이 표시됩니다 sdb1.
pi@raspberrypi3b:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb
└─sdb1      ext4   1.0   SANDISK8GB e5cb39a9-b041-4339-92f5-4172201a4b1a    2.6G    59% /home/pi/SANDISK8GB_ThumbDrv
mmcblk0
├─mmcblk0p1 vfat   FAT32 boot       C839-E506                               203M    19% /boot
└─mmcblk0p2 ext4   1.0   rootfs     568caafd-bab1-46cb-921b-cd257b61f505   26.3G     5% /
출력을 모니터링하면 journalctl --follow다음과 유사한 메시지가 나타나 USB 드라이브가 설정된 시간 동안 유휴 상태가 된 후 마운트 해제되었음을 알려줍니다 x-systemd.idle-timeout.
Jan 17 10:46:40 raspberrypi3b systemd[1]: Unmounting /home/pi/SANDISK8GB_ThumbDrv...
Jan 17 10:46:40 raspberrypi3b systemd[750]: home-pi-SANDISK8GB_ThumbDrv.mount: Succeeded.
Jan 17 10:46:40 raspberrypi3b systemd[1]: home-pi-SANDISK8GB_ThumbDrv.mount: Succeeded.
Jan 17 10:46:40 raspberrypi3b systemd[1]: Unmounted /home/pi/SANDISK8GB_ThumbDrv.
다른 드라이브를 얻을 때까지 드라이브는 마운트 해제된 상태로 유지됩니다.자동 마운트 요청. 이 예에서는 ls아래 첫 번째 줄 끝에 표시된 대로 CLI를 입력하여 요청이 트리거됩니다 .
Jan 17 10:40:38 raspberrypi3b systemd[1]: home-pi-SANDISK8GB_ThumbDrv.automount: Got automount request for /home/pi/SANDISK8GB_ThumbDrv, triggered by 927 (ls) 
Jan 17 10:40:38 raspberrypi3b systemd[1]: Mounting /home/pi/SANDISK8GB_ThumbDrv...
Jan 17 10:40:38 raspberrypi3b kernel: EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
Jan 17 10:40:38 raspberrypi3b systemd[1]: Mounted /home/pi/SANDISK8GB_ThumbDrv.
다음을 수행하여 USB 드라이브가 마운트 해제되었는지 확인할 수 있습니다. lsblk -f마운트 지점이 표시되지 않으면 장치가 마운트되지 않은 것입니다.
pi@raspberrypi3b:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb
└─sdb1      ext4   1.0   SANDISK8GB e5cb39a9-b041-4339-92f5-4172201a4b1a
mmcblk0
├─mmcblk0p1 vfat   FAT32 boot       C839-E506                               203M    19% /boot
└─mmcblk0p2 ext4   1.0   rootfs     568caafd-bab1-46cb-921b-cd257b61f505   26.3G     5% /

답변2

mount 대신 /media새 디렉토리를 생성하고 거기에 마운트하십시오. /media이는 대부분의 Linux에서 예약된 위치입니다.

관련 정보