Jak działa opcja montowania _netdev w / etc / fstab?
24
Chciałbym wiedzieć, jaki jest dokładny mechanizm (implementacja) zastosowany do odroczenia montowania do momentu, gdy interfejs sieciowy zostanie uruchomiony, gdy zostanie użyta _netdevopcja /etc/fstab?
Czy systemdzmienia to zachowanie?
Ponadto, co zapewnia delay_connectopcja sshfs, a czego _netdevnie?
_netdev
System plików znajduje się na urządzeniu, które wymaga dostępu do sieci (używane, aby uniemożliwić systemowi montowanie tych systemów plików, dopóki sieć nie zostanie włączona w systemie).
/etc/init.d/mountall.shSkrypt startowy montuje tylko lokalne systemy plików:
mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
Inne systemy plików są montowane przez osobne skrypty inicjujące, takie jak na przykład /etc/init.d/mountnfs.sh, które deklarują (za pomocą nagłówków LSB) swoją zależność $network. W ten sposób zostaną one zaplanowane później, po uruchomieniu sieci, ale mountall.shmogą działać znacznie wcześniej.
systemd
Lokalne jednostki montowania są wciągane przez local-fs.target, a zdalne przez remote-fs.target. systemd-fstab-generatorskanuje /etc/fstab, generuje jednostki montażu i przypisuje je do powyższych celów na podstawie warunków podobnych do powyższych.
delay_connect
Ta opcja oznacza, że sshfs nie zainicjuje połączenia SSH ze zdalnym serwerem w czasie montowania, ale zrobi to tylko przy pierwszej operacji systemu plików, która tego wymaga. Opóźnia to raportowanie błędów, ale w niektórych przypadkach może być przydatnym obejściem, na przykład jeśli twój system init nie ma wystarczających informacji, aby poprawnie zamówić operację montowania. „Sieć” będąca „uruchomiona” jest dość luźnym terminem i nawet jeśli można dodać dowolne dodatkowe zależności do montowania jednostek, co nie pomaga, jeśli zdarzenie wyzwalające nie jest częścią transakcji rozruchowej (w języku systemowym).
Mówisz więc, że _netdevnie ma to być argumentem przekazywanym do procesu wykonującego mount (i który jest specyficzny dla typu mount jak ext4/btrfs/cifs/fuse), ale powinien być czytany przez inne procesy / skrypty, które na podstawie tej flagi decydują, kiedy podczas procesu rozruchu te podłączenia powinny zostać wykonane. Tak? Jeśli tak, to podejrzewam, że jest to powód, dla którego ten argument zaczyna się od podkreślenia, aby odróżnić go od innych argumentów formalnych .
Piotr Dobrogost
Tak. Jeśli przekażesz _netdevopcję do mountpolecenia, będzie ona widoczna, /proc/mountsale nie będzie miała innego efektu.
Ferenc Wágner,
Pytanie bonusowe; czy to gdzieś jest udokumentowane?
Piotr Dobrogost
1
Podręcznik instalacji zawiera: „OPCJE MONTAŻU NIEZALEŻNE OD PLIKU - Niektóre z tych opcji są przydatne tylko wtedy, gdy pojawiają się w /etc/fstabpliku.” Cóż, _netdev(udokumentowane nieco później) jest tego dobrym przykładem.
Jednostki montowania odnoszące się do lokalnych i sieciowych systemów plików wyróżniają się specyfikacją typu systemu plików. W niektórych przypadkach to nie wystarcza (dla wierzchowców opartych urządzenia blokowego przykład sieciowych, takich jak iSCSI), w którym to przypadku _netdev mogą być dodawane do zamontowania opcji ciąg jednostki, której siły Systemd rozważyć urządzenie zamontować zamontować sieć.
_netdev
nie ma to być argumentem przekazywanym do procesu wykonującego mount (i który jest specyficzny dla typu mount jakext4/btrfs/cifs/fuse
), ale powinien być czytany przez inne procesy / skrypty, które na podstawie tej flagi decydują, kiedy podczas procesu rozruchu te podłączenia powinny zostać wykonane. Tak? Jeśli tak, to podejrzewam, że jest to powód, dla którego ten argument zaczyna się od podkreślenia, aby odróżnić go od innych argumentów formalnych ._netdev
opcję domount
polecenia, będzie ona widoczna,/proc/mounts
ale nie będzie miała innego efektu./etc/fstab
pliku.” Cóż,_netdev
(udokumentowane nieco później) jest tego dobrym przykładem.Od
man systemd.mount
dla wersji 231 systemud:źródło
Upstart/Udev
W przypadku systemów
upstart
i / lubudev
opartych jest to nieco inna.Wygląda na
udev
to, że nadal będzie próbował zamontować systemy plików NFS inetfs
jest siatką bezpieczeństwa na wypadek awarii.Proszę popraw mnie jeżeli się mylę. tak czy inaczej, ta odpowiedź dotyczy tylko niektórych starszych systemów (Ubuntu 14.04 LTS, RHEL6).
źródło