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。启动顺序仅决定系统优先从哪个设备引导,不影响系统启动后对已连接存储设备的枚举和硬件信息读取。
排查与解决步骤
确认系统级识别状态
- 打开Windows「磁盘管理」,检查该SATA HDD是否被系统识别、是否已初始化并分配盘符。若系统本身未识别到该设备,pySMART也无法读取;
- 查看设备管理器的「磁盘驱动器」列表,确认HDD是否存在、有无驱动异常(黄色感叹号)。
以管理员权限运行脚本
pySMART读取SMART数据需要底层硬件访问权限,普通用户权限可能无法枚举所有存储设备。右键命令提示符或PowerShell,选择「以管理员身份运行」后执行脚本。检查pySMART与依赖组件
- 更新pySMART至最新版本:执行
pip install --upgrade pySMART; - 确保已安装
smartmontools并配置到系统PATH。pySMART在Windows平台依赖该工具实现硬件访问,安装时需勾选“Add to PATH”选项。
- 更新pySMART至最新版本:执行
手动指定设备路径测试
尝试直接通过物理磁盘路径初始化Device对象,验证是否能读取HDD信息:from pySMART import Device # 替换为目标HDD的物理磁盘号,比如\\.\PhysicalDrive1 dev = Device('\\\\.\\PhysicalDrive1') print(dev)物理磁盘号可在「磁盘管理」中查看:右键HDD→属性→卷→「物理磁盘号」,对应路径格式为
\\.\PhysicalDriveX(X为磁盘号)。排查硬件连接问题
- 检查SATA数据线和电源线是否插紧;
- 尝试更换SATA接口或数据线;
- 进入BIOS/UEFI确认SATA控制器已启用,且HDD被BIOS正常识别。
内容的提问来源于stack exchange,提问作者HumbleProgrammer
相关产品推荐
相关产品推荐

