Как скопировать файл размером более 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:

      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, длинный, но безопасный способ

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

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

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

Другие вопросы по тегам