如何以脚本友好的方式列出所有连接的 HDD 设备?全部 - 表示已安装和未安装。脚本友好 - 表示我可以在 shell 脚本中使用它进行 (u) 安装,同时只需进行最少的 grep 或 sed。
我的任务是编写一些脚本,在启动时找出硬盘的位置(如果已插入)并安装它。在我的脚本中,我需要某种方法来获取 /dev 下可用设备的列表。我应该在脚本中使用什么工具?
以下是我考虑过的选项:
fdisk -l
提供的信息比我需要的多得多 - 在 shell 中解析它的输出有点困难parted -l
没有列出未安装的分区,并且还输出了很多额外的信息cat /proc/partitions
最佳输出,但未列出未安装的分区
什么工具最适合我的任务?
为了澄清一下我的观点,以下是我的情况:
在某些 PC 上,用户会通过 USB 或 SATA 连接一些 HDD。然后用户重新启动 PC。我对 HDD 设备一无所知,我只能假设它有一个带有 ext4 文件系统的分区。该设备可能显示为 /dev/sda 或 /dev/sdb。我拥有该设备的 su 访问权限,并且可以将我的脚本添加到 /etc/rc.local 或其他任何地方,但我只有在将 PC 交给用户之前才拥有此访问权限。
答案1
也许blkid
会给出如下形式的行:
/dev/sdXX: UUID="<UUID>" TYPE="<fstype>"
您还可以在以下位置使用这些 UUID fstab
:UUID="<UUID>"
可以替换设备路径/dev/sdXX
。
答案2
在有 udisk 的发行版上
udisks --enumerate-device-files | grep -v ^/dev/disk