実行中のシステムからSATAディスクを安全に削除するにはどうすればよいですか?


64

ディスクをディスクベイに接続する必要がある場合があります。また、ラップトップでSATA-eSATAケーブルを使用してSSDを接続し、デスクトップから電源を引き出すという非常に奇妙なセットアップがあります。

システムからSATAディスクを安全に取り外すにはどうすればよいですか?このPhoronixフォーラムスレッドにはいくつかの提案があります。

justsumdoodの書き込み:

An(noymous)droidは次の
ように書きました:プラグを抜く前にソフトウェア側で何をしますか?単純な「umount / dev / sd」[ドライブ文字]ですか?デバイスをアンマウントした後、ユニットを「電源オフ」(またはスリープ)するには:

hdparm -Y /dev/sdX

(Xは電源をオフにするデバイスを表します。例:/ dev / sdb)

これにより、ドライブの電源が切れ、電圧サージのリスクなしでドライブを取り外すことができます。

これは、ディスクキャッシュが適切にフラッシュされ、その後電源がオフになることを意味しますか?

同じスレッドからの別の提案:

chithanhは次のように書いています:
すべてのSATAおよびeSATAハードウェアは物理的にホットプラグ可能です(つまり、プラグを挿入/引き出しても損傷を受けません)。

チップセットとドライバーがこれをどのように処理するかは別の質問です。一部のドライバー/チップセットの組み合わせは、ホットプラグを適切に処理せず、次のようなwarmplugコマンドが必要です。

echo 0 - 0 > /sys/class/scsi_host/hostX/scan

Xをお使いのSATA / eSATAポートの適切な番号に置き換えます。

正しい方法であるかどうかは疑わしいが、それに対する証拠も見つけられない。

だから、システムから接続されたディスクを削除する正しい方法は何ですか?ディスク上のすべてのパーティションを既にアンマウントして実行したと仮定しsyncます。可能であれば、いくつかの公式ドキュメントを参照してください。LinuxドキュメントツリーやLinux ATA wikiには何も見つかりませんでした。

回答:


