SSDを空にする推奨方法は何ですか?


53

古いSSDが死んでから、新しいSSDを受け取りました。このIntel 320 SSDはTRIMをサポートしています。テストのために、私のディーラーはWindowsをインストールしましたが、これを取り除き、Kubuntuをインストールしたいと思います。

「安全なワイプ」である必要はなく、最も健全な方法でディスクを空にするだけです。私dd if=/dev/zero of=/dev/sdaはブロックをゼロで埋め、それによって別の書き込みを行うと信じています(間違っている場合は修正してください)。

TRIMを有効にする方法の答えを見ましたが、ディスクを消去するのではなく、空のブロックをクリアするのに適しているようです。

hdparmそれを行うプログラムのようですが、ディスクをクリアするか、空のブロックを消去するかはわかりません。マニュアルページから:

  --trim-sector-ranges
          For  Solid State Drives (SSDs).  EXCEPTIONALLY DANGEROUS. DO NOT
          USE THIS OPTION!!  Tells the drive firmware to discard  unneeded
          data  sectors,  destroying  any  data that may have been present
          within them.  This makes those sectors available  for  immediate
          use  by  the firmware's garbage collection mechanism, to improve
          scheduling for wear-leveling of the flash  media.   This  option
          expects  one  or  more  sector range pairs immediately after the
          option: an LBA starting address, a colon, and  a  sector  count,
          with no intervening spaces.  EXCEPTIONALLY DANGEROUS. DO NOT USE
          THIS OPTION!!
          E.g.  hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz

TRIMを使用してすべてのブロックを空として表示するにはどうすればよいですか?


良い質問です。NTFSファイルシステムを削除するだけで十分でしょうか?
htorque

1
したがって、それは単なるコメントです。;)ただし、最初にそのパーティションのいくつかのセクターをチェックしsudo dd if=/dev/sda iflag=direct bs=512 skip=<some_sectors> count=32 | hexdump -C、次に最新のGpartedバージョンを使用してNTFSパーティションを削除し、同じコマンドで再チェックできます-データがワイプされた場合、ゼロが表示されます。
-htorque

1
@htorque:テストしたばかりですが、機能していません。開始ブロックを決定するために使用hexdump -C /sda1しましたhexdump -C /sda1。いいアイデアだ。
レーケンシュタイン

1
@Lekensteyn-私はそれが頬に少し舌を意味することを意味し、あなたのための適切な答えを以下にポップしました。ジェフの記事彼は故障率にもかかわらず、それらを使用する理由であるだけでなく、パフォーマンス上のビットを持っている:-)
ロリー・オールソップ

3
なぜあなたはそれを消去する必要があるのか​​わかりません...なぜExt4などで再フォーマットできないのですか?
ネイサンオスマン

回答:


52

ATAセキュア消去

ドライブのセキュリティ消去機能を使用する必要があります。

  1. ドライブのセキュリティがフリーズしていないことを確認してください。そうである場合は、コンピューターを中断して再開すると役立つ場合があります。

    $ sudo hdparm -I /dev/sdX | grep frozen
           not     frozen 
    

    (フィルター処理された)コマンド出力は、このドライブが「凍結されていない」ことを意味し、続行できます。

  2. ユーザーパスワードを設定します(このパスワードもクリアされます。正確な選択は重要ではありません)。

    sudo hdparm --user-master u --security-set-pass Eins /dev/sdX
    
  3. ATA Secure Eraseコマンドを発行する

    sudo hdparm --user-master u --security-erase Eins /dev/sdX
    

注意:

  • /dev/sdX 消去するブロックデバイスとしてのSSDです。
  • Eins この例で選択したパスワードです。

トラブルシューティングを含む完全な手順については、LinuxカーネルWikiATA Secure Eraseの記事を参照してください。


リンクのおかげで、それをサポートするBIOSを持っている人には良いように見えますが、私のものはそれをサポートしていないようです。(冷凍)
レケンステイン

