서비스를 통해 자동 마운트 + 서비스가 폴더를 자동으로 마운트하지 않습니다

서비스를 통해 자동 마운트 + 서비스가 폴더를 자동으로 마운트하지 않습니다

Redhat 버전 7.2에서 다음 서비스를 만듭니다.

more nfsshare.mount
[Unit]
  Description=nfs mount script
  Requires=network-online.target
  After=network-online.service

[Mount]

  What=master1:/nfs
  Where=/nfsshare
  Options=noauto,user,rw,group
  Type=nfs
  TimeoutIdleSec=10

[Install]
  WantedBy=multi-user.target

서비스를 다시 시작하면 마운트 지점이 그대로 마운트됩니다.

master1:/nfs             41932800 6559744  35373056  16% /nfsshare

이제 /nfsshare 폴더를 마운트 해제합니다.

umount /nfsshare

이제 /nfsshare 폴더가 다시 마운트되고 서비스가 자동으로 폴더를 마운트할 것으로 예상됩니다.

하지만 아무 일도 일어나지 않고 폴더가 마운트되지 않습니다.

여기서 내가 어디서 잘못됐나요?

나도 노력해

 more nfsshare.automount
[Unit]
  Description=nfs mount script
  Requires=network-online.target
  After=network-online.service

[Automount]
  What=master1:/nfs
  Where=/nfsshare
  Options=noauto,user,rw,group
  Type=nfs
  TimeoutIdleSec=10

[Install]
  WantedBy=multi-user.target

하지만 서비스를 다시 시작한 후에도 폴더를 마운트할 수 없습니다.

답변1

올바른 설정은 장치에 다음을 nfsshare.mount포함하는 것입니다.

[Unit]
Description=Mount nfsshare
Wants=network-online.target
After=network-online.target

[Mount]
What=master1:/nfs
Where=/nfsshare
Options=rw,group
Type=nfs

다음을 포함하는 장치 의 경우 nfsshare.automount:

[Unit]
Description=Automount nfsshare
Wants=network-online.target
After=network-online.target

[Automount]
Where=/nfsshare
TimeoutIdleSec=10

[Install]
WantedBy=multi-user.target

일반적으로 해당 장치를 활성화하려고 합니다 .automount.

$ sudo systemctl enable nfsshare.automount

이 설정을 사용하면 시작 후(NFS 공유에 액세스하는 실행 중인 데몬이 없다고 가정) 공유가아니요설치되어 있습니다. 그러나 일단 액세스되면(예 ls /nfsshare: ) 필요에 따라 설치됩니다. 10초 동안 마운트된 상태로 유지된 후 마운트 해제되지만 다시 액세스하면 다시 마운트됩니다.

이 두 장치는 함께 .mount작동하여 .automount이 동작을 유발합니다. 장치 .automount는 자동 마운트를 위한 마운트 지점 디렉토리를 설정할 위치만 알면 됩니다. 디렉터리에 액세스하면 동일한 이름(동일한 경로)을 가진 유닛에 대한 요청을 트리거 .mount하고 계속하기 전에 해당 유닛이 시작될 때까지 기다립니다.

보다자동 설치 장치 매뉴얼 페이지자세한 내용은.


귀하의 설정에 어떤 다른 변경 사항을 적용했습니까?

network-online.target네트워크 종속성의 경우 존재 하지 않는 것을 사용해야 합니다 .service. 나는 또한 Wants=이 경우에 권장되는 지시어인 를 사용하고 있습니다(참조이 위키 페이지네트워크 목표에 대한 보다 심층적인 논의입니다. )

설치 옵션에서 noauto및 를 제거했습니다 user. 해당 옵션은 에서만 사용할 수 있기 때문입니다 . 또한 권한이 없는 사용자가 util을 호출하여 설치하도록 허용하는 대신 /etc/fstab실제로 거기에 있고 싶지 않고 자동으로 설치되도록 하는 것이 좋습니다. , 자동으로 더 좋은 것을 설치합니다.usermount

어느 유닛에서 받는 지시사항이 다르기 때문에( Where=두 유닛에서 받는 지시사항은 제외) 유효한 지시사항만 보관합니다.

이 장치를 활성화할 필요가 없으므로 [Install]이 장치에 대한 섹션을 제거했습니다 . 부팅 시 장치가 시작되도록 장치를 .mount활성화하기만 하면 .automount장치는 필요할 때(액세스 중인 대상 디렉터리에 따라) 설치 장치를 시작(및 종료)하는 작업을 처리합니다.


을 사용할 수도 있습니다 . 실제로 설치 단위를 생성하는 것보다 구성을 /etc/fstab위해 일반적으로 systemd를 권장합니다 ./etc/fstab

자동 마운트를 위해 해야 할 일은 x-systemd.automount해당 파일 시스템 항목에 대한 마운트 옵션 목록에 의사 옵션을 추가하는 것뿐입니다. (이 경우에는 일반적으로 /etc/fstab해당 항목도 포함하려고 합니다.)noauto

바라보다Arch Linux 위키의 이 섹션자세한 내용은. (이 중 어느 것도 Arch Linux에만 국한된 것이 아니며 RHEL 7에서도 정확히 동일하게 작동합니다.)

관련 정보