是否有一种通用的linux实用程序/方法来查询系统上所有磁盘的信息?

是否有一种通用的linux实用程序/方法来查询系统上所有磁盘的信息?,linux,hardware,disk,hard-drive,Linux,Hardware,Disk,Hard Drive,我正在编写一个脚本,可以远程访问实验室中的机器,并评估系统中的磁盘及其用途。我需要: 1. get all of the disks in a system, this also includes SAN disks as well as non standard HW raid controllers. 2. check if the disks are part of a software raid. 3. check the disk for partitions and

我正在编写一个脚本,可以远程访问实验室中的机器,并评估系统中的磁盘及其用途。我需要:

1. get all of the disks in a system, this also includes SAN disks as well as non standard HW raid controllers. 2. check if the disks are part of a software raid. 3. check the disk for partitions and if they are boot-able. 4. gather basic information about the drive including manufacturer block size etc. . 1.获取系统中的所有磁盘,这还包括SAN磁盘 以及非标准硬件raid控制器。 2.检查磁盘是否是软件raid的一部分。 3.检查磁盘上的分区以及它们是否可以引导。 4.收集有关驱动器的基本信息,包括制造商块大小等。 我遇到的问题是,如果不为查找这些信息所需的每个实用程序编写10多页的正则表达式,那么查找所有这些信息似乎不是一个非常方便的地方。令人惊讶的是,这在windows上更容易,因为我可以使用WMI。是否有一种更具编程性的方式来收集我在linux中寻找的所有信息

mount

mount[-l][-t类型]
列出所有已装入的文件系统(类型)。选项-l添加此列表中的标签


我想到的工具有:

  • kpartx
    partprobe
    blkid
    lshw
    <代码>cfdisk和
    分开
我认为,
parted
是面向自动化的


lshw
有xml输出。

kpartx、partprobe、blkid、lshw;cfdisk和partedThis仅列出文件系统。。我需要整个系统的整个有组织的磁盘结构。我希望使用lshw。。然而,它并不是在所有Linux发行版中都是统一的。此外,您列出的其他操作主要用于更改驱动器上的分区,而不便于读取有关驱动器的元数据。我想更多的是通过迭代/sys/class/block来收集关于每个block设备的信息?partprobe、blkid、kpartx根本不处理修改。sfdisk和parted可用于查询信息。事实上,parted肯定会提供最多的信息(因为它无论如何都需要这些信息来支持它的功能)