web-dev-qa-db-ja.com

USBドライブに大きなファイルを書き込むときに「フリーズ」を転送する

大きなファイル(1GB以上)をUSBドライブに(2.0、3.0、HDDまたは「ペンドライブ」)を転送しようとすると、すべてがうまくいき、ファイルは正しく転送されます(md5の両方の合計を試してみました)オリジナルと転送されたものの一致します)...

ただし、両方ともコマンドラインで(mv *bigfile* /media/*username*/*name_of_the_drive*/)およびGUIを使用(現在Ubuntu 15.10のMATEデスクトップで実行されていますが、他のフレーバーでも発生します)同様に)転送の終了時ダイアログの進行状況バーがフリーズする(コンソールの使用時にフリーズする)。したがって、転送が完了したと「考える」ときにダイアログ/ターミナルを手動で閉じる必要があります。

また、ブータブルUSBドライブをMake Startup Diskユーティリティで書き込もうとすると、アプリケーションは同じ問題に直面してフリーズし、「書き込みセッション」を開いたままにし、USBをアンマウントできません閉じたとき。 Ubuntu 15.10の別のバージョン(私はいくつか試しました)を試しているときに、実際に次のようなダイアログエラーが表示されました。

「ファイルはUSBドライブに正しく転送されましたが、プログラムは書き込みが完了したことをカーネルと通信できませんでした。」

正確な警告を報告していないことをおpoびしますが、それが私が読んだことの意味であることを覚えています。

現在、GTX960Mおよび独自のNvidiaドライバーがインストールされているx64ラップトップマシンで15.10 MATE、カーネル4.4.1を実行しています。

追伸:4.4.1カーネルにアップデートして問題を解決できるかどうかを確認しました。4.2.0_27でも同じことを行うためです。しかし、明らかにそうではなかった。

助けてくれてありがとう

F.

4
fredsat

実際、この問題は16GB RAMがインストールされているためであるため、答えを見つけました here 。書き込みバッファは実際には大きすぎました。ルートとしてログインすることで解決しました:

su root

次に、次のように入力して、ダーティバイトをセット番号に設定します(デフォルト設定の0では、書き込みキャッシュをどれだけ大きくする必要があるかについて、実際には上限がありません)。

echo $((16*2048*2048)) > /proc/sys/vm/dirty_background_bytes
echo $((48*2048*2048)) > /proc/sys/vm/dirty_bytes

そのサイズを適切な妥協案として選択し、問題は解決しました。

6
fredsat