Gnome, nautilus copia archivos a USB se detiene al 100% o cerca

29

Tuve problemas similares antes, pero no recuerdo cómo lo resolví.

Cuando intento copiar algo en una memoria USB, con FAT, se detiene cerca del final, a veces al 100%. Y, por supuesto, cuando transfiero la tarjeta de memoria a otro lugar, no contiene el archivo completo. (¡el archivo es una película!)

Intenté montar el dispositivo con mount -o flush, pero obtengo el mismo problema.

Además, formateé la memoria USB con una nueva partición FAT ...

¿Alguna idea de lo frío que hago?

PD: Creo que no está relacionado con el sistema operativo, que es Debian, y creo que hacer frente a la unidad SSD no lo bloquea.


fuente
3
En algún lugar me he encontrado con la siguiente explicación del asunto. En el caso, la copia se realizó a través de la memoria operativa, y el idicator muestra el proceso de lectura de datos desde la unidad. Pero el proceso de escritura es mucho más largo, especialmente para una memoria USB (puede ser 100 veces más lenta: como 2Mb / seg, por ejemplo, 200Mb / seg de lectura) y más si usa sistemas de archivos no nativos como FAT o NTFS en Linux . Por lo tanto, intente esperar la transacción final incluso si se detuvo al 100%, pero no la cierre (lo que debería indicar finalización).
Costas
¿Me pregunto si es posible verificar el progreso en esa situación?
intenta formatear el pendrive con la opción sobrescribir datos salientes con ceros Funciona en My trancend 8GB pendrive
Akshay Daundkar
Para cualquiera que se encuentre con este problema, simplemente formatee su unidad en NTFS.
Ricky Boyce

Respuestas:

37

La razón por la que sucede de esa manera es que el programa dice "escribir estos datos" y el kernel de Linux los copia en un búfer de memoria que está en cola para ir al disco, y luego dice "ok, hecho". Entonces el programa piensa que ha copiado todo. Luego, el programa cierra el archivo, pero de repente el kernel lo hace esperar mientras ese búfer se extrae al disco.

Entonces, desafortunadamente, el programa no puede decirle cuánto tiempo llevará vaciar el búfer porque no lo sabe.

Si desea probar algunos trucos para usuarios avanzados, puede reducir el tamaño del búfer que utiliza Linux configurando el parámetro del núcleo vm.dirty_bytesen algo como 15000000(15 MB). Esto significa que la aplicación no puede obtener más de 15 MB antes de su progreso real. (Puede cambiar los parámetros del kernel sobre la marcha, sudo sysctl vm.dirty_bytes=15000000pero hacer que se mantengan durante un reinicio requiere cambiar un archivo de configuración como el /etc/sysctl.confque podría ser específico para su distribución).

Un efecto secundario es que su computadora puede tener un rendimiento de escritura de datos más bajo con esta configuración, pero en general, me resulta útil ver que un programa se ejecuta durante mucho tiempo mientras escribe muchos datos frente a la confusión de tener un El programa parece estar hecho con su trabajo, pero el sistema está muy retrasado ya que el núcleo hace el trabajo real. Establecer dirty_bytesun valor razonablemente pequeño también puede ayudar a evitar que su sistema deje de responder cuando tenga poca memoria libre y ejecute un programa que de repente escriba muchos datos.

¡Pero no lo configure demasiado pequeño! Utilizo 15 MB como una estimación aproximada de que el núcleo puede vaciar el búfer a un disco duro normal en 1/4 de segundo o menos. Evita que mi sistema se sienta "lento".

sin datos
fuente
Estuve buscando una solución a este problema durante un año o más, pensé que era solo un error en Linux. Muchas gracias.
Sidahmed
1
Linux noob aquí, ¿alguien podría publicar cómo cambiar los valores de <dirty_bytes>?
Brofessor
@Brofessor Oh, lo siento, debería haberlo descrito por el nombre oficial en lugar de los detalles de / proc. La respuesta se actualiza.
datos
1
Esto es similar a unix.stackexchange.com/questions/107703/… --- debería haberse solucionado, pero créanme, no lo es. Tuve que agregarlo a Ubuntu 18.04 para dejar de comportarme gracioso ...
Rmano
Funciona en Fedora 30 también. Me sorprende ver un comportamiento tan estúpido incluso en las distribuciones modernas de Linux.
sziraqui
0

Antigua pregunta, pero parece que el problema aún surge. Establecer el búfer en 15 MB como se sugiere aquí no funcionó en Ubuntu 19.04, y detuvo mi sistema.

Intenté copiar un archivo de 1,5 GB en una unidad FAT32 de 16 GB vacía (recién formateada). Lo dejé correr durante unos 10 minutos solo para ver si terminaría, sin suerte.

Reformatear a NTFS permite que la operación finalice en menos de 10 segundos. No sé por qué esto sería importante porque FAT32 debería permitir algo inferior a 2 GB, pero parecía funcionar bien. No es una solución ideal para las unidades que desea usar con MacOS, sino una solución fácil para todos los demás casos de uso. Me imagino que exFAT habría funcionado de manera similar, pero no lo probé.

Jacob Jones
fuente