82
  1. ディスク上のファイルシステムをアンマウントします。(umount ...
  2. LVMグループを非アクティブ化します。(vgchange -an
  3. 何もディスクを使用していないことを確認してください。
  4. それができたら、安全にプラグを抜くことができます。

さらに慎重になりたい場合は、echo 1 > /sys/block/(whatever)/device/delete最初に行ってください。これにより、デバイスがカーネルから登録解除されるため、プラグを抜いたときに何も使用していないことがわかります。eSATAエンクロージャー内のドライブでこれを行うと、ドライブのヘッドが止まるのが聞こえるので、カーネルは明らかにドライブにパワーダウンの準備をするように伝えます。

AHCIコントローラーを使用している場合は、プラグが抜かれたデバイスに対処する必要があります。他の種類のSATAコントローラーを使用している場合、ホットプラグによってドライバーが混乱する可能性があります。

私の経験では、SATAホットプラグ(AHCIを使用)はLinuxで非常にうまく機能します。光学ドライブを取り外し、ハードドライブに差し込み、エラーをスキャンし、ファイルシステムを作成してデータをコピーし、マウントを解除して取り外し、異なるDVDドライブに差し込み、ディスクを焼きました。と実行しています。


完全に消去したいHDDを取り外す必要がありました。ディスクをベイから引き出した後、/ dev / sdXYが表示されたままです。書き込み1をするdeleteと、ディスクが消えてしまい、ディスクがスピンダウンするのが聞こえました。ちょうどhdparm -Yので、十分ではなかった/dev/エントリがまだ存在してしまいます。ありがとう!
レーケンシュタイン

16
ドライブはヘッドを停止し、ディスクを完全に停止し、バスの電源を無効にするため、常にecho 1 > /sys/block/(whatever)/device/deleteコマンドを発行することを強くお勧めします。駐車していないヘッドが回転するプレートに触れると、ドライブが完全に破壊される可能性があります。
ドラムファイア14

2
また、smartdが実行中の場合、プロセスにSIGHUPを発行してドライブ情報を再ロードすることをお勧めします。smartdはそのドライブおよびその他すべての情報をリロードするため、ドライブを交換する場合は特に重要です。
ドラムファイア14

1
言及する価値がある1つのメモだけでecho 1 > /sys/block/(whatever)/device/deleteは機能しませんsudo。「Permission denied」エラーがスローされます。あなたは本当のルートになる必要があるので、su代わりにプレーンオールドを使用してください。
TranslucentCloud

11
@TranslucentCloudパイプを使用してsudo tee、ルートとしてリダイレクトをエミュレートできます。– echo 1 | sudo tee /sys/block/(whatever)/device/delete
Oli

5

これらの2つのセクションは、それぞれ別のものです。

最初はプラグ抜くためのものです。2つ目はプラグ用です。

アンプラグの場合、OSはアンマウント操作中にデータを同期します。したがって、ディスクがマウント解除されている場合(実際にハードウェアが完全にサポートされていると仮定して)、データの損失や破損のリスクなしにディスクの電源を切って抜くことができます。

プラグインの場合、デバイスは自動的に認識されるはずです。そうでない場合は、そのコマンドを実行してバススキャンをトリガーできます。デバイスが認識されたら、マウントできます。

そして、USBドライブを使ってこの種のことをしたことがあると言って、これを警告します。


あなたの答えをありがとう、しかし、私はまだ正しい行動が何であるかを確信していません。SSDには「安全でないシャットダウンカウント」SMARTフィールドがあり、何もせずにプラグを抜くだけでは安全に聞こえません。
-Lekensteyn

3
うまくいけば、仕事の一環として、SATAハードドライブを定期的にホットプラグおよびホットプラグします。最初にマウントを解除するだけで、問題に遭遇することはありません。それは逸話ですので、福音として受け取らないでください。しかし、少なくともそれが安全である可能性が高い証拠です。いずれにせよ、特にホットプラグの世界では、OSがアンマウント操作の最後にデータが完全に書き込まれることを保証しない場合、カーネルバグと考えます。
ジャンダー

1
@Lekensteyn、それhdparm -Yはそれの世話をします。これは基本的に、サスペンドまたはシャットダウンするたびにシステムが行うことです。
-psusi

5

どうeject /dev/sdX?私のセットアップでは、このコマンドはドライブのアンマウント、同期、および電源切断を行います。


4
eSATAで接続されたディスクでこれを試しましたが、コマンドは「ホットプラグ不可」などで失敗しました。
-Lekensteyn

1
Afaikのイジェクトは、デバイスではなくプラガブルディスクを取り外します。ブロックデバイスドライバーioctl()ejectツールで使用される操作をサポートするかどうかによります。Esataのハードディスクドライブはサポートしていませんが、光学デバイス、フロッピー、およびおそらくフラッシュドライブです。
user259412

2

Wyzard答えに基づいて作成したスクリプトのペアがあります。最初の方法はscsi-drop、単一のディスクを安全に切り離すことです。

#!/bin/sh

if test -h "$1"
then
    disk=$(chase "$1")
else
    disk="$1"
fi

if test -b "$disk"
then
    echo 1 >/sys/block/$(basename "$disk")/device/delete
else
    echo "$0: not a block device: $1" >&2
    exit 1
fi

その主な利点は、にあるようなシンボリックリンクを渡すことができ/dev/disk/by-id/、それが実際のデバイスに解決されることです。chaseインストールする必要があります。を使用して同じ結果を得ることができる場合がありますreadlink -e

2番目のスクリプトはscsi-rescan、新しいデバイスをホットプラグした後に使用されます。

#!/bin/bash

exec tee /sys/class/scsi_host/host*/scan <<<'- - -' >/dev/null

これにより、すべてのアダプターがデバイスを再スキャンします。これが、新しい容量とパーティションテーブルを読み取ることができた唯一の方法でした。


0

実際、SATAドライブは、電力が失われると自動的にヘッドを停止します。まだ回転している間にドライブを引っ張っても、問題は発生しません。ただし、回転しているディスクは、ぶつかるとにじみやすくなります。これは、フレーク状の電力または太陽フレアがあるときに聞こえます。

通常、ほとんどの損傷は、フラッシュされていないキャッシュとバッファなどへのコミットされていない書き込みによって引き起こされます。SCSIコマンドは適切な尺度であり、同じ目的で機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.