Estou usando o Ubuntu 17.10.
Formatei um pen-drive USB para NTFS para preparar um Windows7 USB Installer.
Configurei o sinalizador inicializável neste pen-drive e copiei os arquivos para ele.
EDIT 1: O pen-drive 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 cp
operação não é nada INSTANTÂNEA, demorou 3 minutos para copiar os arquivos para o pen-drive USB.
EDIT 3: A sync
operação (feita logo após o cp
) levou 12 minutos para ser concluída! Mas então o umount
será instantâneo.
Para FAT32 (com a sincronização também desativada durante a montagem), noto o mesmo comportamento.
Alguma idéia de por que demora tanto para desmontar o pendrive USB NTFS?
Você provavelmente está sofrendo de cache de
buffer. Para acelerar a gravação em pendrives (e discos rígidos em geral), o Linux usa um cache de sistema de arquivos:Quando você (pensa que) escreve algo no stick, ele é primeiro gravado no cache (na RAM) e o
cp
comando (por exemplo) retorna imediatamente fingindo uma operação de gravação realmente rápida. Enquanto você faz outras coisas, o conteúdo do cache é gravado no stick em segundo plano. Você pode notar que um LED no stick ainda pisca mostrando as operações de gravação (depende do seu stick), embora nada aparente aconteça.Quando você emite
umount
logo após uma operação de gravação,umount
espera até que todo o conteúdo do cache do sistema de arquivos seja gravado no stick para garantir que nenhum dado seja perdido.Com
sync
você pode forçar manualmente o esvaziamento do cache e gravar os dados no stick. No entanto, isso não acelerará o tempo total decorrido, porque você terá que aguardarsync
a conclusão (em vez de aguardarumount
). Mas oumount
retornará instantaneamente porque o cache já foi liberado.Em resumo, você tem três opções depois de copiar arquivos grandes ou muitos para o stick:
umount
e aguarde 10 minutos para concluirsync
, aguarde 10 minutos para concluir, seguido deumount
(retornará quase imediatamente)umount
. Como o cache é gravado em segundo plano automaticamente,umount
ele também retornará quase imediatamente.Quando você copia arquivos para o seu pendrive, eles não são gravados diretamente nele. A sincronização do sistema de arquivos está ocorrendo no comando desmontar, os dados reais são gravados enquanto você espera sua desmontagem. Se você executar
sync
antesumount
de , oumount
é instantâneo.