複数のブートドライブを備えたコンピューターがあり、そのすべてに同じソフトウェアが含まれています。ブートディスクの選択は、フロントパネルのマルチポジションスイッチを介して行われます。ディスク1を選択すると、SATAポート0のディスクが起動します。ディスク2を選択すると、SATAポート1のディスクが起動します。等。
RHのディスクマネージャーは、ハードディスクが接続されているSATAポートを表示できます。これは何かの上にあるグラフィカルUIであり、何かが必要です。
コマンドラインでこの情報を取得するにはどうすればよいですか? ssh接続を介して接続し、ブートディスクが何に接続されているかを調べたいのですが。この情報はどこに保管されていますか?
ありがとう!
私は同じことを理解しようとしていたので、この質問を見つけました。これが私が理解したことです。 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 ' '
を実行します。これは、/
にマウントされたデバイスを示しています。