Tidak bisa mendapatkan drive jaringan CIFS untuk dipasang saat boot

22

Saya telah menambahkan bagian di fstab untuk mengakses drive jaringan dengan semua file saya di ... fstab terlihat seperti:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
//192.168.1.73/disk1 /media/disk1 cifs username=pi,password=raspberry,_netdev,uid=1000,gid=1000,iocharset=utf8, 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

Ketika saya menjalankan sudo mount -adengan drive jaringan tunggangan berhasil dan saya bisa melakukan cd /media/disk1itu lsyang benar memberi saya daftar semua folder pada kata drive jaringan.

Namun, setelah me-reboot pi ketika saya cdke lokasi itu dan lari lslagi, tidak ada apa-apa di sana. Saya harus menjalankan sudo mount -alagi secara manual , yang kemudian memasang drive.

Saya telah melihat ini dilaporkan berkali-kali di forum lain, dan konsensus tampaknya bahwa tunggangan di fstab terjadi terlalu dini - sebelum jaringan telah didirikan. Saya sudah mencoba menerapkan hal-hal yang saya pahami - tetapi sejujurnya banyak yang terlintas di kepala saya. Saya telah menambahkan _netdevbaris di fstab, saya telah menambahkan rootdelay=10ke /boot/cmdline.txt, saya telah menginstal networkmanager ... semua ini tidak membantu.

Jadi saya menoleh kepada Anda, tentang siap untuk membuang pi ke luar jendela - diikuti oleh saya sendiri. Bantuan, sangat dihargai.

Luke Twomey
sumber

Jawaban:

9

Saya sarankan Anda menambahkan mount ke root atau crontab pengguna Anda.

Mengingat Anda menggunakan sudo, crontab root tampaknya yang paling tepat.

sudo crontab -e # untuk mengedit root crontab

Tambahkan entri @reboot ke crontab. Anda memerlukan garis seperti

@reboot (tidur 30; / bin / mount / media / disk1) &

Itu akan menunggu selama 30 detik sebelum memasang disk.

joan
sumber
1
Maaf atas waktu yang dibutuhkan untuk sampai ke sini, saya baru saja memiliki kesempatan untuk bermain-main dengan ini lagi. Saya sangat lega mengatakan solusi Anda bekerja dengan sempurna. Terima kasih banyak atas bantuan Anda.
Luke Twomey
ini benar-benar meningkat tetapi bagaimana kita meng-unmount secara prosedural saat shutdown?
Ciasto piekarz
14

Saya juga memiliki masalah yang sama tentang pemasangan otomatis drive jaringan saat boot. Saya mencoba menambahkan mount -aperintah /etc/rc.localsetelah mengedit /etc/fstabtetapi tidak berhasil. Alasan tidak berfungsi adalah karena jaringan tidak siap sebelum mount -adieksekusi.

Seperti yang disebutkan orang lain masalahnya adalah drive fstab sudah dipasang bahkan sebelum jaringan menyala. Untuk memastikan bahwa jaringan siap selama boot, ada opsi Wait for Network at Bootdi raspi-config.

menjalankan

sudo raspi-config

dan atur Wait for Network at Bootopsi ke Slow wait for network connection before completing bootdan reboot. Tentu saja waktu boot mungkin terpengaruh tetapi jika itu tidak kritis, metode ini dapat digunakan.

Setelah reboot, Anda dapat memeriksa apakah drive jaringan dipasang secara otomatis: periksa cepat melalui ls /media/DRIVE_NAMEataudf

tertidur
sumber
Ini tentu saja perbaikan yang bekerja untuk saya, Dengan pembaruan terbaru rpi3 pada November 2016
ChrisAdmin
Saya lebih suka menggunakan /etc/rc.local mount -asolusinya, tapi jangan lupa tidur dulu. Lihat jawaban saya, saya baru saja diposting di sini: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples
4

Perbarui catatan, melihat bahwa ini muncul di Google. Saya mengalami serangkaian frustrasi yang sama dengan pemasangan Airport Time Capsule saya. Saya menjalankan Raspberry Pi 3B + di Rasbian Stretch yang dirilis 14 Maret 2018 dengan GUI standar.

Ini adalah baris kode fstab saya:

//100.10.10.1/Data /mnt/timecapsule cifs username=********, password=******, vers=1.0, rw, uid=1000, iocharset=utf8, sec=ntlm 0 0

Beberapa perubahan tampaknya terjadi seiring waktu:

  1. Anda perlu menambahkan pernyataan "vers = 1.0"
  2. _netdev tidak melakukan apa-apa pada sistem file CFIS, hanya bekerja pada sistem file NFS (seperti dicatat oleh Gabriel Staples di bawah)
  3. "user =" dan "pass =" sekarang harus masing-masing menjadi "username =" dan "password ="
  4. Terakhir, sekarang ada kotak "Tunggu jaringan" yang dapat dicentang di Raspberry Pi Configuration Utility, yang memecahkan masalah mount saya saat boot.

Setelah 2 hari berjuang, milik saya akhirnya dipasang dan melakukannya saat boot!

Jacques Gerber
sumber
1

Trik lain untuk mengatasi masalah ini adalah dengan menambahkan perintah di bagian bawah file /etc/rc.local:

