Come si copia un file di dimensioni superiori a 4 GB su un'unità flash USB?


53

Sto cercando di copiare un file da 6 GB su un'unità flash USB ma non verrà copiato.


23
L'unità USB è formattata con FAT32? Tale file system non supporta file di dimensioni superiori a 4 GB. È necessario formattarlo in modo diverso, ad esempio come NTFS. Attenzione che la formattazione cancella tutti i dati sul disco.
Byte Commander

14
Puoi per favore inserire maggiori dettagli nella domanda sul "non copierà"? Quali comandi hai provato? Che messaggio di errore ricevi? (Questi sono molto utili nel caso in cui qualcuno abbia lo stesso problema in futuro e stia cercando una risposta ...)
psmears

2
google per "impossibile copiare file di dimensioni superiori a 4 GB" e riceverai tonnellate di risposte su stackexchange
phuclv,

5
Potrebbe anche essere utile includere la dimensione dell'USB
George Tian

3
@Nukeface Puoi includere una risposta con le istruzioni su come farlo? Lasciare una mezza risposta come commento può spesso causare più danni che benefici. Grazie.
Eliah Kagan,

Risposte:


109

Ciò è dovuto alla limitazione FAT32. I file di dimensioni superiori a 4 GB non possono essere archiviati su un volume FAT32. La formattazione dell'unità flash come exFAT o NTFS risolverà questo problema.

ATTENZIONE: eseguire il backup dei dati. La formattazione eliminerà tutti i dati sul tuo dispositivo.


20
A proposito, formattando l'unità flash come ext3è anche un'opzione
Basile Starynkevitch,

18
@BasileStarynkevitch sì, ma non è molto utilizzabile su alcuni sistemi operativi proprietari;)
Ruslan

11
@Ruslan: secondo questo. L'uso di ext3 / 4 su Windows è stato più doloroso rispetto all'utilizzo di exFat e NTFS in Linux.
JIV,

13
Anche se è una creazione Microsoft, c'è molto da dire su exFAT. Come altri hanno notato, è gestito da tutti e tre i sistemi operativi desktop, quindi tenderai a massimizzare la tua interoperabilità. Inoltre, è stato progettato per l'uso su unità flash di grandi dimensioni. Citazione: en.wikipedia.org/wiki/ExFAT In particolare, poiché può contrassegnare un file come contiguo e quindi evitare di toccare il FAT, funziona in modo estremamente efficiente nel caso d'uso dei PO: gestione di un file molto grande.
Dgnuff,

8
@dgnuff vuoi dire, tutti e tre i principali sistemi operativi desktop :)
dn3s

91

Se non si desidera riformattare l'unità USB o è necessario che sia FAT32, è possibile semplicemente dividere il file di grandi dimensioni in parti. La maggior parte dei gestori di archivi viene con l'opzione divisa e per la riga di comando c'è split, ad esempio per il tuo caso:

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

Vedi man splitper la documentazione completa. Questo creerà i seguenti file:

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

La dimensione del file output.file.aacorrisponde esattamente alla dimensione massima del file dell'unità USB formattata FAT32, che è 4 Gibibyte (GiB, che non è la stessa di Gigabyte GB) meno 1 byte .
Grazie a Gilles per questa importante aggiunta.


Prima di poter accedere nuovamente al file, è necessario unire le sue parti prima. Sui sistemi Linux puoi farlo con:

cat output.file.* > input.file

Se hai paura che questo possa ordinare i file erroneamente letti in Bash, le espansioni di caratteri jolly sono garantite in ordine?
Il comando corrispondente sui sistemi Windows è:

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

Insieme a molte altre utili utilità GNU splitpossono essere installate anche in Windows, vedere le utility GNU per Win32 .


2
Scommetto che metà dei voti che ottengo qui sono solo a causa di GiB vs. GB. ;)
dessert

2
Avrei votato a favore splitanche senza la distinzione tra GiB e GB. Ma io manderò un attaboy per questo ...
Zeiss Ikon

1
@dessert Mi aspetto che ti dia solo il 7,4% in più di voti.
Eliah Kagan,

1
Ho effettuato l'upgrade perché la riformattazione dell'unità solo per poter spostare un file di grandi dimensioni è una risposta orribile quando splitesiste proprio per questo scopo e non è richiesta sul lato ricevente. FAT32 è la lingua franca delle unità USB per un motivo.
Monty Harder,

