¿Cómo copio un archivo de más de 4 GB a una unidad flash USB?

53

Estoy tratando de copiar un archivo de 6GB en una unidad flash USB pero no se copiará.

VJ Ranga
fuente
23
¿La unidad USB está formateada con FAT32? Ese sistema de archivos no admite archivos de más de 4 GB. Tiene que formatearlo de manera diferente, por ejemplo, como NTFS. Tenga en cuenta que el formateo elimina todos los datos en la unidad.
Byte Commander
14
¿Puede por favor poner más detalles en la pregunta sobre "no se copiará"? ¿Qué comandos intentaste? ¿Qué mensaje de error recibes? (Estos son muy útiles en caso de que alguien tenga el mismo problema en el futuro y esté buscando una respuesta ...)
psmears
2
google for "no puede copiar archivos de más de 4 GB" y obtendrá toneladas de respuestas en stackexchange
phuclv
55
También podría ser útil incluir el tamaño del USB
George Tian
3
@Nukeface ¿Puedes incluir una respuesta con instrucciones sobre cómo hacerlo? Dejar una media respuesta como comentario a menudo puede causar más daño que bien. Gracias.
Eliah Kagan

Respuestas:

109

Esto se debe a la limitación de FAT32. Los archivos de más de 4 GB no se pueden almacenar en un volumen FAT32. Formatear la unidad flash como exFAT o NTFS resolverá este problema.

ADVERTENCIA: haga una copia de seguridad de sus datos. El formateo eliminará todos los datos en su dispositivo.

Russo
fuente
20
Por cierto, formatear la unidad flash como ext3también es una opción
Basile Starynkevitch
18
@BasileStarynkevitch sí, pero no es muy útil en algunos sistemas operativos propietarios;)
Ruslan
11
@Ruslan: secundo esto. Usar ext3 / 4 en Windows fue más doloroso que usar exFat y NTFS en Linux.
JIV
13
Aunque es una creación de Microsoft, hay mucho que decir sobre exFAT. Como otros han señalado, es manejado por los tres SO de escritorio, por lo tanto, tenderá a maximizar su interoperabilidad. Además, fue diseñado para su uso en unidades flash grandes. Cita: en.wikipedia.org/wiki/ExFAT En particular, debido a que puede marcar un archivo como contiguo y, por lo tanto, evitar tener que tocar el FAT, funciona de manera extremadamente eficiente en el caso de uso de OP: manejo de un archivo muy grande.
dgnuff
8
@dgnuff quieres decir, los tres principales sistemas operativos de escritorio :)
dn3s
91

Si no desea formatear su unidad USB o necesita que sea FAT32, simplemente puede dividir su archivo grande en partes. La mayoría de los administradores de archivos vienen con la opción de división y para la línea de comando hay split, por ejemplo, para su caso:

split -b4294967295 /path/to/input.file /path/to/pen/drive/output.file.

Ver man splitpara la documentación completa. Esto creará los siguientes archivos:

4,0G output.file.aa
1,6G output.file.ab

El tamaño de archivo output.file.aacoincide exactamente con el tamaño máximo de archivo de su unidad USB formateada FAT32, que es 4 Gibibyte (GiB, que no es lo mismo que Gigabyte GB) menos 1 Byte .
Gracias a Gilles por esta importante adición.


Antes de poder acceder al archivo nuevamente, primero debe fusionar sus partes. En sistemas Linux puede hacerlo con:

cat output.file.* > input.file

Si tiene miedo de que esto pueda ordenar los archivos incorrectamente leídos en Bash, ¿se garantiza que las expansiones comodín estén en orden?
El comando correspondiente en los sistemas Windows es:

copy /b output.file.aa+output.file.ab input.file

Junto con muchas otras utilidades útiles de GNU también splitse pueden instalar en Windows, vea las utilidades de GNU para Win32 .

postre
fuente
2
Apuesto a que la mitad de los votos positivos que recibo aquí son solo por GiB vs. GB. ;)
postre
2
Hubiera votado splitincluso sin la distinción entre GiB y GB. Pero enviaré un atacante para eso ...
Zeiss Ikon
1
@dessert Esperaría que eso solo le brinde aproximadamente un 7.4% más de votos a favor.
Eliah Kagan
1
He votado porque reformatear el disco solo para poder mover un archivo grande es una respuesta horrible cuando splitexiste precisamente para este propósito y no se requiere en el extremo receptor. FAT32 es la lengua franca de las unidades USB por una razón.
Monty Harder
Creo que -b 4095Msería mucho más simple y lograría lo mismo que el bccomando. En Bash también se podría utilizar shell aritmética: $(((4<<30)-1)).
David Foerster
39

