web-dev-qa-db-ja.com

4GBを超えるファイルをUSBフラッシュドライブにコピーするにはどうすればよいですか?

6GBファイルをUSBフラッシュドライブにコピーしようとしていますが、コピーされません。

52
VJ Ranga

これは、FAT32の制限によるものです。 4GBを超えるファイルできないはFAT32ボリュームに保存されます。フラッシュドライブをexFATまたはNTFSとしてフォーマットすると、この問題が解決します。

警告:データをバックアップします。フォーマットすると、デバイス上のすべてのデータが削除されます。

107
Russo

USBドライブを再フォーマットしたくない、またはFAT32にする必要がない場合は、大きなファイルを単純にsplit分割できます。ほとんどのアーカイブマネージャーには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のファイルサイズは、FAT32形式のUSBドライブの最大ファイルサイズと正確に一致します。これは、4 Gibibyte(GiB、つまりnotギガバイトGBと同じ)マイナス1バイト
この重要な追加について Gilles に感謝します。


ファイルに再度アクセスする前に、まずその部分をmergeする必要があります。 Linuxシステムでは、次の方法で実行できます。

cat output.file.* > input.file

これによりファイルが誤って読み取られるのではないかと心配している場合 Bashでは、ワイルドカード展開が正しいことを保証されていますか?
Windowsシステムで対応するコマンドは次のとおりです。

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

他の多くの便利なGNUユーティリティsplitもWindowsにインストールできます。 GNUユーティリティfor Win32 を参照してください。

91
dessert

問題:FAT32にはファイルサイズに4GiBの制限があります

さまざまなシナリオとファイルシステムが検討され、考慮された代替案が検索されます

  • ファイルサイズの問題
  • uSBドライブを読み書きするオペレーティングシステム

Linuxのみ

Ubuntu(および他のLinuxディストリビューション)でのみドライブを使用する場合は、linuxファイルシステムを使用することをお勧めします。たとえば、ext4です。これにより、読み取り/書き込み速度が速くなり(どのプロセスがボトルネックかによって異なります)、所有権とアクセス許可に関する柔軟性が高くなります。

  • GUIプログラムgpartedを使用して、ext4ファイルシステムを作成できます。

Linux、Windows、MacOSとの完全な互換性

WindowsにはLinuxファイルシステムに問題があり、MacOSにはLinuxファイルシステムとNTFSの両方に問題があると思います。したがって、読み取りと書き込みの「完全な互換性」が必要な場合は、FAT32UDF、およびexFATのみが残ります。

  • FAT32には、ファイルサイズに4GiB(ギビバイト、ベース2)の制限があります。

    • 3つすべてのオペレーティングシステムで作成できます。
    • Windowsにアクセスできる場合は、Windowsで保守(修復)します。
    • パッケージでdosfsckに付属しているdosfstoolsを使用してUbuntuで保守できます。

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

      xはドライブ文字で、nはパーティション番号です。たとえば、ドライブbの最初のパーティションの/dev/sdb1です。

  • UDFおそらくファイルシステムを修復するツールが欠けている、

    • フォス
    • このリンクを介してWindowsで修復ツールを見つけることができる場合があります: fsf tools for UDF 、およびソースコードとして利用可能ないくつかのツールがあります
    • Ubuntuで作成できます
    • Linuxスタイルのリンクと互換性があります。
    • Linuxスタイルの権限と互換性があります。個々のファイルのアクセス許可を作成および変更できます(FATおよびNTFSでは不可能です)。
    • UDFパーティションは、Windows 10でフォーマットを要求されません(Linux ext4ファイルシステムが影響を受け、誤って破棄される可能性があります)。
    • UDFの作成および使用方法: SBスティックのFATの後継としてUDFを使用

      したがって、使用するには、USBスティックが/dev/sdxであると仮定します。

      1. パッケージudftoolsをインストールします

        Sudo apt-get install udftools
        
      2. gpartedまたはgnome-disksでパーティションテーブルと1つのパーティションを作成します

      3. 危険なddでターゲットパーティションの最初のmibibyteをワイプします(コマンドラインを再確認してください!)

        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
        

      UDFでフォーマットされた後、USBスティックがFATとして検出されないように、パーティションの最初のmibibyteをワイプして以前のファイルシステム情報(またはその他の残りのデータ)を消去します。

      -b 512は、UDF仕様で要求されるように、USBスティックの物理ブロックサイズに等しいファイルシステムブロックサイズを強制します。より適切なブロックサイズのUSBスティックがあれば幸いです。

      その後、USBスティックはGNU/Linuxおよび他の無料オペレーティングシステムでの読み取りおよび書き込みに使用できるようになりますが、Windowsの現在のバージョン(古いバージョンXPでは読み取り専用)およびMacOSでも使用できます。

  • exFATは別のオプションです。FAT32と比較して新しいUDFそしてうまく機能すると主張した

    • windowsでネイティブに
    • macOSで
    • linuxで

ExFATの詳細

UbuntuでexFATのテストを開始しました。この回答を編集する予定がありますが、使用した経験があります。次から始めましょうlinks

そして、このコマンドラインはUbuntuでexFATの[読み取り/書き込み]サポートをインストールします

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 GiBを超えるファイルの書き込みと読み取りが成功しました。 UbuntuとexFATは正しく高速に連携しました(md5sumで確認しましたが、速度はUSBシステムによって制限されていました)。
  • UbuntuとWindowsは、他のオペレーティングシステムで作成されたものを読み取ることができます。 (テスト用のMacOSがなく、他の人からのレポートに頼らなければなりません。)

したがって、UbuntuとWindowsから完全な読み取り/書き込みアクセスが必要な場合、NTFSを使用することをお勧めします。 (exFATを使用することもできます。)

  • Ubuntuでは、GUIプログラムgpartedを使用してNTFSファイルシステムを作成できます。
  • Windowsでは、NTFSおよびexFATファイルシステム(ネイティブ)を簡単に作成できます。

マックOS

MacOSでは、FAT32UDFおよびexFATを使用できます。

ext4と回避策、Ubuntuサーバーと仮想マシンのSSHサーバーを使用することもできます。 (同じ回避策はWindowsでも機能すると思います。)これは、ドライブとそのファイルシステムを介して多くのファイルにアクセスする場合に価値があるかもしれませんが、小さなUSB2ペンドライブではおそらくそうではありません。

このリンクをご覧ください。

OS X Yosemiteでext4を使用する、長くても安全な方法

39
sudodus

似たような問題があり、USBスティックを再フォーマットしたくないので、アーカイバを使用しました。ほぼすべての最新のGUI(ファイルローラー、7Zipなど)またはCLIでは、アーカイブファイルを分割できます。分割制限をFAT境界(4GB程度)未満に設定します。速度を上げるには、「ストア」でさえ低い圧縮率を選択できます。つまり、まったく圧縮しないでください。

11
Oleg Lobachev

再フォーマットまたは分割の使用は素晴らしいオプションです。または、Zipを使用してファイルを圧縮してみてください。一部のファイルは既に圧縮されているので、圧縮するとサイズが大きくなります。 (また、ファイルの所有権、タイムスタンプなどを失う可能性があります)

2