USB pendrive: a cópia demora cerca de 3 minutos, mas a desmontagem demora muito tempo: 10 a 12 minutos

1

Estou usando o Ubuntu 17.10.

Formatei um pen drive USB em NTFS para preparar um instalador USB do Windows7.

Eu configurei o sinalizador de inicialização neste pen-drive e copiei os arquivos para ele.

EDIT 1: O pendrive USB é montado automaticamente pelo udev.

umount /dev/sdb1 leva de 10 a 12 minutos para ser concluído.

Aqui estão as opções de montagem:

$ mount | grep sdb
/dev/sdb1 on /media/mansfeld/Win7_USB_Installer type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

EDIT 2: A operação cp não é IMEDIATOSA, levou 3 minutos para copiar os arquivos para o pendrive USB.

EDIT 3: A operação sync (feita logo após o cp ) levou 12 minutos para ser concluída! Mas então o umount será instantâneo.

Para o FAT32, (com a sincronização também desativada durante a montagem), percebo o mesmo comportamento.

Alguma idéia de por que leva tanto tempo para desmontar o USB pendrive NTFS?

    
por SebMa 23.03.2018 / 19:44

2 respostas

2

Você provavelmente está sofrendo de armazenamento em buffer de cache . Para acelerar a gravação em dispositivos USB (e discos rígidos em geral), o Linux usa um cache de sistema de arquivos:

Quando você (pensa) escreve algo no bastão, ele é primeiro gravado no cache (na RAM) e o comando cp (por exemplo) retorna imediatamente, fingindo uma operação de gravação realmente rápida. Enquanto você faz outras coisas, o conteúdo do cache é então gravado no bastão em segundo plano. Você pode notar que um LED no bastão ainda pisca mostrando operações de gravação (depende do seu bastão), embora nada aparente aconteça.

Quando você emite umount logo após uma operação de gravação, o umount aguarda até que todo o conteúdo do cache do sistema de arquivos seja gravado no gravador para garantir que nenhum dado seja perdido.

Com sync , você pode forçar manualmente o esvaziamento do cache e gravar os dados no dispositivo. No entanto, isso não acelera o tempo total decorrido, porque você terá que aguardar a conclusão do sync (em vez de esperar por umount ). Mas o umount retornará instantaneamente porque o cache já está liberado.

Em resumo, você tem três opções depois de copiar arquivos grandes ou muitos para o pau:

  • umount e aguarde 10 minutos para concluir
  • sync , aguarde 10 minutos para concluir, seguido por umount (retornará quase imediatamente)
  • simplesmente espere por 10 minutos (talvez um pouco mais) e não faça nada (ou algo não relacionado ao bastão) e então emite umount . Como o cache é gravado automaticamente em segundo plano, umount retornará quase imediatamente também.
por PerlDuck 25.03.2018 / 14:08
3

Quando você copia arquivos para o pendrive, eles não são gravados diretamente nele. A sincronização do sistema de arquivos está acontecendo no comando unmount, os dados reais são gravados enquanto você espera sua desmontagem. Se você executar sync antes de umount , o umount será instantâneo.

    
por Pasi Suominen 23.03.2018 / 19:54