fstab 마운트 네트워크 대기

fstab 마운트 네트워크 대기

시스템 시작 후( 을 사용하여 systemd) CIFS 장치를 마운트하려고 했으나, 네트워크가 구축되기 전에 시스템이 마운트를 시도하여 실패했습니다.

시스템에 로그인한 후 사용할 수 있습니다 sudo mount -a.

Arch에게 네트워크를 사용할 수 있을 때까지 기다리라고 어떻게 말합니까?

답변1

_netdev설치 옵션을 추가하는 /etc/fstab것으로 충분할 수 있습니다.

로컬 및 네트워크 파일 시스템을 참조하는 마운트 장치는 파일 시스템 유형 사양으로 구별됩니다. 어떤 경우에는 이것만으로는 충분하지 않습니다(예: iSCSI와 같은 네트워크 블록 장치 기반 마운트). 이 경우 _netdev를 장치의 마운트 옵션 문자열에 추가하여 systemd를 강제로 장치가 네트워크 마운트로 처리되도록 할 수 있습니다.

systemd마운트 항목과 다른 장치 간의 명시적인 순차적 종속성 도 지원됩니다. x-systemd.after=network-online.target_netdev가 충분하지 않은 경우 마운트 옵션을 추가하면 작동할 수 있습니다.

바라보다systemd 설치 장치 문서자세한 내용은.

답변2

해당 항목 _netdev에 추가하세요 . /etc/fstab"mount(8)" 매뉴얼 페이지에서:

_netdev 파일 시스템은 네트워크 액세스가 필요한 장치에 상주합니다(시스템에서 네트워킹이 활성화되기 전에 시스템이 이러한 파일 시스템을 마운트하지 못하도록 방지하는 데 사용됨).

답변3

약간 해킹적이지만 WINS/DNS가 아직 실행되지 않기 때문에 모든 _netdev 및 x-systemd 옵션이 도움이 되지 않습니다.
루트 crontab 항목으로 시작했습니다.

@reboot /usr/bin/mount -a

이는 시작 프로세스 후반에 실행됩니다.
따라서 systemd가 처음에 fstab에 정의된 CIFS 마운트를 마운트하는 데 실패하더라도 나중에 mount -aa가 다시 실행되고 이번에는 마운트가 성공합니다.

답변4

작동할 수도 있고 작동하지 않을 수도 있는 시스템적 가정과 레거시 옵션에 맞서 싸우는 대신 서비스와 탑재 대상을 이에 종속되게 만드세요.

내 SMB 공유는 192.168.1.2에서 마운트되었습니다. 상황에 맞게 변경하십시오.

# /etc/systemd/system/wait-for-ping.service
[Unit]
Description=Blocks until it successfully pings 192.168.1.2
After=network-online.target

[Service]
ExecStartPre=/usr/bin/bash -c "while ! ping -c1 192.168.1.2; do sleep 1; done"
ExecStart=/usr/bin/bash -c "echo good to go"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

다음을 통해 서비스를 활성화합니다.

sudo systemctl daemon-reload
sudo systemctl enable --now wait-for-ping.service

그런 다음 fstab을 다음과 같이 편집하여 최종 마운트 옵션으로 포함시킵니다.

x-systemd.after=wait-for-ping.service

다시 실행하면 systemctl daemon-reload설치 대상에 올바른 옵션이 설정되어 있는지 확인할 수 있습니다. 내 마운트 대상은 입니다 /mnt/media. 생성될 예정 mnt-media.mount이므로 다음을 수행하십시오.

systemctl cat mnt-media.mount

제목은 다음과 같아야 합니다.

# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=wait-for-ping.service

# ... rest of file follows ...

컴퓨터를 다시 시작하면 성공적인 ping을 기다리는 설치를 찾을 수 있습니다.

관련 정보