Impossibile ottenere un'unità di rete CIFS da montare all'avvio


22

Ho aggiunto una condivisione in fstab per accedere a un'unità di rete con tutti i miei file su ... fstab si presenta come:

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

Quando eseguo sudo mount -ai supporti di unità di rete con successo e che posso fare cd /media/disk1, allora lsche mi dà correttamente un elenco di tutte le cartelle su detta unità di rete.

Tuttavia, dopo aver riavviato il pi quando mi trovo cdin quella posizione e corro di lsnuovo, non c'è nulla. Devo eseguire di sudo mount -anuovo manualmente , che quindi monta l'unità.

Ho visto ciò segnalato molte volte su altri forum e il consenso sembra essere che i montaggi in fstab stanno avvenendo troppo presto - prima che la rete fosse istituita. Ho cercato di attuare le cose che capisco, ma a dire il vero molte cose sono finite. Ho aggiunto _netdevalla riga in fstab, ho aggiunto rootdelay=10in /boot/cmdline.txt, ho installato networkmanager ... niente di tutto ciò ha aiutato.

E così mi giro verso di te, pronto a lanciare il pi dalla finestra - seguito da me stesso. Qualsiasi aiuto, molto apprezzato.

Risposte:


9

Ti suggerisco di aggiungere il mount al root o al crontab dell'utente.

Dato che al momento stai usando sudo, il crontab di root sembra essere il più appropriato.

sudo crontab -e # per modificare il crontab di root

Aggiungi una voce @reboot al crontab. Hai bisogno di una linea come

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

Aspetteranno 30 secondi prima di montare il disco.


1
Mi scuso per il tempo impiegato per arrivare a questo, ho appena avuto la possibilità di giocarci di nuovo. Sono molto sollevato nel dire che la tua soluzione ha funzionato perfettamente. Grazie mille per il tuo aiuto.
Luke Twomey,

questo si monta di sicuro, ma come si smonta proceduralmente allo spegnimento?
Ciasto piekarz,

14

Ho anche avuto lo stesso problema relativo al montaggio automatico di un'unità di rete all'avvio. Ho provato ad aggiungere il mount -acomando /etc/rc.localdopo aver modificato il /etc/fstabma invano. Il motivo per cui non funziona è che la rete non è pronta prima che mount -avenga eseguita.

Come altri hanno già detto, il problema è che le unità fstab sono montate anche prima che la rete sia attiva. Per essere sicuri che la rete sia pronta durante l'avvio, c'è un'opzione Wait for Network at Bootin raspi-config.

correre

sudo raspi-config

e imposta l' Wait for Network at Bootopzione su Slow wait for network connection before completing boote riavvia. Naturalmente il tempo di avvio potrebbe essere influenzato, ma se questo non è critico, questo metodo può essere utilizzato.

Dopo il riavvio è possibile verificare che l'unità di rete sia montata automaticamente: controllo rapido tramite ls /media/DRIVE_NAMEodf


Questa è sicuramente la soluzione che ha funzionato per me, con gli ultimi aggiornamenti di
rpi3 a

Preferisco usare la /etc/rc.local mount -asoluzione, ma non dimenticare di dormire prima. Vedi la mia risposta che ho appena pubblicato qui: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples

4

Note di aggiornamento, visto che questo è venuto su Google. Ho sofferto la stessa serie di frustrazioni durante il montaggio della mia Airport Time Capsule. Sto eseguendo Raspberry Pi 3B + su Rasbian Stretch rilasciato il 14 marzo 2018 con GUI standard.

Ecco la mia riga di codice fstab:

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

Alcune modifiche sembrano essere avvenute nel tempo:

  1. Devi aggiungere l'istruzione "vers = 1.0"
  2. _netdev non fa nulla sul file system CFIS, funziona solo sul file system NFS (come notato da Gabriel Staples di seguito)
  3. "user =" e "pass =" ora dovrebbero essere rispettivamente "username =" e "password ="
  4. Infine, ora esiste una casella "Attendi rete" che può essere selezionata nell'Utilità di configurazione Raspberry Pi, che ha risolto il problema con il mio mount all'avvio.

Dopo 2 giorni di lotte, il mio è finalmente montato e lo fa all'avvio!


1

Un altro trucco per risolvere questo problema è quello di aggiungere in fondo al file /etc/rc.localil comando:

mount -a

Dopo il riavvio è possibile verificare se è tutto ok digitando il comando:

df -h

e vedrai qualcosa del genere:

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  <----------

0

L' _netdevopzione in /etc/fstabnon sembra fare nulla per le azioni cifs. Questa risorsa ( https://help.ubuntu.com/community/Fstab ) sembra confermare che quando dice "_netdev - questo è un dispositivo di rete, montalo dopo aver aperto la rete. Valido solo con fstype nfs ".

Preferisco utilizzare il /etc/rc.localfile per risolvere questo problema, dormendo e quindi chiamando al mount -asuo interno, anziché utilizzare crontabo l' Wait for network at bootopzione in raspi-config. Tuttavia, per far funzionare la /etc/rc.localcorrezione, non dimenticare di dormire, come spiegato di seguito.

Quello che ho fatto per risolvere questo problema (sul mio Pi3) è modificare la modalità sospensione /etc/rc.local20 secondi (chiamando sleep 20) e quindi chiamare mount -a. In questo modo, anche se la rete NON è ancora connessa quando il sistema legge per la prima volta il file fstab, quindi il montaggio fallisce, costringo il sistema ad attendere 20 secondi qui (dando alla rete il tempo di connettersi) quindi lo costringo a chiamare di mount -anuovo per montare tutte le unità nel fstabfile.

Ecco /etc/rc.localcome appare ora il mio file:

#!/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

Fatto! Ora funziona perfettamente per me!

Riferimenti:


0

Nel mio caso ho comprato un Raspberry Pi 3 e installato Raspbian Stretch , ho modificato il mio fstab con la mia disposizione preferita di unità di rete come questa:

//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

Quindi ogni volta che ho usato:

sudo mount -a

Ogni unità elencata in fstab verrebbe montata automaticamente, quindi l'ho aggiunta a rc.local e in molti altri posti in modo che potessi godermi il contenuto di queste unità all'avvio, per farla breve, nulla ha funzionato fino a quando non ho deciso di aggiungere una linea alla radice crontab piace a:

sudo crontab -e

Scegli il mio editor (nano in y case) Quindi ho aggiunto questa riga in fondo

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

Tutto ha funzionato bene nel mio caso dopo il riavvio. Spero che questo ti aiuti ragazzi.

NOTA:

Se riscontri problemi, puoi sempre eseguire:

service cron status

E ti darà un suggerimento su cosa è successo e cosa no


0

Puoi aggiungere gli attributi _netdev e comment = systemd.automount in fstab e al mio riavvio tutto funziona bene per me. Ho dovuto affrontare lo stesso problema al riavvio.

\\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

-1

So che questa è una risposta un po 'tardiva, ma ho avuto lo stesso problema ed era dovuto al fatto che la rete non era attiva quando è fstabstata chiamata. Ho provato il crontabprimo e ha funzionato bene, ma ho pensato che fosse un po 'disordinato ...

C'è un ottimo post qui che scorre usando uno script init.dper eseguire il mount come all'avvio ... ora funziona alla grande per me.


1
Puoi modificare la tua risposta per fornire i dettagli salienti del tuo link, in caso di morte futura del link .
Greenonline,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.