Sto cercando di copiare un file da 6 GB su un'unità flash USB ma non verrà copiato.
Sto cercando di copiare un file da 6 GB su un'unità flash USB ma non verrà copiato.
Risposte:
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.
ext3
è anche un'opzione
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 split
per la documentazione completa. Questo creerà i seguenti file:
4,0G output.file.aa
1,6G output.file.ab
La dimensione del file output.file.aa
corrisponde 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 split
possono essere installate anche in Windows, vedere le utility GNU per Win32 .
split
anche senza la distinzione tra GiB e GB. Ma io manderò un attaboy per questo ...
split
esiste proprio per questo scopo e non è richiesta sul lato ricevente. FAT32 è la lingua franca delle unità USB per un motivo.
-b 4095M
sarebbe molto più semplice e raggiungerebbe lo stesso bc
comando. In Bash si potrebbe anche usare shell aritmetica: $(((4<<30)-1))
.
Vengono esaminati diversi scenari e file system alla ricerca di alternative che tengano conto
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.
gparted
per creare il file system ext4 .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 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/sdb1
per la prima partizione nell'unità b.
UDF probabilmente non ha gli strumenti per riparare il file system,
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
:
Installa il pacchetto udftools
sudo apt-get install udftools
Creare una tabella delle partizioni e una partizione con gparted
ognome-disks
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
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
Ho iniziato a testare exFAT su Ubuntu. Intendo modificare questa risposta, quando avrò più esperienza nell'usarla. Cominciamo con i seguenti link ,
ExFAT è un file system proprietario di Microsoft ottimizzato per
sistemi integrati perché è leggero ed è più adatto per soluzioni con memoria ridotta e requisiti di bassa potenza e può essere implementato nel firmware.
Come ottenere un'unità formattata con exfat funzionante (in Ubuntu)
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 x
trova 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 :
md5sum
e la velocità era limitata dal sistema USB).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 .)
gparted
per creare un file system NTFS.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,
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à!
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:ntfs
dove si X:
trova la lettera della chiavetta USB montata. In meno di un minuto è pronto. Godere.
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.)