Comment configurer pour enregistrer des données de façon instantanée?

12

Si je modifie les fichiers sur ma clé USB, puis les supprime simplement physiquement, les données ne seront pas enregistrées. Je dois cliquer sur "éjecter", et ainsi la led commence à clignoter, et les données commencent à être enregistrées.

Comment puis-je changer cela, afin que les données soient enregistrées instantanément lorsqu'elles sont modifiées?

mise à jour: Ubuntu 11.10

Dans Ubuntu 11.10, j'ai écrit le fichier de règles (à partir de la réponse @enzotib ) et fonctionne, mais donne le message suivant lorsque j'essaie d'éjecter / démonter:

entrez la description de l'image ici

(devrais-je commencer une autre question pour Ubuntu 11.10?)

Tom Brito
la source
2
Les performances seront moindres car le cache d'écriture n'est plus utilisé. Démontez correctement les partitions à l'aide des options d'éjection / démontage ou vous perdrez des données.
Lekensteyn
4
Vous pouvez utiliser l' syncoption lors du montage de la partition. Ce n'est cependant pas recommandé car cela augmente considérablement le nombre d'écritures sur la clé USB.
organiser le
2
@arrange comme ubuntu fait le montage automatique, existe-t-il un moyen de mettre cela syncpar défaut, donc je n'ai pas besoin de le faire dans un terminal à chaque fois? Et je suis conscient que cela augmentera considérablement le nombre d'écritures, c'est toujours ce que je veux. Merci!
Tom Brito
1
Voir askubuntu.com/questions/30762/…
organiser le
@arrange l'a vu, mais ce n'est toujours pas une réponse complète ...
Tom Brito

Réponses:

8

Suite à la question (et réponse) que @arrange montre dans son commentaire, créons un nouveau fichier

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

et y écrire le contenu suivant (voir udev :: Mount under / media; utilisez le label de partition si présent )

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"

J'ai fait quelques petites modifications par rapport à celle rapportée sur le site

  • a ajouté l' syncoption àENV{mount_options}
  • a modifié l' gid=100option en uid=1000,gid=1000, où le nombre est relatif à votre identifiant utilisé et identifiant de groupe, tel que renvoyé par id -uetid -g

Le second fait de vous le propriétaire de tous les fichiers sur la partition montée, donc aucun problème d'autorisation ne peut survenir. De toute évidence, ce n'est pas le cas si plusieurs utilisateurs doivent accéder aux fichiers, mais cela peut être géré de différentes manières.

Pour les systèmes de fichiers non Windows, le propriétaire et le groupe sont des métadonnées sur le système de fichiers et ne peuvent pas être modifiés par une option de montage.

La nouvelle règle est immédiatement active ( udev utilise inotify pour détecter les fichiers de règles nouveaux et modifiés).

Le lecteur monté n'est pas ouvert automatiquement dans une fenêtre du gestionnaire de fichiers, comme vous pouvez le voir, et cela est difficile à réaliser, étant donné que le processus de montage appartient à root et n'a pas accès à votre session de connexion graphique. Mais le lecteur est sur votre bureau, donc un simple double-clic l'ouvrira.

Malheureusement, je ne peux pas faire démonter le bureau avec le bouton droit de la souris, mais ce n'est pas un gros problème: avoir l' syncoption en place, vous pouvez simplement débrancher l'appareil, et la règle udev se charge de supprimer l'entrée /proc/mountset de supprimer le montage- point.

enzotib
la source
Je n'ai pas pu me mettre à écrire ce tutoriel, merci de l'avoir fait;) Et je n'ai pas non plus réussi à faire démonter l'utilisateur, il semble que l' usersoption n'est valide que dans le fstabfichier ... Ce n'est pas un problème ici ("sync"), mais pour un mode d'emploi général, ce serait.
organiser le
Merci de répondre. Malheureusement, après avoir fait ce qui est décrit, je n'ai pas pu créer, éditer ou supprimer des fichiers sur la clé USB. De plus, cela n'ouvre plus automatiquement la fenêtre lorsque je la branche. Une idée?
Tom Brito
Au fait, j'ai considéré que l'extension que vous avez tapée ".rule" est incorrecte, et j'ai utilisé la même chose que les autres fichiers de ce dossier: ".rules".
Tom Brito
La documentation ne parle pas d'extensions spécifiques à utiliser. Au fait, j'ai mal copié sur le site, il est donc préférable d'utiliser .rulespour être en sécurité. Pour le reste, voir la réponse modifiée.
enzotib
Hé, je suis sur Ubuntu 11.10 maintenant, et il y a un comportement différent. Veuillez voir ma mise à jour.
Tom Brito