Penso che -b 4095Msarebbe molto più semplice e raggiungerebbe lo stesso bccomando. In Bash si potrebbe anche usare shell aritmetica: $(((4<<30)-1)).
David Foerster,

39

Problema: FAT32 ha un limite di 4GiB per le dimensioni del file

Vengono esaminati diversi scenari e file system alla ricerca di alternative che tengano conto

  • il problema delle dimensioni del file
  • quali sistemi operativi dovrebbero leggere / scrivere sull'unità USB

Solo Linux

Se si intende utilizzare l'unità solo con Ubuntu (e altre distribuzioni Linux), è una buona idea usare un file system linux , ad esempio ext4 . In questo modo potresti ottenere una maggiore velocità di lettura / scrittura (a seconda di quale processo è il collo di bottiglia) e otterrai una maggiore flessibilità in termini di proprietà e autorizzazioni.

  • È possibile utilizzare il programma GUI gpartedper creare il file system ext4 .

Piena compatibilità con Linux, Windows e MacOS

Windows ha problemi con i file system linux e penso che MacOS abbia problemi sia con i file system linux che con NTFS . Pertanto, se si desidera la "piena compatibilità" per la lettura e la scrittura, rimangono solo FAT32 , UDF ed exFAT .

  • FAT32 ha un limite di 4GiB (gibibyte, base 2) per la dimensione del file.

    • Può essere creato in tutti e tre i sistemi operativi.
    • Mantenere (riparare) in Windows, se si ha accesso a Windows.
    • Può essere gestito in Ubuntu con dosfsck, fornito con il pacchetto dosfstools,

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

      dove x è la lettera dell'unità e n è il numero della partizione, ad esempio /dev/sdb1per la prima partizione nell'unità b.

  • UDF probabilmente non ha gli strumenti per riparare il file system,

    • FOSS
    • Forse è possibile trovare strumenti di riparazione in Windows tramite questo link: strumenti fsck per UDF , e c'è qualche strumento disponibile come codice sorgente
    • Può essere creato in Ubuntu
    • Compatibile con collegamenti in stile linux.
    • Compatibile con le autorizzazioni in stile linux. È possibile creare e modificare le autorizzazioni di singoli file (che non è possibile con FAT e NTFS).
    • Una partizione UDF non verrà richiesta per la formattazione da Windows 10 (mentre il file system ext4 di Linux è interessato e può essere distrutto per errore).
    • Come creare e utilizzare UDF: utilizzo di UDF come successore di FAT per chiavette USB

      Quindi, per usarlo, supponendo che la tua chiavetta USB sia /dev/sdx:

      1. Installa il pacchetto udftools

        sudo apt-get install udftools
        
      2. Creare una tabella delle partizioni e una partizione con gpartedognome-disks

      3. Pulisci il primo mibibyte della partizione di destinazione con il rischioso dd(ricontrolla la riga di comando!)

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

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

      Cancella il primo mibibyte della partizione per cancellare le informazioni del file system precedente (o altri dati rimanenti), per evitare che la tua chiavetta USB venga rilevata come FAT dopo che è stata formattata con UDF.

      Lo scopo -b 512è forzare una dimensione del blocco del file system uguale alla dimensione del blocco fisico della chiavetta USB, come richiesto dalla specifica UDF. Adattalo se hai la fortuna di avere una chiavetta USB con una dimensione del blocco più appropriata.

      Dopodiché, la chiavetta USB sarà utilizzabile per leggere e scrivere con GNU / Linux e gli altri sistemi operativi gratuiti, ovviamente, ma anche con le versioni correnti di Windows (sola lettura con la versione obsoleta XP) e con MacOS.

  • exFAT è un'altra opzione. È nuovo rispetto a FAT32 e UDF e ha affermato di funzionare bene

    • nativamente con Windows
    • con MacOS
    • con Linux

Maggiori informazioni su exFAT

Ho iniziato a testare exFAT su Ubuntu. Intendo modificare questa risposta, quando avrò più esperienza nell'usarla. Cominciamo con i seguenti link ,

e questa riga di comando per installare il supporto [lettura / scrittura] per exFAT in Ubuntu

sudo apt-get install exfat-utils exfat-fuse
  • Può essere creato in Windows e MacOS e in Linux con la seguente riga di comando

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

    dove si xtrova la lettera di unità ed iè il numero di partizione, ad esempio /dev/sdb1.

  • Può essere mantenuto in Windows.