Problema: FAT32 tiene un límite de 4GiB para el tamaño del archivo

Se examinan diferentes escenarios y sistemas de archivos buscando alternativas teniendo en cuenta

  • el problema del tamaño del archivo
  • qué sistemas operativos deben leer / escribir la unidad USB

Solo Linux

Si tiene la intención de usar la unidad solo con Ubuntu (y otras distribuciones de Linux), es una buena idea usar un sistema de archivos de Linux , por ejemplo ext4 . De esta manera, puede obtener una mayor velocidad de lectura / escritura (dependiendo de qué proceso sea el cuello de botella), y obtendrá una mayor flexibilidad con respecto a la propiedad y los permisos.

  • Puede usar el programa GUI gpartedpara crear el sistema de archivos ext4 .

Compatibilidad total con Linux, Windows y MacOS

Windows tiene problemas con los sistemas de archivos de Linux, y creo que MacOS tiene problemas tanto con los sistemas de archivos de Linux como con NTFS . Entonces, si desea 'compatibilidad total' para leer y escribir, solo quedan FAT32 , UDF y exFAT .

  • FAT32 tiene un límite de 4GiB (gibibyte, base 2) para el tamaño del archivo.

    • Se puede crear en los tres sistemas operativos.
    • Mantener (reparar) en Windows, si tiene acceso a Windows.
    • Se puede mantener en Ubuntu con dosfsck, que viene con el paquete dosfstools,

      sudo apt-get install dosfstools
      
      sudo dosfsck -a /dev/sdxn  # least destructive option
      sudo dosfsck -r /dev/sdxn  # more powerful option
      

      donde x es la letra de la unidad yn es el número de partición, por ejemplo, /dev/sdb1para la primera partición en la unidad b.

  • UDF probablemente carece de herramientas para reparar el sistema de archivos,

    • FOSS
    • Tal vez sea posible encontrar herramientas de reparación en Windows a través de este enlace: herramientas fsck para UDF , y hay alguna herramienta disponible como código fuente
    • Se puede crear en Ubuntu
    • Compatible con enlaces de estilo Linux.
    • Compatible con permisos de estilo Linux. Puede crear y modificar permisos de archivos individuales (que no es posible con FAT y NTFS).
    • Windows 10 no solicitará una partición UDF (mientras que el sistema de archivos linux ext4 se ve afectado y puede destruirse por error).
    • Cómo crear y usar UDF: Uso de UDF como sucesor de FAT para memorias USB

      Entonces, para usarlo, suponiendo que su memoria USB es /dev/sdx:

      1. Instala el paquete udftools

        sudo apt-get install udftools
        
      2. Cree una tabla de partición y una partición con gpartedognome-disks

      3. Limpie el primer mibibyte de la partición de destino con el arriesgado dd(¡verifique la línea de comando!

        sudo dd if=/dev/zero of=/dev/sdx1 bs=1M count=1
        
      4. Ejecutar mkudffs,

        sudo mkudffs -b 512 --media-type=hd --lvid=my-label /dev/sdx1
        

      Limpie el primer mibibyte de la partición para borrar la información anterior del sistema de archivos (u otros datos restantes), para evitar que su dispositivo USB sea detectado como FAT después de formatearse con UDF.

      El -b 512objetivo es forzar un tamaño de bloque del sistema de archivos igual al tamaño de bloque físico de la memoria USB, como lo requiere la especificación UDF. Adaptarlo si tiene la suerte de tener una memoria USB con un tamaño de bloque más apropiado.

      Después de eso, su memoria USB podrá usarse para leer y escribir con GNU / Linux y los otros sistemas operativos gratuitos, por supuesto, pero también con las versiones actuales de Windows (solo lectura con la versión XP desactualizada) y con MacOS.

  • exFAT es otra opción. Es nuevo en comparación con FAT32 y UDF y afirma que funciona bien

    • nativamente con Windows
    • con MacOS
    • con Linux

Más acerca de exFAT

He comenzado a probar exFAT en Ubuntu. Tengo la intención de editar esta respuesta, cuando tenga más experiencia en usarla. Comencemos con los siguientes enlaces ,

y esta línea de comando para instalar [leer / escribir] soporte para exFAT en Ubuntu

sudo apt-get install exfat-utils exfat-fuse
  • Se puede crear en Windows y MacOS y en Linux con la siguiente línea de comando

    sudo mkfs.exfat -n YOUR-LABEL /dev/sdxi
    

    donde xestá la letra de unidad y ies el número de partición, por ejemplo /dev/sdb1.

  • Se puede mantener en Windows.

Mis primeros resultados de la prueba :

  • La creación del sistema de archivos exFAT funcionó bien en Ubuntu (16.04 LTS (64 bits), sistema instalado con la serie del núcleo Xenial (4.4.0-93-generic), actualizado).
  • Escribir y leer un archivo de más de 4 GiB tuvo éxito. Ubuntu y exFAT cooperaron de manera correcta y rápida (lo comprobé md5sumy el sistema USB limitó la velocidad).
  • Ubuntu y Windows podrían leer lo que se creó en el otro sistema operativo. (No tengo MacOS para probar, y tengo que confiar en los informes de otras personas).

Ventanas

Entonces, si desea acceso completo de lectura / escritura desde Ubuntu y Windows, le sugiero que use NTFS , que tiene registro en diario y está muy depurado y pulido como el sistema de archivos [propietario] para Windows. (También es posible usar exFAT ).

  • En Ubuntu puede usar el programa GUI gpartedpara crear un sistema de archivos NTFS.
  • En Windows es fácil crear sistemas de archivos NTFS y exFAT (son nativos).

Mac OS

En MacOS es posible usar FAT32 , UDF y exFAT .

También puede usar ext4 con una solución alternativa, Ubuntu Server con un servidor SSH en una máquina virtual . (Creo que la misma solución funcionaría también con Windows). Esto puede valer la pena cuando intente acceder a muchos archivos a través de la unidad y su sistema de archivos, pero probablemente no con un pequeño pendrive USB2.

Ver este enlace,

Usando ext4 en OS X Yosemite, la forma larga pero segura

sudodus
fuente
3
AFAIR Windows XP no puede escribir en volúmenes UDF. No es un gran problema hoy en día, pero vale la pena señalarlo, por si acaso.
gronostaj
2
macOS monta todo como NTFS de solo lectura de forma predeterminada (supongo que Apple no cree que el soporte de escritura NTFS sea lo suficientemente confiable)
gsnedders
1
@gsnedders Espero que simplemente no crean en Windows.
wizzwizz4
2
@sudodus Personalmente, no he tenido problemas con todo, desde la administración de grandes particiones NTFS hasta la manipulación de Streams desde Debian, pero aprecio estar seguro con los datos. Además, tengo una copia de seguridad , por lo que no importa si pierdo datos antiguos (solo puedo copiarlos de la copia de seguridad).
wizzwizz4
2
Nota: puede usar exfat en MacOS sin problemas (incluso puede formatear la unidad como exfat). exfat también se está convirtiendo en el valor predeterminado para discos flash / tarjetas de memoria más grandes.
SztupY
11

Habiendo tenido un problema simular y no estoy dispuesto a formatear el dispositivo USB, acabo de usar un archivador. Más o menos todas las GUI modernas (como File Roller, 7Zip, etc.) o CLI permiten dividir el archivo comprimido. Establezca el límite de división por debajo del límite de FAT (que es de 4 GB), para la velocidad puede elegir una tasa de compresión baja, incluso "almacenar", es decir, no comprimir en absoluto, ¡listo!

Oleg Lobachev
fuente
5

Si tiene acceso a una máquina con Windows, puede convertir su sistema de archivos de memoria USB sin formatear. Debe usar la línea de comandos de Windows de la siguiente manera: presione Win + R, escriba cmd-> OK, en la ventana abierta, ingrese el comando convert X: /FS:ntfsdonde X:está la letra de su memoria USB montada. En menos de un minuto está listo. Disfrutar.

M. Dm.
fuente
2
Este método puede ser útil :-) Pero convertir un sistema de archivos puede ser arriesgado, por lo que recomendaría hacer una copia de seguridad de todo lo importante en la memoria USB antes de la conversión. Por cierto, ¿has usado este método? ¿Guarda los archivos? ¿Funciona también para / desde exfat?
sudodus
1
Usé este método varias veces, todos los archivos fueron legibles después de este procedimiento. Esta utilidad solo funciona para convertir a NTFS, no viceversa.
M. Dm.
2

Volver a formatear o usar la división son excelentes opciones, o puede intentar usar zip para comprimir el archivo, solo sepa que algunos archivos ya están comprimidos, por lo que comprimirlos los hará más grandes. (También puede perder la propiedad del archivo, las marcas de tiempo, etc.)

Jebidieah Cornell
fuente