ポート番号とデバイスのマッチング

ポート番号とデバイスのマッチング

複数のブート ドライブを備えたコンピューターがあり、それらすべてに同じソフトウェアが含まれています。ブート ディスクの選択は、フロント パネルのマルチ ポジション スイッチで行います。ディスク 1 を選択すると、SATA ポート 0 のディスクがブートされます。ディスク 2 を選択すると、SATA ポート 1 のディスクがブートされます。など。

RHのディスクマネージャは、ハードディスクが接続されているSATAポートを表示できます。これは、何か、そして何かそれが私が望んでいることです。

この情報をコマンド ラインで取得するにはどうすればよいでしょうか? SSH 接続で接続し、ブート ディスクが何に接続されているかを確認したいと思います。この情報はどこに保存されますか?

ありがとう!

答え1

ポート番号とデバイスのマッチング

私も同じことを理解しようとしていたので、この質問を見つけました。私が理解したことは次のとおりです。bash または zsh で動作するはずです。

for i in /dev/disk/by-path/*;do [[ ! "$i" =~ '-part[0-9]+$' ]] && echo "Port $(basename "$i"|grep -Po '(?<=ata-)[0-9]+'): $(readlink -f "$i")";done

出力は次のようになります。

Port 1: /dev/sda
Port 2: /dev/sdb
Port 3: /dev/sdc

これらのポート番号すべきマザーボードに印刷されている番号と一致している必要がありますが、これはマザーボードのベンダーがボードに印刷されている番号を SATA コントローラ チップのポート番号と一致させるほど配慮していることを前提としています。少なくともデバイス パスは安定しているため、リストされているポート番号とパネル上の番号のマッピングを確立すると、それが変更されることはありません。

このスニペットは/dev/disk/by-pathディレクトリを反復処理します。 で終わるファイルは-part<number>単なるパーティションなのでスキップし、残りのファイル名の末尾にある からポート番号を抽出します。これらのファイルはを使用して取得される-ata<number>従来のノードへのシンボリックリンクです。/dev/sdXreadlink -f

複数の SATA コントローラーがある場合は、各コントローラーに独自のポート 1、ポート 2 などがあるため、同じポート番号に対して複数のデバイスがリストされます。そのため、ls -l /dev/disk/by-path手動で実行して解析するだけです。

どのデバイスがブートデバイスであるかを確認する

どれがブートデバイスであるかを確認するには、 を実行しますmount | grep ' on / ' | cut -f 1 -d ' '。これにより、 にマウントされているデバイスが表示されます/

答え2

適切な SATA ポート マッピングは、「user371366」が言及しているとおりです。

ただし、マザーボードの PCB に印刷されている SATA ポート番号に依存しないことを強くお勧めします。

ハードウェア/ソフトウェアの問題やバグがあり、信頼性が低いためです。

マザーボード PCB 上の SATA ポート #1 のラベルが、SDA ではなく、SDB または SDx (x は PC 端末などに表示される任意の文字) として表示されることがあります。

これは、「clonezilla」バックアップ ソフトウェアを使用したときに、SATA ポート #1 が SDA であるべきところを SDB として表示したときなどに、何度か発生しました。

最善の方法は、ハード ドライブのシリアル番号を書き留めておき、どのハード ドライブが対象になっているかを参照することです。

関連情報