fstab에 CIFS 마운트가 있는데 네트워크나 원격 서버에 문제가 발생하여 복구할 수 없는 한 잘 작동합니다. 장애 발생 시 공유가 자동으로 다시 마운트되기를 원하지만, 제가 아는 한 fstab은 이 기능을 지원하지 않습니다.
지금 내가 한 일은 그것을 autofs 마운트로 옮기는 것이었고 공정하게 말하면 잘 작동하지만 항상 autofs 마운트가 fstab에 비해 약간 느리다는 것을 알았습니다(명령줄에서 직감적으로 느꼈을 뿐입니다). 다른 솔루션에 대한 경험이 있는 사람이 있습니까?
답변1
재설치 중 기존 설치의 경우 /etc/fstab
다음 방법을 사용하여 강제로 재설치할 수 있습니다.
$ sudo mount -a -t cifs
모든 man mount
:
-t, --types vfstype
[...]
More than one type may be specified in a comma separated list.
The list of filesystem types can be prefixed with no to specify
the filesystem types on which no action should be taken. (This
can be meaningful with the -a option.) For example, the command:
mount -a -t nomsdos,ext
mount -a -t cifs
그런 다음 예약된 시간에 따라 명령이 실행 되도록 하는 쉘 스크립트를 체크인 하거나 inotify
다른 방법을 사용하여 설치 상태를 확인하고 설치에 실패한 것으로 감지되면 mount ..
위에 제공한 명령을 실행할 수 있습니다. .
답변2
자동 설치(및 재설치)systemd
이 예에서는 우리의 지분이 "대용량 저장 부하"
systemd
(대부분의 튜토리얼에서는 다루지 않는 파일 경로와 유닛 파일 이스케이프를 잘 설명하기 때문입니다)
- 마운트 지점을 만듭니다.
sudo mkdir -p "/mnt/Loads o' Big-Storage" sudo chown -R "$(whoami)":"$(whoami)" "/mnt/Loads o' Big-Storage"
systemd-escape --path
파일 이름을 만드는 데 사용됩니다.mount
.my_systemd_mountfile="$( systemd-escape --path "/mnt/Loads o' Big-Storage" )" echo "${my_systemd_mountfile}"
mnt-Loads\x20o\x27\x20Big\x2dStorage
/etc/system/system/
다음 명령을 사용하여 파일을 만듭니다.단어파일 경로 내용(이스케이프 없음)sudo vim "/etc/system/system/${my_systemd_mountfile}.mount"
[Unit] Description=My CIFs Media Mounter Requires=network-online.target After=network-online.service [Mount] What=//192.168.2.200/Loads o' Big-Storage Where=/mnt/Loads o' Big-Storage Options=username=foo-user,password=foo-secret Type=cifs [Install] WantedBy=multi-user.target EOF
- 해당
.automount
파일을 만듭니다.sudo vim "/etc/system/system/${my_systemd_mountfile}.automount"
[Unit] Description=My CIFs Media Automounter [Automount] Where=/mnt/Loads o' Big-Storage [Install] WantedBy=multi-user.target
- 서비스를 로드하고 활성화합니다.
sudo systemctl daemon-reload sudo systemctl enable "${my_systemd_mountfile}".automount sudo systemctl start "${my_systemd_mountfile}".automount
문제 해결
문제가 발생하면 journalctl
자체 추천보다 더 나은 로그 정보가 있습니다 systemd status
.
sudo journalctl -xe "${my_systemd_mountfile}".mount