Come configurare per registrare i dati per pendrive all'istante?


12

Se modifico i file sul mio pendrive e poi li rimuovo fisicamente, i dati non verranno registrati. Devo fare clic su "espulsione", quindi il led inizia a lampeggiare e i dati iniziano a essere registrati.

Come posso cambiarlo, in modo che i dati vengano registrati istantaneamente quando vengono modificati?

aggiornamento: Ubuntu 11.10

In Ubuntu 11.10 ho scritto il file delle regole (dalla risposta di @enzotib ) e funziona, ma viene visualizzato il seguente messaggio quando provo a espellere / smontare:

inserisci qui la descrizione dell'immagine

(dovrei iniziare un'altra domanda per Ubuntu 11.10?)


2
Le prestazioni saranno inferiori poiché la cache di scrittura non viene più utilizzata. Smonta correttamente le partizioni usando le opzioni di espulsione / smontaggio o perderai i dati.
Lekensteyn,

4
È possibile utilizzare l' syncopzione durante il montaggio della partizione. Questo non è raccomandato in quanto aumenta drasticamente il numero di scritture sulla levetta.
organizzare il

2
@arrange come ubuntu fa l'automount, c'è un modo per metterlo synccome predefinito, quindi non ho bisogno di farlo ogni volta in un terminale? E sono consapevole che aumenterà drasticamente il numero di scritture, è ancora quello che voglio. Grazie!
Tom Brito,


@arrange l'ha visto, ma non è ancora una risposta completa ...
Tom Brito,

Risposte:


8

Seguendo la domanda (e la risposta) che @arrange mostra nel suo commento, creiamo un nuovo file

/etc/udev/rules.d/11-media-by-label-auto-mount.rules

e scrivici il seguente contenuto (vedi udev :: Mount sotto / media; usa l'etichetta della partizione se presente )

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime,sync"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,uid=1000,gid=1000,umask=002"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="media_by_label_auto_mount_end"

Ho apportato alcune piccole modifiche rispetto a quelle riportate sul sito web

  • aggiunta l' syncopzione aENV{mount_options}
  • ha modificato l' gid=100opzione in uid=1000,gid=1000, dove il numero è relativo all'ID usato e all'ID gruppo, come restituito da id -ueid -g

Il secondo ti rende il proprietario di tutti i file sulla partizione montata, quindi non possono sorgere problemi di autorizzazione. Ovviamente non è così se più di un singolo utente deve accedere ai file, ma questo può essere gestito in altri modi.

Per i filesystem non Windows, proprietario e gruppo sono metadati sul filesystem e non possono essere modificati da un'opzione di mount.

La nuova regola è immediatamente attiva ( udev utilizza inotify per rilevare i file di regole nuovi e modificati).

L'unità montata non si apre automaticamente in una finestra del file manager, come puoi vedere, e questo è difficile da ottenere, dato che il processo di montaggio è di proprietà di root e non ha accesso alla tua sessione di accesso grafica. Ma l'unità è sul desktop, quindi un semplice doppio clic lo aprirà.

Sfortunatamente non riesco a far smontare il desktop con il tasto destro del mouse, ma questo non è un grosso problema: avendo l' syncopzione attiva, puoi semplicemente scollegare il dispositivo e la regola udev si occupa di rimuovere la voce /proc/mountse rimuovere mount- punto.


Non ho potuto iniziare a scrivere questo how-to, grazie per averlo fatto;) E inoltre non sono riuscito a far smontare l'utente al lavoro, sembra che l' usersopzione sia valida solo nel fstabfile ... Questo non lo è un problema qui ("sincronizzazione"), ma per un how-to generale sarebbe.
organizzare il

Grazie per aver risposto. Sfortunatamente, dopo aver fatto quanto descritto, non sono stato in grado di creare, modificare o eliminare alcun file sul pendrive. Inoltre, non è più l'apertura automatica della finestra quando la collego. Qualche idea?
Tom Brito,

A proposito, ho considerato che l'estensione che hai digitato ".rule" è sbagliata e ho usato lo stesso degli altri file in quella cartella: ".rules".
Tom Brito,

La documentazione non parla di estensioni specifiche da utilizzare. A proposito, ho copiato male dal sito, quindi è meglio usarlo .rulesper sicurezza. Per il resto, vedi la risposta modificata.
enzotib,

Ciao, sono su Ubuntu 11.10 ora e c'è un comportamento diverso. Per favore, vedi il mio aggiornamento.
Tom Brito,
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.