Як скопіювати файл, більший за 4 Гб, на флешку?


53

Я намагаюся скопіювати файл на 6 Гб на флешку, але він не скопіюється.


23
Чи формат USB-накопичувача формат FAT32? Ця файлова система не підтримує файли розміром більше 4 Гб. Тоді ви повинні відформатувати його інакше, наприклад, як NTFS. Будьте уважні, що форматування видаляє всі дані на диску.
Байт-командир

14
Чи можете ви, будь ласка, детальніше поставити запитання про те, що "воно не копіюється"? Які команди ви спробували? Яке повідомлення про помилку ви отримуєте? (Це дуже корисно у випадку, якщо у когось буде така ж проблема в майбутньому і шукає відповідь ...)
psmears

2
google за "не вдається скопіювати файли розміром більше 4 ГБ", і ви отримаєте багато відповідей на stackexchange
phuclv

5
Також може бути корисно включити розмір USB
Джордж Тянь

3
@Nukeface Чи можете ви включити відповідь із інструкціями, як це зробити? Залишивши напіввідповідь як коментар, часто можна принести більше шкоди, ніж користі. Дякую.
Елія Каган

Відповіді:


108

Це пов’язано з обмеженням FAT32. Файли розміром більше 4 Гб не можна зберігати на об'ємі FAT32. Форматування флешки як exFAT або NTFS вирішить цю проблему.

УВАГА: Резервне копіювання даних. Форматування видалить усі дані на вашому пристрої.


20
BTW, форматування флешки ext3також є опцією
Basile Starynkevitch

18
@BasileStarynkevitch так, але це не дуже зручно використовувати на деяких захищених ОС;)
Руслан

11
@Ruslan: Я другий. Використання ext3 / 4 в Windows було більш болісним, ніж використання exFat та NTFS в Linux.
JIV

13
Незважаючи на те, що це створення Microsoft, є багато чого сказати для exFAT. Як зазначають інші, цим керують усі три настільні ОС, тому ви будете схильні до максимізації вашої сумісності. Крім того, він був розроблений для використання на великих флеш-накопичувачах. Цитування: en.wikipedia.org/wiki/ExFAT Зокрема, оскільки він може позначати файл як суміжний і, таким чином, уникати доторкання до FAT, він працює надзвичайно ефективно у випадку використання ОП: обробляючи дуже великий файл.
dgnuff

8
@dgnuff Ви маєте на увазі всі три основні ОС на робочому столі :)
dn3s

91

Якщо ви не хочете переформатувати USB-накопичувач або потрібен FAT32, ви можете просто розділити великий файл на частини. Більшість менеджерів архівів постачаються з роздільною опцією і для командного рядка 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 гібібайта ( GiB , це не те, що гігабайт ГБ) мінус 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-накопичувачів.
Monty Harder

Я думаю, -b 4095Mбуло б набагато простіше і досягти того ж, що і bcкоманда. У Bash один також може використовувати арифметику оболонки: $(((4<<30)-1)).
Девід Фоерстер

39

Проблема: FAT32 має обмеження 4GiB для розміру файлу

Розглядаються різні сценарії та файлові системи, шукаючи альтернативи з урахуванням

  • проблема розміру файлу
  • які операційні системи, які повинні читати / записувати USB-накопичувач

Лише Linux

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

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

Повна сумісність з Linux, Windows та MacOS

У Windows є проблеми з файловими системами Linux, і я думаю, що MacOS має проблеми як з файловими системами Linux, так і з NTFS . Тож якщо ви хочете "повної сумісності" для читання та письма, залишаються лише FAT32 , UDF та exFAT .

  • FAT32 має обмеження розміру файлу 4GiB (гібібайт, база 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, ймовірно, не має інструментів для відновлення файлової системи,

    • ФОС
    • Можливо, можна знайти інструменти для ремонту в Windows за цим посиланням: fsck інструменти для UDF , а в якості вихідного коду є якийсь інструмент
    • Можна створити в Ubuntu
    • Сумісний із посиланнями в стилі Linux.
    • Сумісний з дозволами стилю Linux. Ви можете створювати та змінювати дозволи окремих файлів (що неможливо із FAT та NTFS).
    • Розділ UDF не буде запропоновано для форматування Windows 10 (в той час як файлова система linux ext4 постраждала і може бути знищена помилково).
    • Як створити та використовувати UDF: Використання UDF як наступника FAT для USB-накопичувачів

      Отже, щоб використовувати його, якщо припустити, що ваш 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-розрядна), встановлена ​​система із серією ядра Xenial (4.4.0-93-generic).
  • Написання та читання файлу більше 4 Гб було успішним. Ubuntu та exFAT співпрацювали правильно та швидко (я перевірив, md5sumі швидкість була обмежена системою USB).
  • Ubuntu та Windows могли прочитати, що було створено в іншій операційній системі. (У мене немає MacOS для тестування, і я повинен покладатися на звіти інших людей.)

Windows

Отже, якщо ви хочете отримати повний доступ для читання / запису з Ubuntu та Windows, я б запропонував використовувати NTFS , який має журнал і дуже налагоджений та відшліфований як [власна] файлова система для Windows. (Також можливо використовувати exFAT .)

  • В Ubuntu ви можете використовувати програму GUI gpartedдля створення файлової системи NTFS.
  • У Windows легко створити файлові системи NTFS та exFAT (вони є рідними).

MacOS

У MacOS можна використовувати FAT32 , UDF та exFAT .

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

Дивіться це посилання,

Використання ext4 в OS X Yosemite - довгий, але безпечний шлях


3
AFAIR Windows XP не може записувати в томи UDF. Сьогодні це не велика проблема, але все-таки варто зазначити, про всяк випадок.
gronostaj

2
macOS монтує все як NTFS лише для читання (я вважаю, Apple не вірить, що підтримка запису NTFS є достатньо надійною.)
gsnedders

1
@gsnedders Я думаю, що вони просто не вірять в Windows.
wizzwizz4

2
@sudodus Особисто у мене не було проблем із усім, від важкого керування розділами NTFS до маніпулювання потоками з Debian, але я ціную безпеку з даними. Також у мене є резервна копія , тому не має значення, якщо я втрачу старі дані (я можу просто скопіювати їх із резервної копії).
wizzwizz4

2
Примітка: ви можете використовувати exfat на MacOS без проблем (він навіть може відформатувати диск як exfat). exfat також стає типовим для великих флеш-дисків / карт пам'яті.
SztupY

11

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


5

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


2
Цей спосіб може бути корисним :-) Але перетворення файлової системи може бути ризикованим, тому я рекомендую зробити резервну копію всього важливого на USB-накопичувачі перед конвертацією. До речі, ви використовували цей метод? Чи зберігає файли? Це працює також до / від exfat?
sudodus

1
Я використовував цей метод кілька разів, всі файли були прочитані після цієї процедури. Ця утиліта працює лише для перетворення в NTFS, а не навпаки.
М. Дм.

2

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.