Python 获取移动硬盘盒里的硬盘信息

如果移动硬盘是固态硬盘,那么多如何读取它的fw sn等信息呢?

亲亲,尝试下面的代码,需要安装import里的依赖

import sys, os, fcntl, struct
if os.geteuid() >  0:
    print("ERROR: Must be root to use")
    sys.exit(1)
with open(sys.argv[1], "rb") as fd:
    # tediously derived from the monster struct defined in <hdreg.h>
    # see comment at end of file to verify
    hd_driveid_format_str = "@ 10H 20s 3H 8s 40s 2B H 2B H 4B 6H 2B I 36H I Q 152H"
    # Also from <hdreg.h>
    HDIO_GET_IDENTITY = 0x030d
    # How big a buffer do we need?
    sizeof_hd_driveid = struct.calcsize(hd_driveid_format_str)

    # ensure our format string is the correct size
    # 512 is extracted using sizeof(struct hd_id) in the c code
    assert sizeof_hd_driveid == 512 

    # Call native function
    buf = fcntl.ioctl(fd, HDIO_GET_IDENTITY, " " * sizeof_hd_driveid)
    fields = struct.unpack(hd_driveid_format_str, buf)
    serial_no = fields[10].strip()
    model = fields[15].strip()
    print("FW为l: %s" % model)
    print("  SN序列号为: %s" % serial_no)