私の古い128 GB SSDドライブは約1年半前になりました。それ以来、別のドライブにアップグレードしました。
古いSSDをクリーンアップしたい...
パフォーマンスをほぼ新しいレベルに戻す
それを修復し、一般的に健康診断を与える
これを行うにはどうすればよいですか?
私の古い128 GB SSDドライブは約1年半前になりました。それ以来、別のドライブにアップグレードしました。
古いSSDをクリーンアップしたい...
パフォーマンスをほぼ新しいレベルに戻す
それを修復し、一般的に健康診断を与える
これを行うにはどうすればよいですか?
回答:
Linuxでは、単に実行するだけです
hdparm --trim-sector-ranges start:count /dev/sda
start
およびの代わりにTRIMするブロック範囲を渡し、の代わりにcount
SSDデバイスを渡します/dev/sda
。高速であり、ドライブにゼロを書き込まないという利点があります。むしろ、TRIMコマンドをSSDコントローラーに送信するだけで、それらのブロック内のデータを気にしないことを通知し、ガベージコレクションアルゴリズムでデータが未使用であると自由に想定できます。
おそらく、このコマンドをルートとして実行する必要があります。このコマンドは非常に危険であるため、すぐに大きなデータ損失を引き起こす可能性があるため、--please-destroy-my-drive
引数を渡す必要もありますhdparm
(コピーアンドペーストによる偶発的なデータ損失を防ぐために、コマンドラインにこれを追加していません)。
上記のコマンドラインで、/dev/sda
TRIMコマンドを送信するSSDデバイスに置き換える必要があります。start
TRIMへの最初のブロック(セクター)のアドレスであり、count
その開始アドレスから空きとしてマークするブロックの数です。複数の範囲をコマンドに渡すことができます。
128GB Crucial RealSSD C300を搭載したラップトップでUbuntu 11.04のhdparm v9.32を使用して個人的に実行した後、問題を指摘する必要があります:ディスクブロックの合計数(0:250069680)を範囲として渡すことができませんでした。私は手動で(本質的に手動で「バイナリ検索」)動作するブロックカウントに十分な値(40000)を見つけ、40000の範囲でTRIMコマンドを発行してディスク全体を解放することができました。次のような単純なシェルスクリプトを使用してこれを行うことができます(Ubuntu 11.04のルートでテスト済み)。
# fdisk -lu /dev/sda
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
...
ドライブ全体を消去するには、その合計セクター数を取得し、次の行の250069680をその数に置き換えて実行します(追加--please-destroy-my-drive
)。
# i=0; while [ $i -lt 250069680 ]; do echo $i:40000; i=$(((i+40000))); done \
| hdparm --trim-sector-ranges-stdin /dev/sda
これで完了です!ディスクの生の内容をhexedit /dev/sda
前後に読み取って、ドライブがデータを破棄したことを確認できます。
もちろん、マシンのプライマリOSとしてLinuxを使用したくない場合でも、ライブCDから起動してドライブで実行することにより、このトリックを活用できます。
まず、パフォーマンスの低下を引き起こすのは何かを理解することから始めましょう。これを知らずに、多くの人が不適切な解決策を提案します(既に発生しているように)。Wikipediaから引用されているように、この苦境全体の核心は基本的に次の事実に帰着します。それを覚えておいてください、それは重要です:
NANDフラッシュメモリでは、読み取り操作とプログラミング操作を一度に1ページずつ実行する必要がありますが、ロック解除と消去はブロック単位で行う必要があります。
SSDはNANDフラッシュで構成され、フラッシュは「ブロック」で構成されます。各ブロックには多くの「ページ」が含まれています。簡単にするため、メモリの途方もない単一ブロックを含む光沢のある新しいSSDを購入し、そのブロックは4つの空のページで構成されていることを想像してみましょう。
わかりやすくするために、空のページ、使用済みのページ、削除されたページを∅、1、およびXで区別しています。重要なのは、コントローラーの観点からこれらのそれぞれに違いがあるということです。1や0ほど単純ではありません。したがって、開始するには、新しいドライブのページは次のようになります。
∅、∅、∅、∅(すべて空)
ここで、ドライブにデータを書き込むと、その最初のページに保存されます。したがって、
1、∅、∅、∅
次に、もう2ページを必要とするだけの十分なデータを書き込むため、2ページ目と3ページ目に保存されます。
1、1、1、∅
スペースが不足しています!書き込んだ初期データは実際には必要ないので、それを削除してスペースを空けます。
X、1、1、∅
最後に、残りの2ページを消費する別の大きなデータセットを格納する必要があります。これは、パフォーマンスヒットがトリムなしでドライブで発生する場所です!! 最後の状態からこれに進みます:
1、1、1、1
...ほとんどの人が認識するよりも多くの作業が必要です。繰り返しますが、これはフラッシュがページ単位ではなくブロック単位でしか消去できないという事実によるものです。これは、上記の最終的な遷移が要求するものです。TRIMと非TRIMベースのSSDの間の差別化があるとき、次の作業が行われました!
空のページと削除されたページを使用する必要があるため、SSDは最初にブロック全体のコンテンツを何らかの外部ストレージ/メモリに読み取り、元のブロックを消去し、コンテンツを変更してから、それらのコンテンツを書き戻す必要がありますブロック。「書き込み」ほど単純ではなく、「読み取り-書き込み-書き込み」になりました。これは大きな変更であり、大量のデータを作成しているときに起こるのは、おそらくそれが起こるのに最も不適切な時間です。その「削除された」ページが事前に回復されていれば、それはすべて回避できます。これはまさにTRIMの目的です。TRIMを使用すると、SSDは削除されたページを削除直後に復元するか、TRIMアルゴリズムが適切であると判断した他の機会に復元します。しかし重要な部分は、TRIMでは書き込みの最中にそれが起こらないことです!
TRIMがなければ、ドライブをデータで満たすときに最終的に上記のシナリオを回避することはできません。ありがたいことに、いくつかの新しいSSDは、TRIMだけでなく、必要なATAコマンドなしでハードウェアレベルでTRIMと同じことを効果的に行います(このガベージコレクションと呼ばれることもあります)。しかし、どちらも持っていない不幸な私たちにとっては、ドライブ全体にゼロを書き込むだけでは元のパフォーマンスを取り戻すには不十分だということを知ることが重要です!!!!! ドライブにすべてゼロを書き込んでも、フラッシュのページが書き込み用に空いていることをコントローラーに示しません。TRIMをサポートしないドライブでそれを行う唯一の方法は、HDDEraseなどのツールを使用して(Wayback Machineを介して)ドライブでATAセキュア消去コマンドを呼び出すことです。
私は信じているパーティションを削除する時にまたはWindows 7の「すべてでdiskpartクリーン」のようなものに応じて、ない個々のファイルの削除時にいくつかの初期のSSDのもののみがサポートTRIMがありました。これは、古いコマンドがそのコマンドの実行時にパフォーマンスを回復するように見えた理由かもしれません。これは私には少しかすんでいるようですが...
一般的なSSDとハードウェア/ガジェットに関する私の知識の多くは、anandtech.comから来ています。私は彼がこのすべてを説明する素晴らしい記事を書いていると思っていましたが、私の人生ではそれを見つけることができません!
どうやら標準的な推奨事項は、すべてゼロのフルドライブ書き込みを行うことです。これがなぜ役立つのかは完全にはわかりませんが(多くの書き込みが最終的にSSDを殺さないのですか?)、大手ベンダーのSSDサポートフォーラムによって支持されているようです。
したがって、Windowsでそれを行うには:
diskpart
ユーティリティをDISKPART>
起動すると、プロンプトが表示され、次のコマンドが発行されます。
DISKPART> list disk
DISKPART> select disk x
明らかに、先に進む前に正しいSSDドライブを選択したことを確認してください!
DISKPART> clean all
DISKPART> create partition primary
DISKPART> format quick fs=NTFS
魔法はここにあるclean all
どのドライブにすべてゼロを書き込みます:
allパラメーターを指定すると、すべてのセクターをゼロにすることができ、ドライブに含まれているすべてのデータを削除できます。
これを実行した後、ディスクのパフォーマンスが大幅に向上したことを確認できます。
SSD Life Proというツールも見つけました。私にはいくつかの悪いニュースがあります。
計算方法については、SMART SSDインジケーターを使用します。どうやらそれはSMARTデータに基づいて予測しようとしています:
これは、推定するためにデータがいつ書き込まれたかを知る必要があるため、注意が必要ですが、基本的なデータは次のとおりです。
01読み取りエラー率7 09電源オン時間カウント7085 0C電源サイクルカウント318 B8初期不良ブロック数15 C3プログラム障害ブロック数0 C4消去失敗ブロック数0 C5読み取り失敗ブロック数0 C6読み取りセクター5468243171 C7書き込みセクター41640920876 C8読み取りコマンド100482453 C9書き込みコマンド417315851 フラッシュ345270からのCAエラービット 訂正可能ビットエラー340001のCB読み取りセクター CCバッドブロックフルフラグ0 CD最大P / Eカウント仕様5000 CE最小消去カウント3774 CF最大消去カウント65348 D0平均消去カウント4837 D1残りのドライブ寿命4
そこにある恐ろしい数字はRemaining Drive Lifeで、4 .. パーセントです!
そして、結果の計算:
モデル:CRUCIAL_CT128M225 サイズ:128 GB シリアル番号:xxxxxxxxxxxxxxxxx456 ファームウェア:2030 電源投入時:318 ドライブ/ OSでのTRIMサポート:有効/有効 勤務時間:9ヶ月16日5時間 読み取られた合計データ:2607.46 GB 書かれた:19855.94 GB
記録のために、このドライブはもともと2009年10月に購入されたので、1年と少し半古いです。
ドライブを介してゼロを書き込むことは最良のアプローチではないことがわかりました。短期的には助けになるかもしれませんが、ドライブを完全なパフォーマンスに復元することはできませんでした(かなり古い、TRIM非対応のIntel-SSDがあります)。SSDがゼロになった後でも、SSDが任意のファイルに書き込もうとすると、1年かそこらのかなり重い使用の後、1〜2秒のフリーズに陥り始めます。
パフォーマンスを完全に復元できることがわかったのは、を使用した安全な消去だけでしたhdparm
。SSDが軽微なしゃっくりを経験し始めた6〜12か月ごとにSSDを安全に消去することを習慣にしました。Macrumorsの誰かが、mac *デバイスの操作方法に関するmac固有のチュートリアルを作成しました。
私が見たすべての主張によると、安全な消去は特別なコマンドをSSDに送信し、SSDがすべてのセクターをゼロよりもはるかに低いレベルでゼロに設定しますdd
。
Macでは、digilloydTools DiskTesterを確認してください。ドライブのパフォーマンスに対する再調整の効果を確認するための興味深いデータポイントもあります。
cat /dev/zero > /tmp/bigfile
ます。
ThinkPadには、SSDをリセットする非表示のBIOSメニュー(http://www-307.ibm.com/pc/support/site.wss/MIGR-68369.htmlで有効化)があります。
(ソリッドステートドライブ)ssdに残っているssdの寿命を確認するには、smartmontoolsパッケージをインストールする必要があります。最新のATAおよびSCSIハードディスクに組み込まれている自己監視、分析およびレポートテクノロジーシステム(SMART)を使用してストレージシステムを制御および監視する2つのユーティリティプログラム(smartctlおよびsmartd)が含まれています。
Ubuntu、Mint、またはDebianベースのディストリビューションの場合
# apt-get install smartmontools
For Fedora, Centos, or Red Hat based distributions
# yum install smartmontools
Media_Wearout_Indicatorは、探しているものです。100は、ssdの寿命が100%であることを意味し、数字が小さいほど、残りの寿命が少ないことを意味します。
# smartctl -a /dev/sda | grep Media_Wearout_Indicator
ラップトップからの出力
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
ドライブの詳細と完全な属性を表示する場合は、次を実行できます。
# smartctl -data -A /dev/sda
ソース:namhuy.net/1024/how-to-check-ssd-life-left.html