將連接埠號碼與設備相匹配

將連接埠號碼與設備相匹配

我們有一台具有多個啟動驅動器的計算機,所有驅動器都包含相同的軟體。透過前面板上的多位置開關選擇啟動碟。如果選擇磁碟 1,則啟動 SATA 連接埠 0 上的磁碟。如果選擇磁碟 2,則啟動 SATA 連接埠 1 上的磁碟。 ETC。

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 將顯示為 SDB 或 SDx(其中 x 是 PC 終端機或其他裝置上顯示的任何字母)而不是 SDA。

這種情況在我身上發生過幾次,例如使用“clonezilla”備份軟體時,它將 SATA 連接埠#1 顯示為 SDB,而它應該是 SDA。

最好的方法是記下硬碟序號,並將其用作目標硬碟的參考。

相關內容