El diálogo de copia se atasca a los 0 segundos restantes ...
Cada vez que intento copiar archivos grandes en mi pendrive USB (en cualquier formato), siempre se detiene en el último momento. Termina después de mucho tiempo .
Busqué Ask Ubuntu para publicaciones similares y obtuve muchas , pero ninguna de ellas tiene buenas soluciones.
Entonces ... ¿Existe alguna herramienta de copia alternativa como Teracopy en Windows?
¿O hay alguna solución que pueda hacer?
Respuestas:
No debes preocuparte demasiado por esto.
Quizás su pendrive USB sea de "menor calidad".
La salida del diálogo con respecto al tiempo es engañosa.
Otras herramientas de copia pueden tener un comportamiento de salida diferente,
pero no mejoran la velocidad de escritura de la unidad USB.
Lo más importante de todo es que finalmente la acción de copia tiene éxito.
Lo que puede hacer es optimizar los programadores de entrada / salida de discos.
Instale
gksu
(cuando aún no lo haya hecho) para editar archivosgedit
como root:Ahora optimice la prioridad de todos los procesos en ejecución para varios tipos de discos:
Pegue las siguientes líneas en este archivo vacío y guarde el archivo después:
Los cambios que realizó surten efecto después de reiniciar el sistema operativo.
Además ... una solución alternativa de copia está disponible en los repositorios de Ubuntu:
Ahora inicie la herramienta desde un terminal para comparar o copiar archivos y carpetas:
dirdiff
es una GUI paradiff
y puede manejar hasta 5 árboles. Muestra una ventana principal con una lista de archivos que son diferentes entre los árboles, con cuadrados de colores para indicar las edades relativas de las versiones. Un menú le permite mostrar las diferencias entre cualquiera de las dos versiones en otra ventana. Otro menú le permite copiar archivos y carpetas de un árbol a otro.Resumen: ¡Lo más relevante de todo es la calidad del disco USB y sus capacidades de velocidad de escritura!
fuente
La razón por la que ve que la copia ocurre de la manera en que lo hace es porque las escrituras en la unidad USB son asíncronas .
Cuando copia un archivo, en realidad lo copia en el búfer de la unidad usb, que está en la RAM de su computadora. La primera parte de la copia es muy rápida porque solo va al búfer. Los datos se vacíandesde el búfer a la unidad USB a una velocidad mucho más lenta. Una vez que el búfer se ha llenado, tiene que esperar a que algunos de los datos se descarguen en el disco antes de que pueda colocar más en el búfer, por lo que la copia luego se ralentiza, efectivamente a la velocidad de la unidad USB. Una vez que todo el archivo se ha colocado en el búfer, parece que el archivo se ha copiado. Sin embargo, no todos los datos se han vaciado del búfer al disco USB. Algunos programas de copia simplemente regresan y dejan que el vaciado continúe en segundo plano. Algunos esperarán hasta que se hayan vaciado todos los datos, por lo que permanecerán en el 100% durante algún tiempo.
Puede cambiar el disco al modo síncrono, lo que significa que todos los datos se escriben inmediatamente en la unidad USB sin usar el búfer. Esto dará la impresión de una transferencia de datos más fluida, pero en realidad puede terminar con una reducción general de la velocidad.
Si monta manualmente el disco desde la línea de comando, puede agregarlo
-o sync
.Si lo monta usando fstab, puede agregar la
sync
opción.Si confía en que Ubuntu lo monte cuando acceda a él en la GUI, puede modificar las opciones de montaje desde la línea de comandos una vez que esté montado:
fuente
Es probable que el problema sea que el archivo se lea y se almacene en la memoria por completo antes de que se escriba por completo en la unidad de destino.
Esto no significa responder la pregunta exactamente, pero se podría usar una solución alternativa
pv
desde la línea de comandos en caso de archivos grandes:Siempre que uno necesite copiar un archivo grande:
Cabe señalar que esto sufre de un problema de almacenamiento en búfer no deseado similar cuando se usa en una tubería; Si ese es el caso, una solución está limitando la velocidad de transferencia a algo ligeramente por encima de la velocidad de escritura de la unidad de destino:
fuente
Hay varias alternativas. Puede usar el enfoque de línea de comando:
cp *source* *target*
donde fuente es el archivo que desea copiar y destino es el archivo o carpeta a la que desea copiar. Se pueden encontrar más opciones en https://softwarerecs.stackexchange.com/
fuente
Esto leerá de su
if
archivo y escribirá en elof
archivo en fragmentos de 64MiB y esperará hasta que se escriba cada fragmento antes de comenzar el siguiente. Lo más probable es que la utilidad que está utilizando solo lea el archivo en la memoria y luego lo envíe al disco (y no se sabe cuántos bytes a la vez lo está haciendo). Sin embargo, el almacenamiento en caché de escritura puede estar en el dongle usb ... Entonces, la velocidad de 60MiB por segundo que está obteniendo es la velocidad de transferencia a través de la conexión usb al caché interno del dongle. Pero eso no es probable a menos que sea un dongle USB3. USB2 no tiene suficiente rendimiento para manejar 60MiB por segundo.fuente
No hay necesidad de todo lo anterior. Simplemente abra una ventana de terminal cuando la transferencia muestre 0% restante y escriba
sync
Desde las páginas de manual, el comando de sincronización vacía los búferes del sistema de archivos, pero por supuesto solo vaciará aquellos a los que tiene los derechos. Si quieres vaciarlos, escribe todosudo sync
fuente