あるハードドライブの内容を別のハードドライブにコピーしようとしています。
ただし、コピーが完了すると、コピーが占めるスペースは元のファイルよりも少なくなります。
したがって、すべてのファイルがコピーされるわけではありません。
これは、一定数のフォルダーを超えるとファイルがコピーされなくなるためではないかと考えています。
これは正しいでしょうか? もし正しいなら、どうすればこれを防ぐことができますか?
OS: Windows 8.1 Pro
すみません、700のつもりでしたイギリスないメガバイト!!
今 Linux で試してみて、同じことが起こるかどうか確認します。
答え1
短い答え:
必ずしもそうではありません。デバイス間のクラスター サイズが異なるだけである可能性があります。
さらにいくつか言葉を挙げます:
ファイルをデバイスから別のデバイス(HDDから別のHDD)にコピーする場合、異なるクラスタサイズも考慮する必要があります。ファイルシステムタイプの動物園ここでパーティションは算数の練習帳のように構成されており、バイトはセクターにグループ化されており、練習帳では四角形がページにグループ化されていると言えるのと同じ方法です。空き領域と使用済み領域のインデックス(FAT)は、次のものだけを考慮して作成されます。グループセクターはフリーまたはフルにすることができます。テルティウム・ノン・ダトゥール。
したがって、ファイルには使用される有効バイト数に応じたサイズがあります(テキストファイルで「こんにちは" は 2 バイトになります)、およびデバイス上で使用されるスペースのサイズ (セクターが 4kB の場合は 4kB の倍数になり、別のデバイスでセクターが 512 バイトの場合は 512B の倍数になります)。
一方、大量のファイルをコピーすると、書き込みまたは読み取り操作でエラーが発生したり、一部のファイルへのアクセス権がなくなったり、操作に時間がかかりファイルが一時ファイルである場合は、その間に一部のファイルが削除されたりする可能性があります。
これは通常、使用しているプログラムによってエラーメッセージとエラー終了コードで通知されます。たとえばLinuxでは、シェルに書き込むことで終了コードをキャッチできますecho $?
。0以外の値が返された場合はエラーを意味します。事前にこれらのメッセージをキャッチしていない場合は、確認する必要があります。事後的に。
その後、大量のファイルをコピーして確認すると、素早く、ファイルの数と総有効バイト数が一致しているかどうかをチェックするより効果的な方法は、md5sum両方のコピーの各ファイルについて。これが一致すれば、すべての内容は正常です。少なくとも、権限と日付を確認することをお勧めします。
多くの場合、特定のツールに頼るのが快適ですrsync
Linuxの場合、robocopy
Windows 用、または利用可能な他の多くのツールのいずれか。