
複数のブート ドライブを備えたコンピューターがあり、それらすべてに同じソフトウェアが含まれています。ブート ディスクの選択は、フロント パネルのマルチ ポジション スイッチで行います。ディスク 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/sdX
readlink -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 として表示したときなどに、何度か発生しました。
最善の方法は、ハード ドライブのシリアル番号を書き留めておき、どのハード ドライブが対象になっているかを参照することです。