You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pySMART的Device类仅识别单块硬盘,启动顺序是否为故障原因?

pySMART仅识别NVMe SSD,无法识别SATA HDD,启动顺序是否会导致该问题?

问题详情

pySMART的Device()/DeviceList()类仅能识别我的系统盘——256GB WD NVMe SSD(PCI-e接口,挂载点为C:\),另一块2TB东芝SATA接口3.5英寸数据存储HDD始终无法被识别,未出现在生成的设备列表中。

UEFI启动顺序:1. U盘,2. 光驱,3. WD NVMe SSD

疑问:启动顺序是否会导致pySMART的Device类出现识别异常?

已尝试操作

  • 打印硬盘列表,未发现目标HDD;
  • 搜索故障原因、查阅官方文档,未找到有效解决方案;
  • 咨询AI工具,仅得到更换其他库的建议,但只有pySMART能满足读取厂商、型号等详细硬件信息的需求。

相关代码片段

import math
from pySMART import Device
from pySMART import DeviceList
from pySMART import Attribute

try:
    print("="*5, "Háttértár(ak)kal kapcsolatos információk:", "="*5)
    hattertarLista = DeviceList()
    for hattertar in hattertarLista.devices:
        eppenVizsgaltHattertar = hattertar
        print(f"--> Háttértár gyártója: {eppenVizsgaltHattertar.vendor}")
        if str(eppenVizsgaltHattertar.family) == "None":
            print(f"--> Háttértár termékcsaládja: Nem sikerült lekérni.")
        else:
            print(f"--> Háttértár termékcsaládja: {eppenVizsgaltHattertar.family}")
        print(f"--> Háttértár modellje: {eppenVizsgaltHattertar.model}")
        print(f"--> Háttértár sorozatszáma: {eppenVizsgaltHattertar.serial}")
        if round((eppenVizsgaltHattertar.size) / math.pow(1024, 3)) <= 500:
            print(f"--> Háttértár mérete: {round((eppenVizsgaltHattertar.size) / math.pow(1024, 3))} GB")
        else:
            print(f"--> Háttértár mérete: {round((eppenVizsgaltHattertar.size) / math.pow(1024, 4))} TB")
        if eppenVizsgaltHattertar.rotation_rate is None:
            if "nvme" in eppenVizsgaltHattertar.interface:
                print(f"--> Háttértár típusa: NVMe csatlakozójú SSD\n")
            else:    
                print(f"--> Háttértár típusa: {eppenVizsgaltHattertar._interface} csatlakozojú SSD\n")
        elif eppenVizsgaltHattertar.rotation_rate > 0:
            print(f"--> Háttértár típusa: {eppenVizsgaltHattertar._interface} csatlakozójú HDD vagy SSHD\n")
        else:
            print(f"--> Segítség, nemtommivan.\n--> (Annyi mindenképp, hogy a programnak nem sikerült megállapítania a háttértár típusát.)\n")
except Exception as hibaLeirasHATTERTAR:
    print(f"--> Hiba! Leírás: {hibaLeirasHATTERTAR}\n")

(注:代码补充了缺失的math模块导入)


解答

核心结论

UEFI启动顺序不会直接导致pySMART无法识别SATA HDD。启动顺序仅决定系统优先从哪个设备引导,不影响系统启动后对已连接存储设备的枚举和硬件信息读取。

排查与解决步骤

  1. 确认系统级识别状态

    • 打开Windows「磁盘管理」,检查该SATA HDD是否被系统识别、是否已初始化并分配盘符。若系统本身未识别到该设备,pySMART也无法读取;
    • 查看设备管理器的「磁盘驱动器」列表,确认HDD是否存在、有无驱动异常(黄色感叹号)。
  2. 以管理员权限运行脚本
    pySMART读取SMART数据需要底层硬件访问权限,普通用户权限可能无法枚举所有存储设备。右键命令提示符或PowerShell,选择「以管理员身份运行」后执行脚本。

  3. 检查pySMART与依赖组件

    • 更新pySMART至最新版本:执行pip install --upgrade pySMART;
    • 确保已安装smartmontools并配置到系统PATH。pySMART在Windows平台依赖该工具实现硬件访问,安装时需勾选“Add to PATH”选项。
  4. 手动指定设备路径测试
    尝试直接通过物理磁盘路径初始化Device对象,验证是否能读取HDD信息:

    from pySMART import Device
    # 替换为目标HDD的物理磁盘号,比如\\.\PhysicalDrive1
    dev = Device('\\\\.\\PhysicalDrive1')
    print(dev)
    

    物理磁盘号可在「磁盘管理」中查看:右键HDD→属性→卷→「物理磁盘号」,对应路径格式为\\.\PhysicalDriveX(X为磁盘号)。

  5. 排查硬件连接问题

    • 检查SATA数据线和电源线是否插紧;
    • 尝试更换SATA接口或数据线;
    • 进入BIOS/UEFI确认SATA控制器已启用,且HDD被BIOS正常识别。

内容的提问来源于stack exchange,提问作者HumbleProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:58:17