1

有人可以阐明我可以使用哪些命令从硬盘驱动器获取以下内容。最好有一个内部 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)
4

3 回答 3

4

查看 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/设备/型号
  • /sys/块/sda/大小
  • /sys/block/sda/sda1
  • /sys/块/sda/sda2
  • /sys/block/sda/sda5
于 2012-12-15T02:20:36.903 回答
2

我想我找到了一个很好的终端命令,它似乎提供了我要求的很多信息,还有更多。

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
于 2012-12-14T23:30:39.633 回答
1

这可能有点晚了,但是:

如果 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。希望这对将来的某人有所帮助。

于 2020-08-09T13:11:52.803 回答