如何查询Android设备上存储介质的磨损级别信息?

5次阅读
没有评论

问题描述

希望了解其Nvidia Shield(Tegra K1)平板电脑的内部存储是否仍然健康。该设备可能使用的是eMMC存储芯片,由于其较旧,因此想要查询存储介质的磨损级别信息。

解决方案

请注意,以下操作需要设备具有root权限,且仅适用于eMMC存储芯片。对于UFS存储芯片,相关信息可能不可用或需要进一步研究。

方案1:使用mmc工具查询eMMC存储芯片的磨损级别信息

  1. 安装mmc-utils:首先,你需要安装mmc-utils工具包,它包含了用于查询eMMC存储芯片磨损级别的命令行工具。
    sh
    sudo apt-get install mmc-utils
  2. 查询磨损级别信息:使用mmc extcsd read命令读取eMMC存储芯片的EXT_CSD寄存器,该寄存器包含了存储芯片的内部信息和磨损级别估计。
    sh
    sudo mmc extcsd read /dev/block/mmcblk0 | grep -E 'LIFE|EOL'

    输出示例:
    sh
    eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x03
    eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x03
    eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01

    解释:
  3. 0x03 表示健康状况估计在20%到30%的设备寿命之间。
  4. 0x01 表示正常预寿终状态。

  5. 通过sysfs接口查询磨损级别信息:同样地,你也可以通过sysfs接口查询这些信息。
    sh
    cat /sys/devices/soc/7824900.sdhci/mmc_host/mmc0/mmc0:0001/life_time
    cat /sys/devices/soc/7824900.sdhci/mmc_host/mmc0/mmc0:0001/pre_eol_info

    输出示例:
    sh
    0x03
    0x01

方案2:通过debugfs查询eMMC存储芯片的磨损级别信息

  1. 查询ext_csd寄存器:使用cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd命令直接读取ext_csd寄存器的内容。
    sh
    cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd

    需要注意的是,解析ext_csd寄存器的原始输出需要额外的工作,具体解析方法可以参考相关文档。

方案3:查询UFS存储芯片的磨损级别信息(可能不可用)

对于UFS存储芯片,目前没有明确的信息表明其提供了磨损级别的估计功能。UFS存储芯片通常支持SCSI命令集,但其健康监测系统可能类似于SMART系统,具体情况需要进一步研究。

注意事项

  • 由于eMMC和UFS存储芯片的通信协议不同,查询磨损级别信息的方法也有所不同。
  • 上述方法仅适用于具有root权限的设备。
  • 如果设备已经出现性能下降的情况,建议考虑更换存储芯片以延长设备使用寿命。

希望以上解决方案能够帮助你了解Android设备上存储介质的磨损级别信息。

正文完