I miei primi risultati del test :

  • La creazione del file system exFAT ha funzionato bene in Ubuntu (16.04 LTS (64 bit), sistema installato con la serie di kernel Xenial (4.4.0-93-generico), aggiornato).
  • La scrittura e la lettura di un file superiore a 4 GiB hanno avuto esito positivo. Ubuntu ed exFAT hanno collaborato correttamente e velocemente (ho controllato con md5sume la velocità era limitata dal sistema USB).
  • Ubuntu e Windows potevano leggere ciò che era stato creato nell'altro sistema operativo. (Non ho MacOS per i test e devo fare affidamento sui rapporti di altre persone.)

finestre

Quindi, se si desidera un accesso completo in lettura / scrittura da Ubuntu e Windows, suggerirei di utilizzare NTFS , che ha il journaling ed è molto debug e raffinato come il file system [proprietario] per Windows. (È anche possibile usare exFAT .)

  • In Ubuntu è possibile utilizzare il programma GUI gpartedper creare un file system NTFS.
  • In Windows è facile creare file system NTFS ed exFAT (sono nativi).

Mac OS

In MacOS è possibile utilizzare FAT32 , UDF ed exFAT .

Puoi anche usare ext4 con una soluzione alternativa, Ubuntu Server con un server SSH in una macchina virtuale . (Penso che la stessa soluzione funzionerebbe anche con Windows.) Questo potrebbe valere la pena quando si intende accedere a molti file tramite l'unità e il suo file system, ma probabilmente non con un piccolo pendrive USB2.

Vedi questo link,

Utilizzando ext4 su OS X Yosemite, il modo lungo ma sicuro


3
AFAIR Windows XP non può scrivere su volumi UDF. Al giorno d'oggi non è un grosso problema, ma vale la pena notare, per ogni evenienza.
gronostaj,

2
macOS monta tutto come NTFS di sola lettura per impostazione predefinita (suppongo che Apple non creda che il supporto di scrittura NTFS sia sufficientemente affidabile.)
gsnedders

1
@gsnedders Mi aspetto che non credano in Windows.
wizzwizz4,

2
@sudodus Personalmente non ho avuto problemi con qualsiasi cosa, dalla pesante gestione delle partizioni NTFS alla manipolazione di stream da Debian, ma apprezzo essere al sicuro con i dati. Inoltre, ho un backup , quindi non importa se perdo i vecchi dati (posso semplicemente copiarli dal backup).
wizzwizz4,

2
Nota: è possibile utilizzare exfat su MacOS senza problemi (può persino formattare l'unità come exfat). exfat sta diventando anche l'impostazione predefinita per dischi flash / schede di memoria più grandi.
SztupY,

11

Avendo avuto un problema simile e non volevo riformattare la chiavetta USB, ho appena usato un archiviatore. Più o meno tutte le GUI moderne (come File Roller, 7Zip, ecc.) O CLI consentono di dividere il file di archivio. Imposta il limite di divisione sotto il limite FAT (che in qualche modo 4 GB), per la velocità puoi scegliere un basso tasso di compressione, anche "memorizzare", cioè non comprimere affatto, un voilà!


5

Se si ha accesso a un computer Windows, è possibile convertire il file system della chiavetta USB senza formattazione. Dovresti usare la riga di comando di Windows come segue: premi Win + R, digita cmd-> OK, nella finestra aperta inserisci il comando convert X: /FS:ntfsdove si X:trova la lettera della chiavetta USB montata. In meno di un minuto è pronto. Godere.


2
Questo metodo può essere utile :-) Ma la conversione di un file system potrebbe essere rischiosa, quindi consiglierei di eseguire il backup di tutto ciò che è importante sulla chiavetta USB prima della conversione. A proposito, hai usato questo metodo? Mantiene i file? Funziona anche da / verso exfat?
sudodus,

1
Ho usato questo metodo più volte, tutti i file erano leggibili dopo questa procedura. Questa utility funziona solo per convertire in NTFS, non viceversa.
M. Dm.

2

La riformattazione o l'utilizzo della suddivisione sono ottime opzioni, oppure potresti provare a utilizzare zip per comprimere il file, basta sapere che alcuni file sono già compressi, quindi comprimerli li renderà più grandi. (Inoltre potresti perdere la proprietà dei file, i timestamp ecc.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.