ハラー!記事を再度読んだ後、「システムを「スリープ」に設定する(Clevo M865TUノートブック)も機能しました。これにより、他のドライブも「フリーズしない」ようにリセットされる場合があります。私も元々Clevoからのものであるため、試してみました(ただし、BTOで作成しています)。動作します。「凍結していない」と表示されています。...ただし、コマンドの前にsudoを時間で置き換えるのではなく、「ERASE_PREPARE:Bad address」で手順3が失敗しました。
-Lekensteyn

1
OMGそれは機能し、わずか19秒かかりました!本当にありがとう!私はあなたに10回
賛成

上記の承認済みの回答にリンク切れがあることを報告したかっただけです。そのリンクがなければ、それはかなり役に立たない、誰もがそのリンクが言ったことの要約を投稿したい?
あしめま

@Ashimema:kernel.orgがハッキングされ、メンテナンスのためにダウンしているため、現在リンクは切断されています。Googleのキャッシュは空ですが、このブログはそれをコピーした:peter.membrey.hk/2011/09/11/...
Lekensteyn

30

util-linux 2.23ではblkdiscard、データを安全に消去せずに破棄します。私はテストしました:SATAとmmcblkで動作しますが、USBでは動作しません。

のマニュアルページからの抜粋blkdiscard(8)

名前

blkdiscard-デバイス上のセクターを破棄する

あらすじ

blkdiscard [-o offset] [-l length] [-s] [-v] device

記述

blkdiscardは、デバイスセクターを破棄するために使用されます。これは、ソリッドステートドライバー(SSD)およびシンプロビジョニングされたストレージに役立ちます。fstrim(8)とは異なり、このコマンドはブロックデバイスで直接使用されます。

デフォルトでは、blkdiscardはデバイス上のすべてのブロックを破棄します。以下で説明するように、オプションを使用して、範囲またはサイズに基づいてこの動作を変更できます。

device引数は、ブロックデバイスのパス名です。

警告:デバイス上の破棄された領域のデータはすべて失われます!

このコマンドは、Ubuntu 15.04およびOpenSUSE 13.1以降にあります(OpenSUSEにはUbuntuの2年先にあります)。


この古い投稿に情報を追加するためのthxとaskubuntuへようこそ。
mondjunge

util-linux 2.23が2013
。– Lekensteyn

4
歓迎してくれてありがとう。古い投稿ですか?古いが古くはないが、Google検索結果の1ページ目に表示される限り、ここに来る同じ答えを探している新しい人が常にいる。私にとっては、より良いページが最初のグーグル結果ページからそれを押し出したときにのみ古くなっています。
タンクマン六四

3
あなたは違い不思議に思っている場合blkdiscardhdparmコマンドを、答えされ、ここで:「あなたはblkdiscardを使用する場合は、SSD(SATA SSDを想定して)は、ATA TRIMコマンドを受信するのに対し、hdparmの--security-消去ATA SECURITY ERASEを発行しますUNITコマンド。ドライブが実際に行うことは、その特定のSSDファームウェアの実装の詳細に依存します。」
Lekensteyn

2
あなたは実際に使いたくありませblkdiscard。まず、ドライブ全体にデータを消去するのではなく、ドライブの特定の部分が破棄される可能性があることを通知することを目的としています。ドライブは実際にデータを消去する場合としない場合があります。安全な消去コマンドは、現在アクセスできないドライブの部分にあるデータを含むすべてのデータを消去する必要があります。編集:質問を読み直して、消去する必要がないことに気づいたが、それでも注目に値する。
-psusi

5

安全なワイプが不要な場合は、「ディスク全体を使用する」オプションと「クイックフォーマット」に相当するオプションを使用してkubuntuをインストールしないでください(正確な用語は今は思い出せません)

そうすることで、ファイルアロケーションテーブルを捨てると、ドライブは上書きのために事実上空になります。実際に空にする必要はありません。


2
anandtech.com/show/2865/2を参照してください。ブロックを削除することは、それを消去して空としてマークすることと同じではありません。
-Lekensteyn

