Windowsのエクスプローラーで大きいファイルをコピーする時、次のようなメッセージが出ることがある。
2024/08/10 11:01:33 エラー 121 (0x00000079) ファイルをコピーしています E:\folder1\a.txt
セマフォがタイムアウトしました。
2024/08/10 11:01:44 エラー 1117 (0x0000045D) ファイルをコピーしています E:\folder1\a.MOV
I/O デバイス エラーが発生したため、要求を実行できませんでした。
回線細い場所でDBのでっかいDBのバックアップとかSMBで送るときになったりもする。バックアップ用に売られているHDDで5400RPMとかIOが遅いやつでも発生しやすい。
どうやらRobocpyはデフォルトで並列実行されているみたいで、この並列処理の要求にディスクが追いつけず失敗しているみたい。だからこの並列実行数を下げてやったら成功。そのオプション
robocopy AAA BBB /MT:2 /ZB
※”/ZB”のオプションも併せてつけておくと保険になって良い
/mt:<n> | n 個のスレッドによるマルチスレッド コピーを作成します。 n は、1 から 128 までの整数である必要があります。 n の既定値は 8 です。 パフォーマンスを向上させるには、/log オプションを使用して出力をリダイレクトします。/mt パラメーターを /ipg および /efsraw パラメーターと共に使用することはできません |
/zb | 再開可能モードでファイルをコピーします。 ファイル アクセスが拒否された場合は、バックアップ モードに切り替えます。 |