Bagaimana cara me-mount opsi _netdev di / etc / fstab bekerja?
24
Saya ingin tahu apa mekanisme yang tepat (implementasi) yang digunakan untuk menunda pemasangan sampai setelah antarmuka jaringan aktif ketika seseorang menggunakan _netdevopsi /etc/fstab?
Apakah systemdmengubah perilaku ini?
Juga, apa delay_connectpilihan untuk sshfs menyediakan apa yang _netdevtidak?
_netdev
Filesystem berada pada perangkat yang memerlukan akses jaringan (digunakan untuk mencegah sistem dari mencoba me-mount sistem file ini sampai jaringan telah diaktifkan pada sistem).
The /etc/init.d/mountall.shskrip init tunggangan filesystem lokal saja:
mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
Sistem file lain dipasang oleh skrip init yang terpisah, seperti misalnya /etc/init.d/mountnfs.sh, yang menyatakan (melalui header LSB) ketergantungannya $network. Jadi ini bisa dijadwalkan nanti, setelah jaringan dinyalakan, sementara mountall.shbisa berjalan jauh lebih awal.
systemd
Unit pemasangan lokal ditarik oleh local-fs.target, yang jauh oleh remote-fs.target. systemd-fstab-generatormemindai /etc/fstab, menghasilkan unit mount dan menugaskan ini ke target di atas berdasarkan kondisi yang mirip dengan di atas.
delay_connect
Opsi ini berarti bahwa sshfs tidak akan memulai koneksi SSH ke server jarak jauh saat mount, tetapi hanya akan melakukannya pada operasi sistem file pertama yang benar-benar membutuhkannya. Ini menunda pelaporan kesalahan, tetapi mungkin merupakan solusi yang berguna dalam beberapa kasus, misalnya jika sistem init Anda belum mendapatkan informasi yang cukup untuk memesan operasi pemasangan dengan benar. "Jaringan" sedang "naik" adalah istilah yang agak longgar , dan meskipun orang dapat menambahkan dependensi tambahan sewenang - wenang ke unit mount yang tidak membantu jika peristiwa pemicu bukan bagian dari transaksi bootup (dalam bahasa sistemd).
Jadi, Anda mengatakan bahwa _netdevitu tidak dimaksudkan sebagai argumen yang dilewatkan ke proses yang melakukan mount (dan yang spesifik untuk tipe mount seperti ext4/btrfs/cifs/fuse) tetapi dimaksudkan untuk dibaca oleh proses / skrip lain yang berdasarkan pada flag ini memutuskan kapan selama proses boot mount ini harus dieksekusi. Iya nih? Jika demikian maka saya curiga inilah alasan mengapa argumen ini dimulai dengan garis bawah sehingga untuk membedakannya dari argumen formal lainnya .
Piotr Dobrogost
Iya nih. Jika Anda meneruskan _netdevopsi ke mountperintah, itu akan terlihat /proc/mountstetapi tidak memiliki efek lain.
Ferenc Wágner
Pertanyaan bonus; apakah ini didokumentasikan di suatu tempat?
Piotr Dobrogost
1
The me-mount pengguna berisi: "SISTEM BERKAS-INDEPENDEN MOUNT PILIHAN - Beberapa pilihan ini hanya berguna ketika mereka muncul dalam /etc/fstab. File" Nah, _netdev(didokumentasikan agak lambat) adalah contoh yang bagus untuk ini.
Dari man systemd.mountuntuk versi 231 dari systemd:
Mount unit yang mengacu pada sistem file lokal dan jaringan dibedakan oleh spesifikasi tipe sistem file mereka. Dalam beberapa kasus ini tidak cukup (misalnya mount berbasis perangkat blok jaringan, seperti iSCSI), dalam hal ini _netdev dapat ditambahkan ke string opsi mount unit, yang memaksa systemd untuk mempertimbangkan unit mount sebagai mount jaringan.
_netdev
itu tidak dimaksudkan sebagai argumen yang dilewatkan ke proses yang melakukan mount (dan yang spesifik untuk tipe mount sepertiext4/btrfs/cifs/fuse
) tetapi dimaksudkan untuk dibaca oleh proses / skrip lain yang berdasarkan pada flag ini memutuskan kapan selama proses boot mount ini harus dieksekusi. Iya nih? Jika demikian maka saya curiga inilah alasan mengapa argumen ini dimulai dengan garis bawah sehingga untuk membedakannya dari argumen formal lainnya ._netdev
opsi kemount
perintah, itu akan terlihat/proc/mounts
tetapi tidak memiliki efek lain./etc/fstab
. File" Nah,_netdev
(didokumentasikan agak lambat) adalah contoh yang bagus untuk ini.Dari
man systemd.mount
untuk versi 231 dari systemd:sumber
Upstart/Udev
Untuk
upstart
dan / atauudev
sistem berbasis ini sedikit berbeda.Kelihatannya
udev
masih akan mencoba untuk me-mount sistem file NFS dannetfs
merupakan jaring pengaman untuk saat itu gagal.Harap perbaiki saya jika saya salah. bagaimanapun juga, jawaban ini hanya relevan untuk beberapa sistem warisan terbaru (Ubuntu 14.04 LTS, RHEL6).
sumber