Как скопировать файл размером более 4 ГБ на флэш-накопитель USB?

53

Я пытаюсь скопировать файл 6 ГБ на флэш-накопитель USB, но он не будет копироваться.

VJ Ranga
источник
23
USB-накопитель отформатирован в FAT32? Эта файловая система не поддерживает файлы размером более 4 ГБ. Вы должны отформатировать его иначе, например, как NTFS. Помните, что форматирование удаляет все данные на диске.
Byte Commander
14
Не могли бы вы добавить более подробную информацию в вопросе о том, что «он не будет копировать»? Какие команды вы пробовали? Какое сообщение об ошибке вы получаете? (Это очень полезно, если в будущем у кого-то
возникнет
2
Google для "не может скопировать файлы размером более 4 ГБ", и вы получите тонны ответов на stackexchange
phuclv
5
Также может быть полезно включить размер USB
Джордж Тян
3
@Nukeface Можете ли вы включить ответ с инструкциями, как это сделать? Оставление полуответа в качестве комментария часто может принести больше вреда, чем пользы. Благодарю.
Элия ​​Каган,

Ответы:

109

Это связано с ограничением FAT32. Файлы размером более 4 ГБ не могут быть сохранены на томе FAT32. Форматирование флешки как exFAT или NTFS решит эту проблему.

ВНИМАНИЕ: Резервное копирование ваших данных. Форматирование удалит все данные на вашем устройстве.

Russo
источник
20
Кстати, форматирование флешки как ext3тоже вариант
Старынкевич
18
@BasileStarynkevitch да, но это не очень удобно для некоторых проприетарных ОС;)
Руслан
11
@Ruslan: я второй это. Использование ext3 / 4 в Windows было более болезненным, чем использование exFat и NTFS в Linux.
JIV
13
Несмотря на то, что это создание Microsoft, многое можно сказать о exFAT. Как уже отмечали другие, он обрабатывается всеми тремя настольными ОС, поэтому вы будете стремиться к максимальной совместимости. Кроме того, он был разработан для использования на больших флешках. Образец цитирования: en.wikipedia.org/wiki/ExFAT В частности, поскольку он может пометить файл как непрерывный и, таким образом, избежать прикосновения к FAT, он работает чрезвычайно эффективно в случае использования OP: обработка очень большого файла.
dgnuff
8
@dgnuff, вы имеете в виду, все три основные настольные ОС :)
dn3s
91

Если вы не хотите переформатировать USB-накопитель или вам нужен FAT32, вы можете просто разбить большой файл на части. Большинство менеджеров архивов поставляются с опцией split и для командной строки split, например, для вашего случая:

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

Смотрите man splitдля полной документации. Это создаст следующие файлы:

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

Размер файла output.file.aaточно соответствует максимальному размеру файла вашего USB-накопителя в формате FAT32, который составляет 4 гибибайта (ГиБ, это не то же самое, что гигабайт ГБ) минус 1 байт .
Спасибо Жилю за это важное дополнение.


Прежде чем вы снова сможете получить доступ к файлу, вам нужно сначала объединить его части. В системах Linux вы можете сделать это с:

cat output.file.* > input.file

Если вы боитесь, что это может привести к неправильной сортировке файлов в Bash, гарантированно ли будут использоваться расширения с подстановочными знаками?
Соответствующая команда в системах Windows:

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

Наряду со многими другими полезными утилитами GNU также splitможно установить в Windows, см. Утилиты GNU для Win32 .

Десерт
источник
2
Бьюсь об заклад, половина голосов, которые я получаю здесь, только из-за GiB против GB. ;)
десерт
2
Я бы проголосовал за splitдаже без различия между GiB и GB. Но я пришлю для этого адвоката ...
Zeiss Ikon
1
@ Dessert Я бы ожидал, что вы получите только около 7,4% больше голосов.
Элия ​​Каган
1
Я проголосовал, потому что переформатирование диска только для того, чтобы можно было переместить один большой файл, - ужасный ответ, когда он splitсуществует именно для этой цели и не требуется для принимающей стороны. FAT32 - это лингва франка USB-накопителей по определенной причине.
Монти Хардер
Я думаю -b 4095M, будет гораздо проще и добиться того же, что и bcкоманда. В Bash один также может использовать оболочки арифметическое: $(((4<<30)-1)).
Дэвид Фёрстер
39

