Как скопировать файл размером более 4 ГБ на флэш-накопитель USB?
Я пытаюсь скопировать файл 6 ГБ на флэш-накопитель USB, но он не будет копироваться.
6 ответов
Это связано с ограничением FAT32. Файлы размером более 4 ГБ не могут быть сохранены на томе FAT32. Форматирование флешки как exFAT или NTFS решит эту проблему.
ВНИМАНИЕ: Резервное копирование ваших данных. Форматирование удалит все данные на вашем устройстве.
Если вы не хотите переформатировать 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 байт.
Спасибо Gilles за это важное дополнение.
Прежде чем вы снова сможете получить доступ к файлу, вам нужно сначала объединить его части. В системах Linux вы можете сделать это с:
cat output.file.* > input.file
Если вы боитесь, что это может привести к неправильной сортировке файлов в Bash, гарантированно ли будут использоваться расширения с подстановочными знаками?
Соответствующая команда в системах Windows:
copy /b output.file.aa+output.file.ab input.file
Наряду со многими другими полезными утилитами GNU split
может быть установлен и в Windows, см. утилиты GNU для Win32.
Проблема: 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
для первого раздела в диске б.
UDF, вероятно, не хватает инструментов для восстановления файловой системы,
- FOSS
- Может быть, можно найти инструменты восстановления в Windows по этой ссылке: fsck tools for UDF, и есть некоторый инструмент, доступный в виде исходного кода
- Может быть создан в Ubuntu
- Совместим со ссылками в стиле Linux.
- Совместим с разрешениями в стиле Linux. Вы можете создавать и изменять разрешения для отдельных файлов (что невозможно в FAT и NTFS).
- Раздел 10 UDF не будет запрошен для форматирования в Windows 10 (в то время как файловая система linux ext4 затронута и может быть уничтожена по ошибке).
Как создать и использовать UDF: Использование UDF в качестве преемника FAT для USB-накопителей
Итак, чтобы использовать его, предполагая, что ваша флешка
/dev/sdx
:Установить пакет
udftools
sudo apt-get install udftools
Создать таблицу разделов и один раздел с
gparted
или жеgnome-disks
Протрите первый мибибайт целевого раздела рискованным
dd
(перепроверьте командную строку!)sudo dd if=/dev/zero of=/dev/sdx1 bs=1M count=1
Бежать
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. Я намереваюсь отредактировать этот ответ, когда у меня будет больше опыта его использования. Давайте начнем со следующих ссылок,
https://en.wikipedia.org/wiki/ExFAT
ExFAT - это проприетарная файловая система Microsoft, оптимизированная для
встроенные системы, потому что она легкая и лучше подходит для решений с низким объемом памяти и низким энергопотреблением, а также может быть реализована во встроенном программном обеспечении.
Как получить диск отформатированный с 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, длинный, но безопасный способ
Из-за проблемы с симуляцией и нежелания переформатировать флешку, я просто использовал архиватор. Более или менее все современные графические интерфейсы (такие как File Roller, 7Zip и т. Д.) Или CLI позволяют разбивать архивный файл. Установите предел разделения ниже границы FAT (то есть 4 ГБ), для скорости вы можете выбрать низкую степень сжатия, даже "сохранить", то есть вообще не сжимать, вуаля!
Если у вас есть доступ к машине с Windows, вы можете конвертировать файловую систему USB-флешки без форматирования. Вы должны использовать командную строку Windows следующим образом: нажмите Win + R
, тип cmd
-> OK
, в открывшемся окне введите команду convert X: /FS:ntfs
где X:
это буква для вашей смонтированной USB-флешки. Не прошло и минуты, как все готово. Наслаждаться.
Переформатирование или использование split - отличные варианты, или вы можете попробовать использовать zip для сжатия файла, просто знайте, что некоторые файлы уже сжаты, поэтому их сжатие сделает их больше. (Также вы можете потерять право собственности на файл, метки времени и т. Д.)