【Mac】ポータブルSSDへの大容量ファイル転送が途中で必ず失敗・停止する場合の解決策

sandisk extreme portable external solid state drive memo
Photo by thiago japyassu on Pexels.com

問題

Macから外付けSSDへ大容量のファイル(dmgなど)をコピーしようとすると、毎回決まった容量(自分の環境だと場合は約28.9GB)で転送が止まり、エラーで失敗する現象に遭遇。

フォーマット(APFS等)の問題でもなく、SSDの故障や偽造品を疑ったが、原因はSSDの仕様とMacの転送速度のミスマッチにあった。

原因:SLCキャッシュの枯渇とコントローラーのパンク

近年のSSDは、連続して大容量のデータを書き込むと、内部の高速キャッシュ(SLCキャッシュ)が満杯になる。キャッシュが切れた瞬間にSSD側の処理負荷が跳ね上がり、Macからの高速なデータ転送にコントローラーが追いつけなくなってしまう。その結果、OS側がタイムアウト(応答なし)と判定し、接続が強制遮断されてしまうのが原因だった。

解決策:ターミナルで転送速度を意図的に制限する

根本的な解決策は、「SSDの内部処理が追いつく速度まで、Mac側の送信スピードを落としてあげる」こと。これには、Mac標準のターミナルから rsync コマンドを使用する。

実行するコマンド

rsync -av --progress --bwlimit=50000 /転送元のファイルパス /Volumes/転送先SSDの名前/

コマンドの解説

  • rsync : ファイルやディレクトリを同期・転送するコマンド。
  • -a : 元のファイル属性(権限やタイムスタンプなど)を保持したままコピーする。
  • -v : 転送中の詳細な情報を表示する。
  • --progress : 転送の進捗状況(パーセンテージや速度)をリアルタイムで表示する。
  • --bwlimit=50000 : ここが最重要。 転送速度の上限を約50MB/s(50,000KB/s)に制限する。

手順のポイント

  1. Macの「ターミナル」アプリを起動する。
  2. rsync -av --progress --bwlimit=50000 まで入力する(最後に半角スペースを入れる)。
  3. コピーしたいファイルをターミナル画面にドラッグ&ドロップしてパスを入力。
  4. 続けて、半角スペースを空けてから、転送先のSSDアイコンをドラッグ&ドロップ。
  5. Enterキーで実行。

速度を制限しているため転送には時間がかかるが(100GBで30〜40分程度。50000を100000にすると半分の時間)、SSDのコントローラーがパンクすることなく、最後まで安定して書き込みを完了させることができる。

コメント

タイトルとURLをコピーしました