外出先でのSATA / SCSIデバイスの追加と削除

最新のLinux(2.6+)は、新しく接続されたデバイス(ホットプラグをサポートするバス上)を検出できます。 また、最初にファイルシステムをアンマウントして同期を行うことにより、無効にすることもできます。 ホットプラグバスにはUSBだけでなく、SATA、SCSI、SASもあります(理論的には、PATAにも同じことが当てはまりますが、デバイスの消失に適切に対応する方法を知らない愚かなコントローラーがたくさんあります)。



外出先で物理デバイスを引っ張らず、カーネルにそれを完全に忘れるように指示せずにそれらを無効にする方が良いです(それにより、キャッシュがポップアップしても、デバイスでI / O操作が実行されないことを保証します)。 さらに、物理的に電源/データバスを引っ張らずにプラグアンドプロシージャをエミュレートする必要がある場合があります(ハードウェアにはあまり適していません)。 最も典型的な状況は、udevスクリプトのデバッグです。



デバイスの削除



エコー1> / sys /ブロック/ sdX /デバイス/削除


(xはデバイス、sda、sdbなどの文字です)。



このコマンドは、指定されたデバイスを削除します。 これはキャッシュとマウント状態をチェックしない低レベルのコマンドであるため、最初にumount&syncと言う方が良いことに注意してください。



残念ながら、ディスクのスピンドルをオフにすることと、カーネルの観点から削除することを組み合わせる方法はわかりません。 スピンドルはscsi-spinコマンドで無効にできますが、デバイスを削除しようとすると、デバイスは再び巻き戻されて削除されます。 また、リモートデバイスは何も停止できません(デバイスはありません)。 したがって、問題のこの部分はまだ解決されていません。



デバイスを追加する



デバイスを「追加」することはできません。特定のポートに接続されているデバイスのリストを「再読み込み」するようにコントローラーに指示することはできます。 そこに何か面白いものがあれば、カーネルに知らせます。



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


X-バス番号。マザーボードのSATAポート番号と一致します。 わからない場合は、すべてのホストに対して順番に安全に行うことができます。ディスク操作のわずかな遅れを除いて、ソフトウェアやファイルシステムからは見えません。



ホストには1ではなく0から番号が付けられることに注意してください(dmesg ataでは、デバイスには1から番号が付けられます)。



USB-SATAアダプターもスキャンされます(USBボックスおよび外付けハードドライブ-単に別のscsi_hostとして表示されます)。



SCSIの場合、「---」の代わりに、スキャンするデバイスの正確なデバイス/バス/ LUN番号を指定できます(「200 1 2」など)。 SATAは、アーキテクチャ上の機能(1つのイニシエーターに1つのターゲット)があるため、「0 0 0」のみを受け入れます。



削除の詳細...デバイスの文字はわからないが、物理的な場所はわかっている場合は、「/ sys / bus / scsi / devices / targetX:0:0 / X:0」に「1」と書き込むことで「プレーンテキスト」で削除できます:0:0 /削除」。



All Articles