Os arquivos de cópia do Gnome, nautilus para USB param em 100% ou perto


29

Eu tive problemas semelhantes antes, mas não me lembro de como resolvi isso.

Quando tento copiar algo para o pendrive, com o FAT, ele para no final, às vezes a 100%. E, claro, quando transfiro o cartão de memória para outro lugar, ele não contém o arquivo completo. (arquivo é um filme!)

Eu tentei montar o dispositivo com mount -o flush, mas eu recebo o mesmo problema.

Além disso, eu formatei o pendrive com a nova partição FAT ...

Alguma idéia de que frio eu faço?

ps Eu acredito que não está relacionado ao sistema operacional, que é o Debian, e acredito que lidar com a unidade SSD não a impede.


3
Em algum lugar, encontrei a seguinte explicação sobre o assunto. No caso, a cópia foi feita via memória operacional e o identificador mostra o processo de leitura de dados do drive. Mas o processo de gravação é muito mais longo, especialmente para o stick USB (pode ser 100 vezes mais lento: como gravação de 2 Mb / s contra 200 Mb / s de leitura, por exemplo) e mais se você usar sistemas de arquivos não nativos como FAT ou NTFS no Linux . Portanto, tente aguardar a transação final, mesmo que pare em 100%, mas não feche (o que deve indicar o término).
Costas

apenas querendo saber se é possível verificar o progresso nessa situação ???

tentar formato de pendrive com opção de substituição sair dados com zeros Trabalha em minha transcender 8GB pendrive
Akshay Daundkar

Para quem se deparar com esse problema, formate sua unidade no NTFS.
Ricky Boyce

Respostas:


37

A razão pela qual isso acontece é que o programa diz "grave esses dados" e o kernel do linux os copia em um buffer de memória na fila para ir para o disco e depois diz "ok, pronto". Então o programa pensa que copiou tudo. Em seguida, o programa fecha o arquivo, mas de repente o kernel o faz esperar enquanto esse buffer é enviado para o disco.

Portanto, infelizmente, o programa não pode dizer quanto tempo levará para liberar o buffer, porque ele não sabe.

Se você quiser experimentar alguns truques para usuários avançados, poderá reduzir o tamanho do buffer usado pelo Linux configurando o parâmetro kernel vm.dirty_bytespara algo como 15000000(15 MB). Isso significa que o aplicativo não pode ter mais de 15 MB à frente de seu progresso real. (Você pode alterar os parâmetros do kernel rapidamente, sudo sysctl vm.dirty_bytes=15000000mas fazê-los permanecer em uma reinicialização requer a alteração de um arquivo de configuração, como o /etc/sysctl.confque pode ser específico para sua distribuição.)

Um efeito colateral é que seu computador pode ter uma taxa de transferência de gravação de dados mais baixa com essa configuração, mas, no geral, acho útil ver que um programa está em execução por um longo tempo enquanto grava muitos dados versus a confusão de ter um O programa parece ter sido concluído com o seu trabalho, mas o sistema está muito atrasado, pois o kernel faz o trabalho real. Definir dirty_bytesum valor razoavelmente pequeno também pode ajudar a impedir que o sistema deixe de responder quando você está com pouca memória livre e executa um programa que repentinamente grava muitos dados.

Mas, não o ajuste muito pequeno! Uso 15 MB como uma estimativa aproximada de que o kernel pode liberar o buffer para um disco rígido normal em 1/4 de segundo ou menos. Isso evita que meu sistema fique "atrasado".


Eu estava procurando uma correção para esse problema por um ano ou mais, pensei que era apenas um bug no linux. Muito obrigado.
Sidahmed 13/01/17

1
Linux noob aqui, alguém poderia postar como alterar os valores de <dirty_bytes>?
Brofessor

@Brofessor Oh, desculpe, eu deveria ter descrito pelo nome oficial em vez de / proc details. A resposta é atualizada.
dataless

1
Isso é semelhante ao unix.stackexchange.com/questions/107703/… --- deveria ter sido corrigido, mas acredite, não é. Eu tive que adicioná-lo para o Ubuntu 18.04 para parar de se comportar engraçado ...
Rmano

Também funciona no Fedora 30. Estou surpreso ao ver um comportamento tão estúpido, mesmo nas distros modernas do Linux.
sziraqui 9/09

0

Pergunta antiga, mas parece que o problema ainda aparece. Definir o buffer para 15 MB, conforme sugerido aqui , não funcionou no Ubuntu 19.04 e interrompeu meu sistema.

Eu estava tentando copiar um arquivo de 1,5 GB em uma unidade de 16 GB FAT32 vazia (recém-formatada). Deixei funcionar por cerca de 10 minutos apenas para ver se terminaria, sem sorte.

A reformatação para NTFS permite que a operação seja concluída em menos de 10 segundos. Não sei por que isso importaria porque o FAT32 deveria permitir algo abaixo de 2 GB, mas parecia funcionar muito bem. Não é uma correção ideal para as unidades que você deseja usar com o MacOS, mas uma solução fácil para todos os outros casos de uso. Eu imagino que o exFAT teria funcionado da mesma forma, mas eu não testei.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.