Próbuję skopiować plik o pojemności 6 GB na dysk flash USB, ale nie można go skopiować.
Próbuję skopiować plik o pojemności 6 GB na dysk flash USB, ale nie można go skopiować.
Odpowiedzi:
Wynika to z ograniczenia FAT32. Pliki większe niż 4 GB nie mogą być przechowywane na woluminie FAT32. Sformatowanie dysku flash jako exFAT lub NTFS rozwiąże ten problem.
OSTRZEŻENIE: Utwórz kopię zapasową danych. Formatowanie spowoduje usunięcie wszystkich danych z urządzenia.
ext3
również jest opcją
Jeśli nie chcesz ponownie formatować dysku USB lub potrzebujesz FAT32, możesz po prostu podzielić duży plik na części. Większość menedżerów archiwów jest dostarczana z opcją podziału, aw wierszu polecenia jest split
np. Dla twojej sprawy:
split -b4294967295 /path/to/input.file /path/to/pen/drive/output.file.
Zobacz man split
pełną dokumentację. Spowoduje to utworzenie następujących plików:
4,0G output.file.aa
1,6G output.file.ab
Rozmiar pliku output.file.aa
odpowiada dokładnie maksymalnemu rozmiarowi dysku USB sformatowanego w systemie FAT32, czyli 4 Gibibyte (GiB, to nie to samo co Gigabyte GB) minus 1 bajt .
Dzięki Gilles za ten ważny dodatek.
Aby ponownie uzyskać dostęp do pliku, musisz najpierw scalić jego części. W systemach Linux możesz to zrobić za pomocą:
cat output.file.* > input.file
Jeśli obawiasz się, że może to niepoprawnie posortować pliki w Bash, czy rozszerzenia wieloznaczne są gwarantowane w porządku?
Odpowiednie polecenie w systemach Windows to:
copy /b output.file.aa+output.file.ab input.file
Wraz z wieloma innymi przydatnymi narzędziami GNU split
można również zainstalować w systemie Windows, zobacz Narzędzia GNU dla Win32 .
split
nawet bez rozróżnienia między GiB i GB. Ale wyślę za to attaboy ...
split
istnieje właśnie w tym celu i nie jest wymagane po stronie odbierającej. FAT32 jest nie bez powodu lingua franca napędów USB.
-b 4095M
byłoby to o wiele prostsze i osiągnąć to samo, co bc
polecenie. W Bash można również użyć powłoki arytmetyki: $(((4<<30)-1))
.
Badane są różne scenariusze i systemy plików w poszukiwaniu alternatyw z uwzględnieniem
Jeśli zamierzasz używać napędu tylko z Ubuntu (i innymi dystrybucjami Linuksa), dobrym pomysłem jest użycie systemu plików Linux , na przykład ext4 . W ten sposób możesz uzyskać wyższą prędkość odczytu / zapisu (w zależności od tego, który proces jest wąskim gardłem) i uzyskać większą elastyczność w zakresie własności i uprawnień.
gparted
do stworzenia systemu plików ext4 .Windows ma problemy z systemami plików Linux i myślę, że MacOS ma problemy zarówno z systemami plików Linux, jak i NTFS . Jeśli więc chcesz mieć „pełną kompatybilność” do odczytu i zapisu, pozostaną tylko FAT32 , UDF i exFAT .
FAT32 ma limit rozmiaru 4 GiB (gibibajt, podstawa 2).
Może być obsługiwany w Ubuntu za dosfsck
pomocą pakietu dosfstools
,
sudo apt-get install dosfstools
sudo dosfsck -a /dev/sdxn # least destructive option
sudo dosfsck -r /dev/sdxn # more powerful option
gdzie x to litera dysku, a n to numer partycji, na przykład /dev/sdb1
dla pierwszej partycji na dysku b.
UDF prawdopodobnie nie ma narzędzi do naprawy systemu plików,
Jak utworzyć i używać UDF: Używanie UDF jako następcy FAT dla pamięci USB
Tak więc, aby go użyć, zakładając, że pamięć USB to /dev/sdx
:
Zainstaluj pakiet udftools
sudo apt-get install udftools
Utwórz tablicę partycji i jedną partycję za pomocą gparted
lubgnome-disks
Przetrzyj pierwszy mibibajt partycji docelowej ryzykownym dd
(sprawdź dwukrotnie wiersz poleceń!)
sudo dd if=/dev/zero of=/dev/sdx1 bs=1M count=1
Run mkudffs
,
sudo mkudffs -b 512 --media-type=hd --lvid=my-label /dev/sdx1
Wyczyść pierwszy mibibajt partycji, aby usunąć poprzednie informacje o systemie plików (lub inne pozostałe dane), aby zapobiec wykryciu pamięci USB jako FAT po sformatowaniu za pomocą UDF.
Ma -b 512
to na celu wymuszenie rozmiaru bloku systemu plików równego rozmiarowi bloku fizycznego pamięci USB, zgodnie ze specyfikacją UDF. Dostosuj go, jeśli masz szczęście posiadania pamięci USB o bardziej odpowiednim rozmiarze bloku.
Następnie pamięć USB będzie mogła być używana do odczytu i zapisu w GNU / Linux i innych bezpłatnych systemach operacyjnych, ale także w bieżących wersjach systemu Windows (tylko do odczytu w nieaktualnej wersji XP) i MacOS.
exFAT to kolejna opcja. Jest nowy w porównaniu do FAT32 i UDF i twierdzi, że działa dobrze
Zacząłem testować exFAT w Ubuntu. Zamierzam zredagować tę odpowiedź, gdy będę miał większe doświadczenie w korzystaniu z niej. Zacznijmy od następujących linków ,
ExFAT to zastrzeżony system plików Microsoft zoptymalizowany pod kątem
systemy wbudowane, ponieważ są lekkie i lepiej nadają się do rozwiązań o niskim zapotrzebowaniu na pamięć i niskim zużyciu energii oraz mogą być implementowane w oprogramowaniu układowym.
Jak uzyskać sformatowany dysk z działającym programem exfat (w systemie Ubuntu)
i ten wiersz poleceń, aby zainstalować obsługę [odczytu / zapisu] dla exFAT w Ubuntu
sudo apt-get install exfat-utils exfat-fuse
Można go utworzyć w systemie Windows i MacOS oraz w systemie Linux za pomocą następującego wiersza polecenia
sudo mkfs.exfat -n YOUR-LABEL /dev/sdxi
gdzie x
jest na przykład litera dysku i i
numer partycji /dev/sdb1
.
Może być obsługiwany w systemie Windows.
Moje pierwsze wyniki testu :
md5sum
a szybkość była ograniczona przez system USB).Więc jeśli chcesz mieć pełny dostęp do odczytu / zapisu z Ubuntu i Windows, sugerowałbym użycie NTFS , który ma kronikowanie, jest bardzo debugowany i dopracowany jako [zastrzeżony] system plików dla Windows. (Możliwe jest również użycie exFAT .)
gparted
do stworzenia systemu plików NTFS.W MacOS można używać FAT32 , UDF i exFAT .
Możesz także użyć ext4 z obejściem, Ubuntu Server z serwerem SSH na maszynie wirtualnej . (Myślę, że to samo obejście będzie działać również w systemie Windows.) Może to być przydatne, jeśli zamierzasz uzyskać dostęp do wielu plików za pośrednictwem napędu i systemu plików, ale prawdopodobnie nie za pomocą małego pendrive USB2.
Zobacz ten link,
Korzystanie z ext4 na OS X Yosemite, długi, ale bezpieczny sposób
Miałem podobny problem i nie chciałem ponownie sformatować pamięci USB, po prostu użyłem archiwizatora. Mniej więcej wszystkie nowoczesne GUI (takie jak File Roller, 7Zip itp.) Lub CLI pozwalają na dzielenie pliku archiwum. Ustaw limit podziału poniżej granicy FAT (około 4 GB), dla prędkości możesz wybrać niski współczynnik kompresji, nawet „przechowywać”, tj. Wcale nie kompresować, voila!
Jeśli masz dostęp do komputera z systemem Windows, możesz przekonwertować system plików pamięci USB bez formatowania. Powinieneś użyć wiersza poleceń systemu Windows w następujący sposób: naciśnij Win + R
, wpisz cmd
-> OK
, w otwartym oknie wprowadź polecenie, convert X: /FS:ntfs
gdzie X:
jest litera dla zamontowanej pamięci USB. W mniej niż minutę jest gotowy. Cieszyć się.
Ponowne formatowanie lub użycie podziału to świetne opcje, możesz też użyć zip do skompresowania pliku, po prostu wiedz, że niektóre pliki są już skompresowane, więc skompresowanie ich zwiększy je. (Możesz także utracić własność pliku, znaczniki czasu itp.)