web-dev-qa-db-ja.com

ディスクが接続されているSATAポートはどれですか?

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

RHのディスクマネージャーは、ハードディスクが接続されているSATAポートを表示できます。これは何かの上にあるグラフィカルUIであり、何かが必要です。

コマンドラインでこの情報を取得するにはどうすればよいですか? ssh接続を介して接続し、ブートディスクが何に接続されているかを調べたいのですが。この情報はどこに保管されていますか?

ありがとう!

2
Paxton Sanders

ポート番号をデバイスに一致させる

私は同じことを理解しようとしていたので、この質問を見つけました。これが私が理解したことです。 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

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

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

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

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

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

2
user371366