mount -a

Setelah reboot Anda dapat memverifikasi apakah semuanya baik-baik saja dengan mengetikkan perintah:

df -h

dan Anda akan melihat sesuatu seperti ini:

pi@raspberrypi ~ $ df -h
File system      Dim. Usati Dispon. Uso% Montato su
/dev/root        7,2G  6,3G    584M  92% /
devtmpfs         119M     0    119M   0% /dev
tmpfs             25M  412K     25M   2% /run
tmpfs            5,0M     0    5,0M   0% /run/lock
tmpfs             49M     0     49M   0% /run/shm
/dev/mmcblk0p1    56M   20M     37M  36% /boot
//192.168.1.1/ws 466G  452G     14G  98% /mnt/winshare  <----------
Kristen
sumber
0

The _netdevpilihan di /etc/fstabtampaknya tidak melakukan apa-apa untuk cifs saham. Sumber daya ini ( https://help.ubuntu.com/community/Fstab ) tampaknya mengkonfirmasi bahwa ketika dikatakan "_netdev - ini adalah perangkat jaringan, pasang setelah memunculkan jaringan. Hanya valid dengan fstype nfs ".

Saya lebih suka menggunakan /etc/rc.localfile untuk memperbaiki ini, dengan tidur dan kemudian memanggil mount -adi dalamnya, daripada menggunakan crontabatau Wait for network at bootopsi di raspi-config. Namun, untuk /etc/rc.localmemperbaikinya, jangan lupa tidur, seperti yang dijelaskan di bawah ini.

Apa yang telah saya lakukan untuk memperbaiki masalah ini (pada Pi3 saya) adalah memodifikasi /etc/rc.localuntuk tidur 20 detik (dengan menelepon sleep 20) dan kemudian menelepon mount -a. Dengan cara ini, meskipun jaringan belum terhubung ketika sistem pertama kali membaca file fstab, jadi mount gagal kemudian, saya memaksa sistem untuk menunggu 20 detik di sini (memberikan waktu jaringan untuk terhubung) maka saya memaksanya untuk menelepon mount -alagi untuk memasang semua drive dalam fstabfile.

/etc/rc.localSeperti inilah tampilan file saya sekarang:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
#GS notes: a *minimum* of sleep 10 is required for the mount below to work on the Pi 3; it failed with sleep 5, but worked with sleep 10, sleep 15, and sleep 30
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

Selesai! Sekarang berfungsi dengan baik untuk saya!

Referensi:

Gabriel Staples
sumber
0

Dalam kasus saya, saya membeli Raspberry Pi 3 dan menginstal Raspbian Stretch , saya mengedit fstab saya dengan pengaturan drive jaringan favorit saya seperti ini:

//172.30.0.54/mnt/anim /mnt/share/Z cifs  username=frieza,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/V /mnt/share/V cifs  username=goku,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/M /mnt/share/M cifs  username=piccolo,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/O /mnt/share/O cifs  username=drbrief,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/R /mnt/share/R cifs  username=vegeta,password=meh,uid=1000,gid=1000,vers=2.0 0 0

Jadi, setiap kali saya menggunakan:

sudo mount -a

Setiap drive yang tercantum dalam fstab akan dipasang secara otomatis, kemudian saya menambahkan ini ke rc.local dan beberapa tempat lain sehingga saya dapat menikmati konten drive ini saat startup, singkatnya, tidak ada yang berhasil sampai saya memutuskan untuk menambahkan baris ke root. crontab suka dengan:

sudo crontab -e

Memilih editor saya (nano dalam kasus y) Kemudian menambahkan baris ini di bagian bawah

@reboot (sleep 20;/bin/mount -a)&

Semuanya bekerja dengan baik dalam kasus saya setelah reboot. Semoga ini bisa membantu kalian.

CATATAN:

Jika Anda mengalami masalah, Anda selalu dapat menjalankan:

service cron status

Dan itu akan memberi Anda petunjuk tentang apa yang berlari dan apa yang tidak

Xedret
sumber
0

Anda dapat menambahkan atribut _netdev dan comment = systemd.automount di fstab dan semuanya bekerja dengan baik untuk saya saat reboot. Saya terbiasa menghadapi masalah yang sama saat reboot.

\\network_shared_location\directory /your_mount_location/mount_directory cifs _netdev,username=<your_username>,password=<your_password>,workgroup=<YOUR_WORKGROUP>,users,auto,user_xattr,comment=systemd.automount 0 0
Pradeep Prakash
sumber
-1

Saya tahu ini adalah jawaban yang agak terlambat, tetapi saya memiliki masalah yang sama dan itu berkaitan dengan jaringan yang tidak aktif ketika fstabdipanggil. Saya mencoba yang crontabpertama dan itu berhasil ok tetapi pikir itu agak berantakan ...

Ada posting yang bagus di sini yang dijalankan dengan menggunakan skrip init.duntuk menjalankan mount seperti pada saat boot ... ini berfungsi baik untuk saya sekarang.

Bicklp
sumber
1
Dapatkah Anda mengedit jawaban Anda untuk memberikan perincian yang menonjol dari tautan Anda, seandainya kematian tautan di masa depan .
Greenonline