Como configurar para gravar dados no pendrive instantaneamente?

11

Se eu editar os arquivos no meu pendrive e depois removê-los fisicamente, os dados não serão gravados. Eu tenho que clicar em "ejetar", e assim o led começa a piscar, e os dados começam a ser gravados.

Como posso alterar isso, para que os dados sejam gravados instantaneamente quando alterados?

update: Ubuntu 11.10

No Ubuntu 11.10 eu escrevi o arquivo de regras (a partir de @enzotib resposta), e funciona, mas dá a seguinte mensagem quando tento ejetar / desmontar:

(devo começar outra pergunta para o Ubuntu 11.10?)

    
por Tom Brito 14.09.2011 / 21:24

1 resposta

6

Seguindo as question (e responda) que @arrange mostra em seu comentário, vamos criar um novo arquivo

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

e escreva nele o seguinte conteúdo (veja udev :: Mount sob / media; use partition etiqueta 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"

Eu fiz algumas pequenas modificações em relação ao relatado no site

  • adicionou a opção sync a ENV{mount_options}
  • modificou a opção gid=100 para uid=1000,gid=1000 , em que o número é relativo ao seu id usado e group-id, conforme retornado por id -u e id -g

O segundo faz de você o proprietário de todos os arquivos na partição montada, portanto nenhum problema de permissão pode surgir. Obviamente, este não é o caso se mais de um usuário acessar os arquivos, mas isso pode ser feito de outras maneiras.

Para sistemas de arquivos não-Windows, o proprietário e o grupo são metadados no sistema de arquivos e não podem ser alterados por uma opção de montagem.

A nova regra é imediatamente ativa ( udev usa inotify para detectar arquivos de regras novos e modificados).

A unidade montada não é aberta automaticamente em uma janela do gerenciador de arquivos, como você pode ver, e isso é difícil de conseguir, dado que o processo de montagem é de propriedade do root e não tem acesso à sua sessão de login gráfica. Mas a unidade está na sua área de trabalho, então um simples clique duplo abrirá.

Infelizmente, não consigo abrir a área de trabalho e desmontar para trabalhar, mas isso não é um grande problema: tendo a opção sync no lugar, você pode simplesmente desconectar o dispositivo e a regra do udev remover a entrada de /proc/mounts e removendo o ponto de montagem.

    
por enzotib 22.09.2011 / 11:01