如何以腳本友好的方式列出所有連接的硬碟設備?

如何以腳本友好的方式列出所有連接的硬碟設備?

如何以腳本友好的方式列出所有連接的硬碟設備?全部 - 表示已安裝和未安裝。腳本友好 - 意味著我可以使用最少的 grep'ing 或 sed'ing 在我的 shell 腳本中(u)安裝。

我的任務是編寫一些腳本,該腳本在啟動時將找出硬碟的位置(如果已插入)並安裝它。在我的腳本中,我需要某種方法來取得 /dev 下的可用裝置清單。我應該在腳本中使用什麼工具?

以下是我考慮過的選項:

  • fdisk -l 提供的資訊比我需要的多得多 - 在 shell 中解析它的輸出有點困難
  • parted -l 不列出未安裝的分割區,而且還輸出很多額外資訊
  • cat /proc/partitions 最佳輸出,但不列出未安裝的分割區

什麼工具最適合我的任務?

為了澄清我來自哪裡,這是我的情況:

在某些 PC 上,使用者會透過 USB 或 SATA 連接一些 HDD。然後使用者重新啟動電腦。我對HDD設備一無所知,我只能假設它有一個帶有ext4檔案系統的分割區。該裝置可能顯示為 /dev/sda 或 /dev/sdb。我擁有該設備的 su 訪問權限,並且可以將我的腳本添加到 /etc/rc.local 或其他任何地方,但我只有在將 PC 移交給用戶之前才具有此訪問權限。

答案1

也許blkid這給了以下形式的行:

/dev/sdXX: UUID="<UUID>" TYPE="<fstype>"

您也可以在以下位置使用這些 UUID fstabUUID="<UUID>"可以替換裝置路徑/dev/sdXX

答案2

在具有 udisk 的發行版上

 udisks --enumerate-device-files | grep -v ^/dev/disk

相關內容