@Lekensteyn削除は、ブロックデバイスにとっては何の意味もありません。インストーラーはmkfs.ext4を呼び出し、デバイス全体を破棄します。どちらの場合もSSDファームウェアを信頼しているという意味で、これは「セキュア消去」と同じくらい安全です。
東武

1
@Tobu右、それはある時点で変更されました。mkfs.ext4(8)says:discard-mkfs時にブロックを破棄しようとします(ブロックを破棄することは、ソリッドステートデバイスとスパース/シンプロビジョニングされたストレージで最初に役立ちます)。デバイスが破棄をアドバタイズすると、データも破棄され(破棄後、書き込みがゼロを返す前の後続の読み取り)、まだゼロになっていないすべてのiノードテーブルがゼロとしてマークされます。これにより、ファイルシステムの初期化が大幅に高速化されます。これはデフォルトとして設定されています。
Lekensteyn

@Tobu私のユースケースでは、「セキュア消去」はフラッシュチップからデータを実際に消去する必要がなく、使用中のブロックがあることによるパフォーマンスへの悪影響がないことを確認するだけです。
Lekensteyn

1

ドライブにLinuxファイルステムがある場合、を使用できますfstrim。デフォルトでは、最近のUbuntu fstrimは次のベンダーのドライブで実行されます。

    if [ -z "$NO_MODEL_CHECK" ]; then
        if ! contains "$HDPARM" "Intel" && \
           ! contains "$HDPARM" "INTEL" && \
           ! contains "$HDPARM" "Samsung" && \
           ! contains "$HDPARM" "SAMSUNG" && \
           ! contains "$HDPARM" "OCZ" && \
           ! contains "$HDPARM" "SanDisk" && \
           ! contains "$HDPARM" "Patriot"; then
            #echo "device $DEV is not a drive that is known-safe for trimming"
            continue

週に一度。

質問に対する答えの1つは、システムを起動して1週間待つことです!


1
fstrimはこのblkdiscardの投稿で言及されていますが、sudo fstrim /(オプション/をサポートするファイルシステムのマウントポイント)で手動で呼び出すこともできdiscardます。
Lekensteyn

-4

パーティションを削除するだけで、ディスク全体をクリアする必要はありません。何か他のもののためにストレージが必要になると、古いデータは上書きされます。

TRIMを有効にするには:

gksudo gedit /etc/fstab

「ext4 errors = remount-ro 0」を「ext4 discard、errors = remount-ro 0」に変更します。(廃棄を追加)

保存して再起動すると、TRIMが有効になります。

TRIMが有効になっているかどうかを確認します。

sudo -i
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
hdparm --fibmap tempfile

最初のbegin_LBAアドレスを使用します。

hdparm --read-sector [begin_LBA] /dev/sda

これで、数字と文字が返されるはずです。ファイルを削除して同期します。

rm tempfile
sync

ここで、次のコマンドを再度実行します。ゼロが返される場合、TRIMは有効です。

hdparm --read-sector [begin_LBA] /dev/sda

2
SSDはすべての消去ブロックに書き込みを行い、より多くの消耗を引き起こし、すべての消去ブロックをいっぱいにしてしまうため、SSDをゼロで埋めたくありません。また、多くのドライブは、トリミングされたセクターをすぐにゼロにしません。
プソイ

確かに、多くの書き込みが必要ですが、ディスクに損傷を与えることはありません。Corsair F120を10〜11か月使用し、頻繁にゼロで埋めました。だからは、後の30〜35倍のパフォーマンスがまだ同じである(すべてのベンチマークの前にそれをやっては)(〜285メガバイトを読み、275メガバイト/書き込み)は、SMARTは言う:ディスクが健全である
アレックス・

9
アレックス、SSDへのすべての書き込みは、SSDにわずかなダメージを与えます。すべての消去ブロックに書き込むと、それらすべてが使用中としてマークされ、ドライブのGCが適切に機能しなくなり、パフォーマンスが低下します。あなたはそれをドライブTRIM全体として考えることができます。
-psusi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.