Jak skonfigurować rejestrowanie danych w celu natychmiastowego pendrive?

12

Jeśli edytuję pliki na moim pendrive, a następnie po prostu usuwam je fizycznie, dane nie zostaną zapisane. Muszę kliknąć „wysunąć”, więc dioda LED zaczyna mrugać, a dane zaczynają być rejestrowane.

Jak mogę to zmienić, aby dane były rejestrowane natychmiast po zmianie?

aktualizacja: Ubuntu 11.10

W Ubuntu 11.10 napisałem plik reguł (z odpowiedzi @enzotib ) i działa, ale daje następujący komunikat, gdy próbuję wysunąć / odmontować:

wprowadź opis zdjęcia tutaj

(czy powinienem zacząć inne pytanie dotyczące Ubuntu 11.10?)

Tom Brito
źródło
2
Wydajność będzie mniejsza, ponieważ pamięć podręczna zapisu nie będzie już używana. Prawidłowo odmontuj partycje za pomocą opcji wysuwania / odmontowywania, w przeciwnym razie stracisz dane.
Lekensteyn,
4
syncOpcji tej można użyć podczas montażu partycji. Nie jest to jednak zalecane, ponieważ znacznie zwiększa liczbę zapisów na pendrivie.
umówić
2
@ Zaaranżuj, jak Ubuntu wykonuje automount, czy istnieje sposób, aby ustawić to syncjako domyślne, więc nie muszę tego robić za każdym razem w terminalu? I zdaję sobie sprawę, że to dramatycznie zwiększy liczbę zapisów, wciąż tego chcę. Dzięki!
Tom Brito
1
Zobacz askubuntu.com/questions/30762/…
umów się na
@arrange to widział, ale wciąż nie jest to kompletna odpowiedź ...
Tom Brito

Odpowiedzi:

8

Po pytaniu (i odpowiedzi), które @arrange pokazuje w swoim komentarzu, stwórzmy nowy plik

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

i zapisz w nim następującą treść (patrz udev :: Mount under / media; użyj etykiety partycji, jeśli jest dostępna )

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"

Wprowadziłem kilka drobnych modyfikacji w stosunku do tego zgłoszonego na stronie

  • dodano syncopcję doENV{mount_options}
  • zmodyfikowałem gid=100opcję uid=1000,gid=1000, gdzie liczby są względne w stosunku do użytego identyfikatora i identyfikatora grupy, zwrócone przez id -uiid -g

Drugi sprawia, że ​​jesteś właścicielem wszystkich plików na zamontowanej partycji, więc nie może wystąpić problem z uprawnieniami. Oczywiście nie dzieje się tak, jeśli więcej niż jeden użytkownik powinien uzyskać dostęp do plików, ale można to rozwiązać na inne sposoby.

W systemach plików innych niż Windows właściciel i grupa są metadanymi w systemie plików i nie można ich zmienić za pomocą opcji montowania.

Nowa reguła jest natychmiast aktywna ( udev używa inotify do wykrywania nowych i zmodyfikowanych plików reguł).

Zainstalowany dysk nie jest automatycznie otwierany w oknie menedżera plików, jak widać, i jest to trudne do osiągnięcia, biorąc pod uwagę, że proces montowania jest własnością użytkownika root i nie ma dostępu do graficznej sesji logowania. Ale dysk znajduje się na pulpicie, więc otworzy go proste podwójne kliknięcie.

Niestety nie mogę odmontować pulpitu prawym przyciskiem myszy, ale nie jest to duży problem: mając tę syncopcję, możesz po prostu odłączyć urządzenie, a reguła udev zajmuje się usunięciem wpisu /proc/mountsi usunięciem mount- punkt.

enzotib
źródło
Nie mogłem zająć się pisaniem tego poradnika, dzięki za zrobienie tego;) I nie mogłem też zmusić użytkownika do odmontowania go do pracy, wygląda na to, że usersopcja jest ważna tylko w fstabpliku ... To nie jest problem tutaj („synchronizacja”), ale dla ogólnego poradnika byłoby to.
umów się
Dzięki za odpowiedź. Niestety po wykonaniu opisanych czynności nie mogłem tworzyć, edytować ani usuwać żadnych plików na pendrive. Poza tym nie jest już automatycznie otwieranie okna po podłączeniu. Dowolny pomysł?
Tom Brito
Nawiasem mówiąc, uznałem, że rozszerzenie, które wpisałeś „.rule” jest nieprawidłowe, i użyłem tego samego z innych plików w tym folderze: „.rules”.
Tom Brito
Dokumentacja nie mówi o konkretnych rozszerzeniach do użycia. Nawiasem mówiąc, źle skopiowałem ze strony, więc lepiej jest użyć, .rulesaby być bezpiecznym. Resztę znajdziesz w edytowanej odpowiedzi.
enzotib
Hej, jestem teraz na Ubuntu 11.10 i jest inne zachowanie. Proszę zobaczyć moją aktualizację.
Tom Brito