Проблема: FAT32 имеет ограничение в 4 ГБ для размера файла

Различные сценарии и файловые системы рассматриваются в поисках альтернатив с учетом

  • проблема с размером файла
  • какие операционные системы должны читать / записывать USB-накопитель

Только Linux

Если вы намереваетесь использовать диск только с Ubuntu (и другими дистрибутивами Linux), рекомендуется использовать файловую систему Linux , например, ext4 . Таким образом, вы можете получить более высокую скорость чтения / записи (в зависимости от того, какой процесс является узким местом), и вы получите более высокую гибкость в отношении владения и разрешений.

  • Вы можете использовать программу gpartedс графическим интерфейсом для создания файловой системы ext4 .

Полная совместимость с Linux, Windows и MacOS

У Windows проблемы с файловыми системами Linux, и я думаю, что у MacOS есть проблемы как с файловыми системами Linux, так и с NTFS . Поэтому, если вы хотите «полную совместимость» для чтения и записи, остаются только FAT32 , UDF и exFAT .

  • FAT32 имеет ограничение в 4 ГБ (гибибайт, база 2) для размера файла.

    • Может быть создан во всех трех операционных системах.
    • Поддерживать (восстанавливать) в Windows, если у вас есть доступ к Windows.
    • Может поддерживаться в Ubuntu dosfsckс помощью пакета dosfstools,

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

      где x - буква диска, а n - номер раздела, например, /dev/sdb1для первого раздела на диске b.

  • UDF, вероятно, не хватает инструментов для восстановления файловой системы,

    • FOSS
    • Может быть, можно найти инструменты восстановления в Windows по этой ссылке: fsck tools for UDF , и есть некоторый инструмент, доступный в виде исходного кода
    • Может быть создан в Ubuntu
    • Совместим со ссылками в стиле Linux.
    • Совместим с разрешениями в стиле Linux. Вы можете создавать и изменять разрешения для отдельных файлов (что невозможно в FAT и NTFS).
    • Раздел 10 UDF не будет запрошен для форматирования в Windows 10 (в то время как файловая система linux ext4 затронута и может быть уничтожена по ошибке).
    • Как создать и использовать UDF: Использование UDF в качестве преемника FAT для USB-накопителей

      Итак, чтобы использовать его, предполагая, что ваша флешка /dev/sdx:

      1. Установить пакет udftools

        sudo apt-get install udftools
        
      2. Создать таблицу разделов и один раздел с gpartedилиgnome-disks

      3. Протрите первый мибибайт целевого раздела с рисковым dd(перепроверьте командную строку!)

        sudo dd if=/dev/zero of=/dev/sdx1 bs=1M count=1
        
      4. Беги mkudffs,

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

      Протрите первый мибибайт раздела, чтобы стереть информацию о предыдущей файловой системе (или другие оставшиеся данные), чтобы предотвратить обнаружение USB-флешки как FAT после того, как она была отформатирована с помощью UDF.

      Это -b 512означает, что размер блока файловой системы должен быть равен размеру физического блока USB-накопителя, как того требует спецификация UDF. Адаптируйте его, если вам повезет с USB-накопителем с более подходящим размером блока.

      После этого ваш USB-накопитель будет пригоден для чтения и записи с GNU / Linux и другими бесплатными операционными системами, но также и с текущими версиями Windows (только для чтения с устаревшей версией XP) и с MacOS.

  • exFAT это еще один вариант. Это новый по сравнению с FAT32 и UDF и заявлено, чтобы работать хорошо

    • изначально с Windows
    • с MacOS
    • с Linux

Подробнее о exFAT

Я начал тестировать exFAT в Ubuntu. Я намереваюсь отредактировать этот ответ, когда у меня будет больше опыта его использования. Давайте начнем со следующих ссылок ,

и эта командная строка для установки поддержки [чтение / запись] для exFAT в Ubuntu

sudo apt-get install exfat-utils exfat-fuse
  • Может быть создан в Windows и MacOS и в Linux с помощью следующей командной строки

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

    где , например, xбуква диска и iномер раздела /dev/sdb1.

  • Может поддерживаться в Windows.

