有人可以阐明我可以使用哪些命令从硬盘驱动器获取以下内容吗?最好有一个内部 Python 模块,但可能不会。我确实有root访问权限来获取任何信息,但我想避免下载额外的软件包,所以:
procinfo
, swapon
, hdparm
, hardinfo
不在图片中,不是 Fedora 17 的默认,不确定其他发行版。
Index (Device 0, could be more)
Description (Full Name, Western Digital Black Edition.....)
InterfaceType (IDE, SCSI)
Manufacturer (Western Digital, Seagate, Maxtor)
Model (WDxxx)
Size (in KB, MB or GB)
Partitions (if Any)
查看 sysfs。 例如,对于我的 Ubuntu 12.04 系统上的第一个磁盘,大部分信息都可以从以下文件和目录的存在中读取或推断:
- /
- sys/block/sda/dev /
- sys/block/sda/device/scsi_device /
- sys/block/sda/device/vendor(实际上是"ATA",意味着SATA,而不是预期的"Western Digital") /
- sys/block/sda/device/model /
- sys/block/sda/size /
- sys/block/sda/sda1 /
- sys/block/sda/sda2 /
- sys/block/sda/sda5
我找到了一个很好的终端命令,它似乎提供了我请求的许多信息,以及更多。
fdisk -l
现在的问题仍然是如何解析这么多数据!
fdisk-l
输出
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf4375e1b
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
/dev/sda2 206848 895822804 447807978+ 7 HPFS/NTFS/exFAT
/dev/sda3 1151823870 1465147391 156661761 5 Extended
/dev/sda4 895823872 1100623871 102400000 83 Linux
/dev/sda5 1151823872 1435025407 141600768 83 Linux
/dev/sda6 1435027456 1465147391 15059968 82 Linux swap / Solaris
Partition table entries are not in disk order
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3ac08bdc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1953521663 976759808 7 HPFS/NTFS/exFAT
Disk /dev/sdc: 16.0 GB, 16008609792 bytes
255 heads, 63 sectors/track, 1946 cylinders, total 31266816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 32 31266815 15633392 7 HPFS/NTFS/exFAT
这可能有点晚了,但是:
如果OP只想列出连接到系统的硬盘驱动器,请在我的系统上使用parted (in bash):
输出:
[root@Bugs]#parted -m /dev/sda print devices
/dev/sda (80.0GB)
/dev/sdb (128GB)
/dev/sdc (6001GB)
/dev/sdd (4001GB)
/dev/sde (8002GB)
/dev/sdf (1500GB)
/dev/sdi (4001GB)
/dev/sdg (4001GB)
/dev/sdh (8002GB)
[root@Bugs]#
请注意,parted 需要指定设备,但实际上并不需要它。此外,对于某些驱动器,给出的实际大小为 +xGB。这些似乎是驱动器 => 4TB。
由于这是一个 bash 命令,python 有各种实用程序来运行这些命令。这对我来说是最简单的答案/结果,我想对于OP来说。 希望这对将来的某人有所帮助。