コピーダイアログが残り0秒で止まっています...
大きなファイルをUSBペンドライブ(任意の形式)にコピーしようとすると、常に最後の時点で停止します。久々に終わります。
Ask Ubuntuで同様の投稿を検索したところ、たくさんの投稿がありましたが、良い解決策はありませんでした。
WindowsでTeracopyのような他のコピーツールはありますか?
または私ができる修正はありますか?
コピーダイアログが残り0秒で止まっています...
大きなファイルをUSBペンドライブ(任意の形式)にコピーしようとすると、常に最後の時点で停止します。久々に終わります。
Ask Ubuntuで同様の投稿を検索したところ、たくさんの投稿がありましたが、良い解決策はありませんでした。
WindowsでTeracopyのような他のコピーツールはありますか?
または私ができる修正はありますか?
回答:
これについてはあまり気にする必要はありません。
USBペンドライブが「低品質」である可能性があります。
時間に関するダイアログ出力は誤解を招くものです。
他のコピーツールでは出力動作
が異なる場合がありますが、USBドライブの書き込み速度は向上しません。
すべての最も重要なことは、最終的にコピーアクションが成功することです。
できることは、ディスクの入出力スケジューラを最適化することです。
rootとしてgksu
ファイルを編集するためにインストールします(まだ行っていない場合)gedit
。
sudo apt-get install gksu
次に、さまざまなディスクタイプに対して実行中のすべてのプロセスの優先度を最適化します。
gksudo gedit /etc/udev/rules.d/60-schedulers.rules
次の行をこの空のファイルに貼り付け、後でファイルを保存します。
# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
行った変更は、オペレーティングシステムの再起動後に有効になります。
また、Ubuntuリポジトリで別のコピーソリューションを利用できます。
sudo apt-get install dirdiff
端末からツールを起動して、ファイルやフォルダを比較またはコピーします。
dirdiff
dirdiff
はGUIでdiff
あり、最大5つのツリーを処理できます。メインウィンドウに、ツリー間で異なるファイルのリストが表示されます。バージョンの相対的な経過時間を示す色付きの四角形が付いています。メニューを使用すると、2つのバージョンの違いを別のウィンドウに表示できます。別のメニューでは、ファイルとフォルダを1つのツリーから別のツリーにコピーできます。
概要:最も重要なのは、USBディスクの品質とその書き込み速度機能です。
コピーがあなたのやり方で行われているのを見る理由は、USBドライブへの書き込みが非同期だからです。
ファイルをコピーすると、コンピューターのRAMにあるUSBドライブのバッファーに実際にコピーされます。コピーの最初の部分はバッファに入るだけなので、非常に高速です。データがフラッシュされますバッファからUSBドライブへの転送速度がはるかに遅くなります。バッファーがいっぱいになると、バッファーにデータを配置できるようになる前に、データの一部がディスクにフラッシュされるのを待つ必要があります。これにより、コピーの速度が低下し、USBドライブの速度に到達します。すべてのファイルがバッファに配置されると、ファイルがコピーされたように見えます。ただし、すべてのデータがバッファからUSBディスク自体にフラッシュされたわけではありません。一部のコピープログラムは、戻ってそのフラッシュをバックグラウンドで実行させます。一部のユーザーは、すべてのデータがフラッシュされるまで待機するため、しばらくの間100%のままになります。
ディスクを同期モードに切り替えることができます。つまり、バッファーを使用せずにすべてのデータがUSBドライブにすぐに書き込まれます。これにより、データの転送がスムーズになったように見えますが、実際には全体的に速度が低下する可能性があります。
コマンドラインから手動でディスクをマウントする場合は、追加でき-o sync
ます。
fstabを使用してマウントする場合は、sync
オプションを追加できます。
Ubuntuでのマウントに依存している場合は、GUIでアクセスしてマウントすると、マウント後にコマンドラインからマウントオプションを変更できます。
sudo mount -o remount -o sync /media/yourname/diskname
問題は、ファイルがターゲットドライブに完全に書き込まれる前に、ファイルが完全に読み取られてメモリに格納されることです。
これは質問に正確に回答することを意味するものではありませんが、pv
大きなファイルの場合はコマンドラインから回避策を使用できます。
sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install pv
大きなファイルをコピーする必要があるときはいつでも:
pv /path/to/big_file >/media/username/usb/big_file
これは、パイプで使用した場合、同様の不要なバッファリングの問題が発生することに注意してください。その場合、修正により、転送速度がターゲットドライブの書き込み速度をわずかに超える速度に制限されます。
[...] | pv -L 10M >/media/username/usb/big_file # Limits the transfer rate to 10 MB/s
いくつかの選択肢があります。あなたはコマンドラインアプローチを使うことができます:
cp *source* *target*
ここで、sourceはコピーするファイルで、targetはコピー先のファイルまたはフォルダーです。その他のオプションは、https://softwarerecs.stackexchange.com/にあります。
dd if=INPUT_FILE_PATH of=OUTPUT_FILE_PATH bs=$(( 64 * 1024 * 1024 )) oflag=sync
これはif
ファイルから読み取りof
、64MiBチャンクでファイルに書き込み、各チャンクが書き出されるまで待ってから次のチャンクを開始します。使用しているユーティリティは、ファイルをメモリに読み込んでディスクに送信するだけの可能性があります(一度に何バイト実行しているかはわかりません)。書き込みキャッシュは、USBドングル自体に存在する場合もあります。したがって、取得している60MiB /秒の速度は、USB接続を介したドングルの内部キャッシュへの転送速度です。しかし、USB3ドングルでない限り、それはありそうにありません。USB2には、毎秒60MiBを処理するための十分なスループットがありません。