Мои первые результаты теста :

  • Создание файловой системы exFAT хорошо работало в Ubuntu (16.04 LTS (64-bit), установленная система с ядром серии Xenial (4.4.0-93-generic), на сегодняшний день).
  • Запись и чтение файла размером более 4 ГиБ были успешными. Ubuntu и exFAT работали правильно и быстро (я проверял, md5sumи скорость была ограничена системой USB).
  • Ubuntu и Windows могли читать то, что было создано в другой операционной системе. (У меня нет MacOS для тестирования, и мне приходится полагаться на отчеты других людей.)

Windows

Поэтому, если вы хотите получить полный доступ для чтения / записи из Ubuntu и Windows, я бы предложил вам использовать NTFS с журналированием, которая очень отлажена и отлажена как [проприетарная] файловая система для Windows. (Также возможно использовать exFAT .)

  • В Ubuntu вы можете использовать программу gpartedс графическим интерфейсом для создания файловой системы NTFS.
  • В Windows легко создавать файловые системы NTFS и exFAT (они являются родными).

MacOS

В MacOS можно использовать FAT32 , UDF и exFAT .

Вы также можете использовать ext4 с обходным решением, Ubuntu Server с SSH-сервером на виртуальной машине . (Я думаю, что тот же обходной путь подойдет и для Windows.) Это может быть полезно, если вы собираетесь получить доступ ко многим файлам через диск и его файловую систему, но, вероятно, не с небольшим USB2-приводом.

Смотрите эту ссылку,

Использование ext4 на OS X Yosemite, длинный, но безопасный способ

sudodus
источник
3
AFAIR Windows XP не может записывать в тома UDF. Это не большая проблема в наше время, но все же стоит отметить, на всякий случай.
Гроностай
2
macOS по умолчанию монтирует все как NTFS только для чтения (я полагаю, Apple не верит, что поддержка записи NTFS достаточно надежна).
gsnedders
1
@gsnedders Я думаю, они просто не верят в Windows.
wizzwizz4
2
@sudodus Лично у меня не было проблем со всем, от тяжелого управления разделами NTFS до манипулирования потоками из Debian, но я ценю безопасность данных. Кроме того, у меня есть резервная копия , поэтому не имеет значения, если я потеряю старые данные (я могу просто скопировать их из резервной копии).
wizzwizz4
2
Примечание: вы можете без проблем использовать exfat на MacOS (он даже может отформатировать диск как exfat). exfat также становится по умолчанию для больших флешек / карт памяти.
SztupY
11

Из-за проблемы с симуляцией и нежелания переформатировать флешку, я просто использовал архиватор. Более или менее все современные графические интерфейсы (такие как File Roller, 7Zip и т. Д.) Или CLI позволяют разбивать архивный файл. Установите предел разделения ниже границы FAT (то есть 4 ГБ), для скорости вы можете выбрать низкую степень сжатия, даже «сохранить», то есть вообще не сжимать, вуаля!

Олег Лобачев
источник
5

Если у вас есть доступ к машине с Windows, вы можете конвертировать файловую систему USB-флешки без форматирования. Вы должны использовать командную строку Windows следующим образом: нажмите Win + R, введите cmd-> OK, в открывшемся окне введите команду, convert X: /FS:ntfsгде X:находится буква для вашего подключенного USB-накопителя. Не прошло и минуты, как все готово. Наслаждаться.

М. Дм.
источник
2
Этот метод может быть полезен :-) Но преобразование файловой системы может быть рискованным, поэтому я бы рекомендовал сделать резервную копию всего важного на USB-карте перед преобразованием. Кстати, вы использовали этот метод? Сохраняет ли он файлы? Работает ли также в / из exfat?
Судод
1
Я использовал этот метод несколько раз, все файлы были доступны для чтения после этой процедуры. Эта утилита работает только для преобразования в NTFS, а не наоборот.
М. Дм.
2

Переформатирование или использование split - отличные варианты, или вы можете попробовать использовать zip для сжатия файла, просто знайте, что некоторые файлы уже сжаты, поэтому их сжатие сделает их больше. (Также вы можете потерять право собственности на файл, метки времени и т. Д.)

Джебидие Корнелл
источник