无忧启动论坛

标题: nwinfo 0.9.5.1 bug 汇报 [打印本页]

作者: pda8888    时间: 2024-3-28 14:32
标题: nwinfo 0.9.5.1 bug 汇报
本帖最后由 pda8888 于 2024-3-28 15:38 编辑

请看视频:
请看视频
当使用pnputil /restart-device "硬盘设备之后",nwinfo --disk 出现错误

环境:virtualbox 7.0.14
4个虚拟硬盘,物理编号是0,1,2,3,即 \\.\Physicaldrive0 …… \\.\Physicaldrive3
1个虚拟U盘,物理编号是\\.\Physicaldrive4

先用
  1. nwinfo_x64.exe --disk --no-smart --format=json|jq -r -c ".Disks[]|\"\(.Path)=\(.HWID)\""
复制代码

得到:
  1. \\.\PhysicalDrive0=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&000000
  2. \\.\PhysicalDrive1=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&010000
  3. \\.\PhysicalDrive2=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&020000
  4. \\.\PhysicalDrive3=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&030000
  5. \\.\PhysicalDrive4=USBSTOR\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\6&36787cab&0
复制代码



此时输入命令:
  1. pnputil /restart-device "SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&030000"
复制代码

相当于把3号磁盘禁用再启用。
再用先前相同的命令:
  1. nwinfo_x64.exe --disk --no-smart --format=json|jq -r -c ".Disks[]|\"\(.Path)=\(.HWID)\""
复制代码

结果却是:
  1. \\.\PhysicalDrive0=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&000000
  2. \\.\PhysicalDrive1=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&010000
  3. \\.\PhysicalDrive2=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&020000
  4. \\.\PhysicalDrive3=USBSTOR\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\6&36787cab&0
  5. \\.\PhysicalDrive4=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&030000
复制代码

可以看到,3号和4号物理盘的hwid被互换了,这是不正确的结果。








作者: yyz2191958    时间: 2024-3-28 14:40
谢谢分享
作者: zlq_hysy    时间: 2024-3-28 14:47
留个脚印,,,,
作者: yc2428    时间: 2024-3-28 14:59
谢谢分享
作者: fdongh    时间: 2024-3-28 15:04

留个脚印,,,,
作者: pda8888    时间: 2024-3-28 15:14
本帖最后由 pda8888 于 2024-3-28 15:37 编辑

补充一下:
这次重启第0个物理磁盘:
  1. x:\>pnputil /restart-device "SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&000000"
复制代码
Microsoft PnP 工具

正在重启设备:         SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&000000
已成功重启设备。

再用nwinfo与jq列出硬盘信息:
  1. x:\>nwinfo_x64.exe --disk --no-smart --format=json|jq -r -c ".Disks[]|\"\(.Path)=\(.HWID)\""
复制代码
\\.\PhysicalDrive0=USBSTOR\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\6&36787cab&0
\\.\PhysicalDrive1=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&010000
\\.\PhysicalDrive2=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&020000
\\.\PhysicalDrive3=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&030000
\\.\PhysicalDrive4=SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&000000

这次轮到第0号硬盘与第4号硬盘的hwid互换了。

作者: 红毛樱木    时间: 2024-3-28 15:32
在系统自带的   磁盘管理  里看下磁盘号到底有没有变呢
作者: pda8888    时间: 2024-3-28 15:35
再补充一个在真机环境的情况:
U:\>nwinfo_x64.exe --disk --no-smart --format=json|jq -r -c ".Disks[]|\"\(.Path)=\(.HWID)\""
\\.\PhysicalDrive0=SCSI\Disk&Ven_NVMe&Prod_XPG_GAMMIX_S70_S\5&204bb58c&0&000000
\\.\PhysicalDrive1=SCSI\Disk&Ven_NVMe&Prod_HP_SSD_EX900_500\5&27a2bec5&0&000000
\\.\PhysicalDrive2=SCSI\Disk&Ven_WDS100T1&Prod_X0E-00AFY0\6&1d7f4af2&0&000000

U:\nwinfo>pnputil /restart-device "SCSI\Disk&Ven_NVMe&Prod_HP_SSD_EX900_500\5&27a2bec5&0&000000"
Microsoft PnP 工具

正在重启设备:         SCSI\Disk&Ven_NVMe&Prod_HP_SSD_EX900_500\5&27a2bec5&0&000000
已成功重启设备。


U:\>nwinfo_x64.exe --disk --no-smart --format=json|jq -r -c ".Disks[]|\"\(.Path)=\(.HWID)\""
\\.\PhysicalDrive0=SCSI\Disk&Ven_NVMe&Prod_XPG_GAMMIX_S70_S\5&204bb58c&0&000000
\\.\PhysicalDrive1=SCSI\Disk&Ven_WDS100T1&Prod_X0E-00AFY0\6&1d7f4af2&0&000000
\\.\PhysicalDrive2=SCSI\Disk&Ven_NVMe&Prod_HP_SSD_EX900_500\5&27a2bec5&0&000000

仍然是重启哪个硬盘,它的hwid就会与USB设备的hwid互换。
作者: pda8888    时间: 2024-3-28 15:36
红毛樱木 发表于 2024-3-28 15:32
在系统自带的   磁盘管理  里看下磁盘号到底有没有变呢

没有变化。
在设备管理器、磁盘管理器里面,都是正确的,没有发生错误变化。
作者: pda8888    时间: 2024-3-28 15:55
我拔掉U盘,对第2个硬盘进行restart-device,没有再现错误。
好像没有USB储存,就不会出错这种错误。
作者: 红毛樱木    时间: 2024-3-28 16:00
pda8888 发表于 2024-3-28 15:36
没有变化。
在设备管理器、磁盘管理器里面,都是正确的,没有发生错误变化。

那应该是BUG了
作者: yuguotqing    时间: 2024-3-28 20:25
感谢分享
作者: wang1126    时间: 2024-3-29 08:10
谢谢分享
作者: wintoflash    时间: 2024-3-29 11:56
nwinfo是通过注册表读hwid的,看来这样不行。

作者: pda8888    时间: 2024-3-29 16:20
wintoflash 发表于 2024-3-29 11:56
nwinfo是通过注册表读hwid的,看来这样不行。

明白了,没有重启注册表不生效,是吗?
作者: pda8888    时间: 2024-4-1 16:38
本帖最后由 pda8888 于 2024-4-1 17:13 编辑

果然。
在系统启动之初,查询注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum,导出是这样的:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum]
  3. "0"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&000000"
  4. "Count"=dword:00000005
  5. "NextInstance"=dword:00000005
  6. "1"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&010000"
  7. "2"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&020000"
  8. "3"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&030000"
  9. "4"="USBSTOR\\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\\6&36787cab&0"

复制代码

在使用了一次 pnputil /restart-device "SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&030000" 之后,再查询相同键值,导出,得:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum]
  3. "0"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&000000"
  4. "Count"=dword:00000005
  5. "NextInstance"=dword:00000005
  6. "1"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&010000"
  7. "2"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&020000"
  8. "3"="USBSTOR\\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\\6&36787cab&0"
  9. "4"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&030000"
复制代码


此时再使用 pnputil /restart-device "SCSI\Disk&Ven_VBOX&Prod_HARDDISK\4&1c07620b&0&020000" ,即重启“2号”盘,再查询注册表导出,又得到:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum]
  3. "0"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&000000"
  4. "Count"=dword:00000005
  5. "NextInstance"=dword:00000005
  6. "1"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&010000"
  7. "2"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&030000"
  8. "3"="USBSTOR\\Disk&Ven_VBOX&Prod_HARDDISK&Rev_1.0\\6&36787cab&0"
  9. "4"="SCSI\\Disk&Ven_VBOX&Prod_HARDDISK\\4&1c07620b&0&020000"
复制代码


这规律真是奇怪得很,就是只要重启哪个非USB设备,那个非USB设备就变成第4号盘,第3号变成USB设备,而本来USB设备是排在第4号盘位置上的。
作者: pda8888    时间: 2024-4-1 17:19
本帖最后由 pda8888 于 2024-4-1 17:26 编辑

https://learn.microsoft.com/zh-cn/windows-hardware/drivers/install/hklm-system-currentcontrolset-enum-registry-tree
微软官网说:
枚举树保留供操作系统组件使用,其布局可能会更改。 驱动程序和用户模式设备安装组件必须使用系统提供的功能

全文如下:

HKLM\SYSTEM\CurrentControlSet\Enum 注册表树
[size=0.875em]反馈

枚举树保留供操作系统组件使用,其布局可能会更改。 驱动程序和用户模式设备安装组件必须使用系统提供的功能(例如 IoGetDeviceProperty、 CM_Get_DevNode_Registry_Property和 SetupDiGetDeviceRegistryProperty )从此树中提取信息。

备注
驱动程序和 Windows 应用程序不得直接访问 枚举 树。





作者: 2012飘水    时间: 2024-4-2 20:17
学习了,感谢大神们的留言
作者: wintoflash    时间: 2024-4-14 20:51
试试
https://github.com/a1ive/nwinfo/releases/tag/latest
作者: pda8888    时间: 2024-4-14 22:19
有点好奇,这次不读注册表,是用什么方法呢?
我同时也测试了nirsoft的driverview,它也会有同样的问题。
作者: pda8888    时间: 2024-4-14 22:29
刚刚忍不住测试了一下,这次结果正确,我注意到跟0.9.5的不一样是把USB设备列到最前面了,接着是physicaldrive0、physicaldrive1……physicaldriven
作者: wintoflash    时间: 2024-4-15 06:48
pda8888 发表于 2024-4-14 22:19
有点好奇,这次不读注册表,是用什么方法呢?
我同时也测试了nirsoft的driverview,它也会有同样的问题。

用的是Setup API。
Ventoy 可能也有类似的问题。
作者: pda8888    时间: 2024-4-15 12:55
调用windowsAPI就对了,微软自己的文档也说了注册表不可靠。微软是自己打脸啊。

作者: yueying223    时间: 2024-4-16 15:26
,辛苦了
作者: lusir401    时间: 2024-4-30 08:44
楼主的缜密分析,和作者积极联手,又给坛友带来了福利。
作者: pda8888    时间: 2024-8-23 17:31
本帖最后由 pda8888 于 2024-8-24 05:45 编辑

0.9.7 的版本下,执行:
nwinfo_x86 --disk --format=json,得到:
  1. {
  2.   "Build Time": "Jun  2 2024 05:50:36",
  3.   "libnw": "v0.9.7.0",
  4.   "MSVC Version": "193933523",
  5.   "NT Version": "10.0.22631",
  6.   "Driver": "NOT FOUND",
  7.   "Language ID": "2052",
  8.   "libcpuid": "0.6.5",
  9.   "CrystalDiskInfo": "9.2.1",
  10.   "PCI ID": "2024.05.31",
  11.   "USB ID": "2024.03.18",
  12.   "PNP ID": "2024.06.02",
  13.   "JEP106 ID": "2024.05.02",
  14.   "Disks": [
  15.     {
  16.       "Path": "\\\\.\\PhysicalDrive0",
  17.       "HWID": "SCSI\\DISK&VEN_NVME&PROD_XPG_GAMMIX_S70_B\\5&B27292B&0&000000",
  18.       "HW Name": "XPG GAMMIX S70 BLADE",
  19.       "Product ID": "XPG GAMMIX S70 BLADE",
  20.       "Product Rev": "3.2.J.F0",
  21.       "Serial Number": "2N4429AAK1JH",
  22.       "Serial Number (Raw)": "0000_0000_0000_0000_707C_185E_6481_A513.",
  23.       "Type": "NVMe",
  24.       "Removable": "No",
  25.       "Size": 1024209543168,
  26.       "Partition Table": "GPT",
  27.       "GPT GUID": "{25E29325-84C9-0445-A864-002137F438DB}",
  28.       "SSD": "Yes",
  29.       "Temperature (C)": 47,
  30.       "Health Status": "Good (100%)",
  31.       "Current Transfer Mode": "PCIe 4.0 x4",
  32.       "Max Transfer Mode": "PCIe 4.0 x4",
  33.       "Standard": "NVM Express 1.4",
  34.       "Features": [ "S.M.A.R.T.", "TRIM", "VolatileWriteCache" ],
  35.       "Total Host Reads": "3281 GB",
  36.       "Total Host Writes": "2873 GB",
  37.       "Power On Count": 100,
  38.       "Power On Time (Hours)": 376,
  39.       "SMART Format": "RawValues(7)",
  40.       "SMART 01": "00000000000000 Critical Warning",
  41.       "SMART 02": "00000000000140 Composite Temperature",
  42.       "SMART 03": "00000000000064 Available Spare",
  43.       "SMART 04": "00000000000019 Available Spare Threshold",
  44.       "SMART 05": "00000000000000 Percentage Used",
  45.       "SMART 06": "00000000690369 Data Units Read",
  46.       "SMART 07": "000000005BF477 Data Units Written",
  47.       "SMART 08": "00000002AE23D5 Host Read Commands",
  48.       "SMART 09": "00000002CC18CA Host Write Commands",
  49.       "SMART 0A": "00000000000000 Controller Busy Time",
  50.       "SMART 0B": "00000000000064 Power Cycles",
  51.       "SMART 0C": "00000000000178 Power On Hours",
  52.       "SMART 0D": "00000000000009 Unsafe Shutdowns",
  53.       "SMART 0E": "00000000000000 Media and Data Integrity Errors",
  54.       "SMART 0F": "00000000000000 Number of Error Information Log Entries",
  55.       "Volumes": [
  56.         {
  57.           "Path": "\\Device\\HarddiskVolume4",
  58.           "Volume GUID": "\\\\?\\Volume{a267120e-e9d5-4500-b22b-2534acff4302}",
  59.           "Starting LBA": 2541568,
  60.           "Partition Number": 4,
  61.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  62.           "Partition ID": "{A267120E-E9D5-4500-B22B-2534ACFF4302}",
  63.           "Partition Flag": "DATA",
  64.           "Label": "Win 11 Pro x64",
  65.           "Filesystem": "NTFS",
  66.           "Free Space": 989311062016,
  67.           "Total Space": 1021890785280,
  68.           "Usage": "3.19%",
  69.           "Volume Path Names": [
  70.             {
  71.               "Drive Letter": "C:\\"
  72.             }
  73.           ]
  74.         },
  75.         {
  76.           "Path": "\\Device\\HarddiskVolume5",
  77.           "Volume GUID": "\\\\?\\Volume{3ac84176-a7e1-4ef1-8457-621005b7699b}",
  78.           "Starting LBA": 1998422016,
  79.           "Partition Number": 5,
  80.           "Partition Type": "{DE94BBA4-06D1-4D40-A16A-BFD50179D6AC}",
  81.           "Partition ID": "{3AC84176-A7E1-4EF1-8457-621005B7699B}",
  82.           "Partition Flag": "WINRE",
  83.           "Filesystem": "NTFS",
  84.           "Free Space": 65425408,
  85.           "Total Space": 1015017472,
  86.           "Usage": "93.55%",
  87.           "Volume Path Names": []
  88.         },
  89.         {
  90.           "Path": "\\Device\\HarddiskVolume1",
  91.           "Volume GUID": "\\\\?\\Volume{4546f7a3-0f8f-4a84-9a53-4b8692d9a2af}",
  92.           "Starting LBA": 2048,
  93.           "Partition Number": 1,
  94.           "Partition Type": "{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}",
  95.           "Partition ID": "{4546F7A3-0F8F-4A84-9A53-4B8692D9A2AF}",
  96.           "Partition Flag": "ESP",
  97.           "Label": "EFI_BOOT",
  98.           "Filesystem": "FAT32",
  99.           "Free Space": 176035840,
  100.           "Total Space": 205520896,
  101.           "Usage": "14.35%",
  102.           "Volume Path Names": []
  103.         }
  104.       ]
  105.     },
  106.     {
  107.       "Path": "\\\\.\\PhysicalDrive1",
  108.       "HWID": "SCSI\\DISK&VEN_NVME&PROD_PREDATOR_SSD_GM7\\5&EF2A01D&0&000000",
  109.       "HW Name": "Predator SSD GM7000 2TB",
  110.       "Product ID": "Predator SSD GM7000 2TB",
  111.       "Product Rev": "3.A.J.CR",
  112.       "Serial Number": "PSBG54050404921",
  113.       "Serial Number (Raw)": "0000_0000_0000_0000_A843_9740_5040_4921.",
  114.       "Type": "NVMe",
  115.       "Removable": "No",
  116.       "Size": 2048408248320,
  117.       "Partition Table": "GPT",
  118.       "GPT GUID": "{08B3EE24-4D63-F74D-9870-AE0EDFB1CAD1}",
  119.       "SSD": "Yes",
  120.       "Temperature (C)": 48,
  121.       "Health Status": "Good (100%)",
  122.       "Current Transfer Mode": "PCIe 4.0 x4",
  123.       "Max Transfer Mode": "PCIe 4.0 x4",
  124.       "Standard": "NVM Express 1.4",
  125.       "Features": [ "S.M.A.R.T.", "TRIM", "VolatileWriteCache" ],
  126.       "Total Host Reads": "38 GB",
  127.       "Total Host Writes": "363 GB",
  128.       "Power On Count": 6,
  129.       "Power On Time (Hours)": 8,
  130.       "SMART Format": "RawValues(7)",
  131.       "SMART 01": "00000000000000 Critical Warning",
  132.       "SMART 02": "00000000000141 Composite Temperature",
  133.       "SMART 03": "00000000000064 Available Spare",
  134.       "SMART 04": "00000000000019 Available Spare Threshold",
  135.       "SMART 05": "00000000000000 Percentage Used",
  136.       "SMART 06": "00000000013E8F Data Units Read",
  137.       "SMART 07": "000000000B9EAB Data Units Written",
  138.       "SMART 08": "00000000052152 Host Read Commands",
  139.       "SMART 09": "0000000006B99B Host Write Commands",
  140.       "SMART 0A": "00000000000000 Controller Busy Time",
  141.       "SMART 0B": "00000000000006 Power Cycles",
  142.       "SMART 0C": "00000000000008 Power On Hours",
  143.       "SMART 0D": "00000000000003 Unsafe Shutdowns",
  144.       "SMART 0E": "00000000000000 Media and Data Integrity Errors",
  145.       "SMART 0F": "00000000000000 Number of Error Information Log Entries",
  146.       "Volumes": [
  147.         {
  148.           "Path": "\\Device\\HarddiskVolume7",
  149.           "Volume GUID": "\\\\?\\Volume{a3dbfbbe-511c-4e41-a03c-107b2f813d00}",
  150.           "Starting LBA": 32768,
  151.           "Partition Number": 2,
  152.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  153.           "Partition ID": "{A3DBFBBE-511C-4E41-A03C-107B2F813D00}",
  154.           "Partition Flag": "DATA",
  155.           "Label": "文档磁盘",
  156.           "Filesystem": "NTFS",
  157.           "Free Space": 1051460829184,
  158.           "Total Space": 1051850698752,
  159.           "Usage": "0.04%",
  160.           "Volume Path Names": [
  161.             {
  162.               "Drive Letter": "D:\\"
  163.             }
  164.           ]
  165.         },
  166.         {
  167.           "Path": "\\Device\\HarddiskVolume8",
  168.           "Volume GUID": "\\\\?\\Volume{7751f816-9ab3-4dc1-afd1-a3a2e8c48817}",
  169.           "Starting LBA": 2054428672,
  170.           "Partition Number": 3,
  171.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  172.           "Partition ID": "{7751F816-9AB3-4DC1-AFD1-A3A2E8C48817}",
  173.           "Partition Flag": "DATA",
  174.           "Label": "软件磁盘",
  175.           "Filesystem": "NTFS",
  176.           "Free Space": 996388065280,
  177.           "Total Space": 996539363328,
  178.           "Usage": "0.02%",
  179.           "Volume Path Names": [
  180.             {
  181.               "Drive Letter": "E:\\"
  182.             }
  183.           ]
  184.         }
  185.       ]
  186.     },
  187.     {
  188.       "Path": "\\\\.\\PhysicalDrive2",
  189.       "HWID": "USBSTOR\\DISK&VEN_USBLCD&PROD_USB_PRC_SYSTEM&REV_\\7&2B772394&0",
  190.       "HW Name": "USBLCD USB PRC System USB Device",
  191.       "Vendor ID": "USBLCD",
  192.       "Product ID": "USB PRC System",
  193.       "Serial Number": "",
  194.       "Serial Number (Raw)": "",
  195.       "Type": "USB",
  196.       "Removable": "Yes",
  197.       "Size": 0,
  198.       "Partition Table": "MBR",
  199.       "MBR Signature": "00 00 00 00",
  200.       "Volumes": [
  201.         {
  202.           "Path": "\\Device\\HarddiskVolume9",
  203.           "Volume GUID": "\\\\?\\Volume{8880b57b-612e-11ef-b9fb-806e6f6e6963}",
  204.           "Volume Path Names": [
  205.             {
  206.               "Drive Letter": "U:\\"
  207.             }
  208.           ]
  209.         }
  210.       ]
  211.     }
  212.   ]
  213. }
复制代码

V1.0.1 的版本下,执行相同命令,得到:
  1. {
  2.   "Build Time": "Aug 20 2024 11:53:03",
  3.   "libnw": "v1.0.1.1",
  4.   "MSVC Version": "194033813",
  5.   "NT Version": "10.0.22631",
  6.   "Driver": "NOT FOUND",
  7.   "Language ID": "2052",
  8.   "libcpuid": "0.6.5",
  9.   "CrystalDiskInfo": "9.3.2",
  10.   "PCI ID": "2024.06.23",
  11.   "USB ID": "2024.07.04",
  12.   "PNP ID": "2024.08.20",
  13.   "JEP106 ID": "2024.05.02",
  14.   "Disks": [
  15.     {
  16.       "Path": "\\\\.\\PhysicalDrive0",
  17.       "HWID": "SCSI\\DISK&VEN_NVME&PROD_XPG_GAMMIX_S70_B\\5&B27292B&0&000000",
  18.       "HW Name": "XPG GAMMIX S70 BLADE",
  19.       "Product ID": "XPG GAMMIX S70 BLADE",
  20.       "Product Rev": "3.2.J.F0",
  21.       "Serial Number": "2N4429AAK1JH",
  22.       "Serial Number (Raw)": "0000_0000_0000_0000_707C_185E_6481_A513.",
  23.       "Type": "NVMe",
  24.       "Removable": "No",
  25.       "Size": 1024209543168,
  26.       "Partition Table": "GPT",
  27.       "GPT GUID": "{25E29325-84C9-0445-A864-002137F438DB}",
  28.       "SSD": "Yes",
  29.       "Temperature (C)": 45,
  30.       "Health Status": "Good (100%)",
  31.       "Current Transfer Mode": "PCIe 4.0 x4",
  32.       "Max Transfer Mode": "PCIe 4.0 x4",
  33.       "Standard": "NVM Express 1.4",
  34.       "Features": [ "S.M.A.R.T.", "TRIM", "VolatileWriteCache" ],
  35.       "Total Host Reads": "3281 GB",
  36.       "Total Host Writes": "2873 GB",
  37.       "Power On Count": 100,
  38.       "Power On Time (Hours)": 376,
  39.       "SMART Format": "RawValues(7)",
  40.       "SMART 01": "00000000000000 Critical Warning",
  41.       "SMART 02": "0000000000013E Composite Temperature",
  42.       "SMART 03": "00000000000064 Available Spare",
  43.       "SMART 04": "00000000000019 Available Spare Threshold",
  44.       "SMART 05": "00000000000000 Percentage Used",
  45.       "SMART 06": "0000000069036E Data Units Read",
  46.       "SMART 07": "000000005BF487 Data Units Written",
  47.       "SMART 08": "00000002AE2427 Host Read Commands",
  48.       "SMART 09": "00000002CC1B15 Host Write Commands",
  49.       "SMART 0A": "00000000000000 Controller Busy Time",
  50.       "SMART 0B": "00000000000064 Power Cycles",
  51.       "SMART 0C": "00000000000178 Power On Hours",
  52.       "SMART 0D": "00000000000009 Unsafe Shutdowns",
  53.       "SMART 0E": "00000000000000 Media and Data Integrity Errors",
  54.       "SMART 0F": "00000000000000 Number of Error Information Log Entries",
  55.       "Volumes": [
  56.         {
  57.           "Path": "\\Device\\HarddiskVolume4",
  58.           "Volume GUID": "\\\\?\\Volume{a267120e-e9d5-4500-b22b-2534acff4302}",
  59.           "Starting LBA": 2541568,
  60.           "Partition Number": 4,
  61.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  62.           "Partition ID": "{A267120E-E9D5-4500-B22B-2534ACFF4302}",
  63.           "Partition Flag": "DATA",
  64.           "Label": "Win 11 Pro x64",
  65.           "Filesystem": "NTFS",
  66.           "Free Space": 989308973056,
  67.           "Total Space": 1021890785280,
  68.           "Usage": "3.19%",
  69.           "Volume Path Names": [
  70.             {
  71.               "Drive Letter": "C:\\"
  72.             }
  73.           ]
  74.         },
  75.         {
  76.           "Path": "\\Device\\HarddiskVolume5",
  77.           "Volume GUID": "\\\\?\\Volume{3ac84176-a7e1-4ef1-8457-621005b7699b}",
  78.           "Starting LBA": 1998422016,
  79.           "Partition Number": 5,
  80.           "Partition Type": "{DE94BBA4-06D1-4D40-A16A-BFD50179D6AC}",
  81.           "Partition ID": "{3AC84176-A7E1-4EF1-8457-621005B7699B}",
  82.           "Partition Flag": "WINRE",
  83.           "Filesystem": "NTFS",
  84.           "Free Space": 65425408,
  85.           "Total Space": 1015017472,
  86.           "Usage": "93.55%",
  87.           "Volume Path Names": []
  88.         },
  89.         {
  90.           "Path": "\\Device\\HarddiskVolume1",
  91.           "Volume GUID": "\\\\?\\Volume{4546f7a3-0f8f-4a84-9a53-4b8692d9a2af}",
  92.           "Starting LBA": 2048,
  93.           "Partition Number": 1,
  94.           "Partition Type": "{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}",
  95.           "Partition ID": "{4546F7A3-0F8F-4A84-9A53-4B8692D9A2AF}",
  96.           "Partition Flag": "ESP",
  97.           "Label": "EFI_BOOT",
  98.           "Filesystem": "FAT32",
  99.           "Free Space": 176035840,
  100.           "Total Space": 205520896,
  101.           "Usage": "14.35%",
  102.           "Volume Path Names": []
  103.         }
  104.       ]
  105.     },
  106.     {
  107.       "Path": "\\\\.\\PhysicalDrive1",
  108.       "HWID": "SCSI\\DISK&VEN_NVME&PROD_PREDATOR_SSD_GM7\\5&EF2A01D&0&000000",
  109.       "HW Name": "Predator SSD GM7000 2TB",
  110.       "Product ID": "Predator SSD GM7000 2TB",
  111.       "Product Rev": "3.A.J.CR",
  112.       "Serial Number": "PSBG54050404921",
  113.       "Serial Number (Raw)": "0000_0000_0000_0000_A843_9740_5040_4921.",
  114.       "Type": "NVMe",
  115.       "Removable": "No",
  116.       "Size": 2048408248320,
  117.       "Partition Table": "GPT",
  118.       "GPT GUID": "{08B3EE24-4D63-F74D-9870-AE0EDFB1CAD1}",
  119.       "SSD": "Yes",
  120.       "Temperature (C)": 49,
  121.       "Health Status": "Good (100%)",
  122.       "Current Transfer Mode": "PCIe 4.0 x4",
  123.       "Max Transfer Mode": "PCIe 4.0 x4",
  124.       "Standard": "NVM Express 1.4",
  125.       "Features": [ "S.M.A.R.T.", "TRIM", "VolatileWriteCache" ],
  126.       "Total Host Reads": "38 GB",
  127.       "Total Host Writes": "363 GB",
  128.       "Power On Count": 6,
  129.       "Power On Time (Hours)": 8,
  130.       "SMART Format": "RawValues(7)",
  131.       "SMART 01": "00000000000000 Critical Warning",
  132.       "SMART 02": "00000000000142 Composite Temperature",
  133.       "SMART 03": "00000000000064 Available Spare",
  134.       "SMART 04": "00000000000019 Available Spare Threshold",
  135.       "SMART 05": "00000000000000 Percentage Used",
  136.       "SMART 06": "00000000013E8F Data Units Read",
  137.       "SMART 07": "000000000B9EC5 Data Units Written",
  138.       "SMART 08": "00000000052166 Host Read Commands",
  139.       "SMART 09": "0000000006BAF5 Host Write Commands",
  140.       "SMART 0A": "00000000000000 Controller Busy Time",
  141.       "SMART 0B": "00000000000006 Power Cycles",
  142.       "SMART 0C": "00000000000008 Power On Hours",
  143.       "SMART 0D": "00000000000003 Unsafe Shutdowns",
  144.       "SMART 0E": "00000000000000 Media and Data Integrity Errors",
  145.       "SMART 0F": "00000000000000 Number of Error Information Log Entries",
  146.       "Volumes": [
  147.         {
  148.           "Path": "\\Device\\HarddiskVolume7",
  149.           "Volume GUID": "\\\\?\\Volume{a3dbfbbe-511c-4e41-a03c-107b2f813d00}",
  150.           "Starting LBA": 32768,
  151.           "Partition Number": 2,
  152.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  153.           "Partition ID": "{A3DBFBBE-511C-4E41-A03C-107B2F813D00}",
  154.           "Partition Flag": "DATA",
  155.           "Label": "文档磁盘",
  156.           "Filesystem": "NTFS",
  157.           "Free Space": 1051449344000,
  158.           "Total Space": 1051850698752,
  159.           "Usage": "0.04%",
  160.           "Volume Path Names": [
  161.             {
  162.               "Drive Letter": "D:\\"
  163.             }
  164.           ]
  165.         },
  166.         {
  167.           "Path": "\\Device\\HarddiskVolume8",
  168.           "Volume GUID": "\\\\?\\Volume{7751f816-9ab3-4dc1-afd1-a3a2e8c48817}",
  169.           "Starting LBA": 2054428672,
  170.           "Partition Number": 3,
  171.           "Partition Type": "{EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}",
  172.           "Partition ID": "{7751F816-9AB3-4DC1-AFD1-A3A2E8C48817}",
  173.           "Partition Flag": "DATA",
  174.           "Label": "软件磁盘",
  175.           "Filesystem": "NTFS",
  176.           "Free Space": 996388048896,
  177.           "Total Space": 996539363328,
  178.           "Usage": "0.02%",
  179.           "Volume Path Names": [
  180.             {
  181.               "Drive Letter": "E:\\"
  182.             }
  183.           ]
  184.         }
  185.       ]
  186.     },
  187.     {
  188.       "Path": "\\\\.\\PhysicalDrive2",
  189.       "HWID": "USBSTOR\\DISK&VEN_USBLCD&PROD_USB_PRC_SYSTEM&REV_\\7&2B772394&0",
  190.       "HW Name": "USBLCD USB PRC System USB Device",
  191.       "Vendor ID": "USBLCD",
  192.       "Product ID": "USB PRC System",
  193.       "Serial Number": "",
  194.       "Serial Number (Raw)": "",
  195.       "Type": "USB",
  196.       "Removable": "Yes",
  197.       "Size": 0,
  198.       "Partition Table": "MBR",
  199.       "MBR Signature": "00 00 00 00",
  200.       "Volumes": [
  201.         {
  202.           "Path": "\\Device\\HarddiskVolume9",
  203.           "Volume GUID": "\\\\?\\Volume{8880b57b-612e-11ef-b9fb-806e6f6e6963}",
  204.           "Volume Path Names": [
  205.             {
  206.               "Drive Letter": "U:\\"
  207.             }
  208.           ]
  209.         }
  210.       ]
  211.     }
  212.   ]
  213. }
复制代码

在jqplaye.org里面,是这样显示的

问题都在这里:(json文件里面的193、194行)
  1.       "Serial Number": "",
  2.       "Serial Number (Raw)": "",
复制代码

口里面是0x1f,用二进制查看器是这样的:


在jqplay.org执行结果框里报错就是:
Error: jq: parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 193, column 26


作者: pda8888    时间: 2024-8-23 18:08
本帖最后由 pda8888 于 2024-8-23 18:10 编辑

不知为何,我把引发报错的两句:
      "Serial Number": "",
      "Serial Number (Raw)": "",

改为
      "Serial Number": "123",
      "Serial Number (Raw)": "123",

以为不会报错了,谁知jqplayer执行框继续报错:
Error: jq: error (at /dev/stdin:212): null (null) cannot be parsed as a number

可能我的查询语句有错吧。慢慢查。
  1. def minSpace: 10; # 最小空间值,单位为GB

  2. [
  3.   .Disks[] as $disk |
  4.   $disk.Volumes[]? |
  5.   {
  6.     drive: (.["Volume Path Names"]? | map(select(.["Drive Letter"] != "")) | .[0].["Drive Letter"] | rtrimstr(":\") ),
  7.     freeSpace: (.["Free Space"]? | tonumber),
  8.     ssd: $disk.SSD
  9.   } |
  10.   select(.drive != null and .drive != "C" and $disk.Type != "USB" and .freeSpace != null and .freeSpace >= (minSpace * 1024 * 1024 * 1024))
  11. ] |
  12. sort_by(.ssd == "No", -.freeSpace) | .[] | ""\( .drive )|\(( .freeSpace / 1024 / 1024 / 1024 | round ))|\( .ssd )""
复制代码

作者: wintoflash    时间: 2024-8-23 18:29
pda8888 发表于 2024-8-23 17:31
0.9.7 的版本下,执行:
nwinfo_x86 --disk --format=json,得到:

用其他软件看看这块硬盘的序列号呢?
作者: pda8888    时间: 2024-8-23 19:20
忘了做这件事了,我明天就可以拿到序列号。
作者: pda8888    时间: 2024-8-23 19:55
本帖最后由 pda8888 于 2024-8-23 20:21 编辑



作者: pda8888    时间: 2024-8-23 20:04
本帖最后由 pda8888 于 2024-8-23 20:12 编辑
wintoflash 发表于 2024-8-23 18:29
用其他软件看看这块硬盘的序列号呢?

两个固态:
1、XPG GAMMIX S70 BLADE 1.0 TB的,序列号是:2N4429AAK1JH
2、Predator SSD GM7000 2TB,序列号是:PSBG54050404921
31楼有smart截图。
作者: wintoflash    时间: 2024-8-23 20:46
pda8888 发表于 2024-8-23 20:04
两个固态:
1、XPG GAMMIX S70 BLADE 1.0 TB的,序列号是:2N4429AAK1JH
2、Predator SSD GM7000 2TB, ...

出错的是USBLCD USB PRC System USB Device这个盘,你贴另外两个盘的序列号有啥用?
作者: pda8888    时间: 2024-8-23 21:00
本帖最后由 pda8888 于 2024-8-23 21:02 编辑
wintoflash 发表于 2024-8-23 20:46
出错的是USBLCD USB PRC System USB Device这个盘,你贴另外两个盘的序列号有啥用?

啊?!我大意了。实在抱歉!
USBLCD USB PRC System USB Device 这个设备是利民的带屏的水冷(寒冰装甲和雷神之锤系列),这个屏通过一条USB线连接在主板上,并建立了一个虚拟的U盘来来实现主机与水冷屏幕的通讯,问题肯定在这里了,这个虚拟的U盘是没有smart信息的,但是系统却把它认作一个U盘。利民这机制真是奇葩!!!

作者: wintoflash    时间: 2024-8-23 21:22
pda8888 发表于 2024-8-23 21:00
啊?!我大意了。实在抱歉!
USBLCD USB PRC System USB Device 这个设备是利民的带屏的水冷(寒冰装甲 ...

那好吧。处理方式应该就是过滤一下序列号,只允许ascii字符出现。
作者: pda8888    时间: 2024-8-23 21:37
wintoflash 发表于 2024-8-23 21:22
那好吧。处理方式应该就是过滤一下序列号,只允许ascii字符出现。

老大威5!
作者: pda8888    时间: 2024-8-23 21:52
本帖最后由 pda8888 于 2024-8-23 22:09 编辑

截图是DG的smart子窗口。
奇怪的是,DG里只显示两个物理真盘,不显示USBLCD USB PRC System USB Device 这个假盘。我估计DG是过滤了smart信息中无容量字段的盘的。

作者: tsing76    时间: 2024-8-23 22:16
强强强
作者: wintoflash    时间: 2024-8-24 15:59
pda8888 发表于 2024-8-23 21:37
老大威5!

试试 https://github.com/a1ive/nwinfo/releases/tag/latest
目前的处理办法是把无效字符替换为?。

作者: pda8888    时间: 2024-8-24 18:48
wintoflash 发表于 2024-8-24 15:59
试试 https://github.com/a1ive/nwinfo/releases/tag/latest
目前的处理办法是把无效字符替换为?。

感谢神速反应!
我倒是建议参考DG的做法,过滤掉非法的磁盘,不知他的过滤标准是什么,起码我觉得smart信息中的size=0的,一定是假盘。
作者: pda8888    时间: 2024-11-4 08:15
本帖最后由 pda8888 于 2024-11-4 08:20 编辑

nwinfo 版本:1.0.3
主机:一台 AMD 5700U安装好UNRAID之后,在UNRAID上安装的Windows 11虚拟机,直通了GPU
命令:nwinfo  --cpu --smbios --no-smart --disk --pci=03 --format=json --output=unraid.json
动作:把unraid.json全部粘贴到jqplay.org的源文件窗口,在query那里输入 .
报错提示:



作者: pda8888    时间: 2024-11-4 12:43
wintoflash 发表于 2024-8-24 15:59
试试 https://github.com/a1ive/nwinfo/releases/tag/latest
目前的处理办法是把无效字符替换为?。

请移步 http://bbs.wuyou.net/forum.php?m ... 74530&fromuid=91123 看看。
作者: wintoflash    时间: 2024-11-4 16:29
pda8888 发表于 2024-11-4 12:43
请移步 http://bbs.wuyou.net/forum.php?m ... 74530&fromuid=91123 看看。

怎么有那么多固件喜欢犯神经病呢
试试 https://github.com/a1ive/nwinfo/releases/tag/latest

作者: pda8888    时间: 2024-11-4 22:42
wintoflash 发表于 2024-11-4 16:29
怎么有那么多固件喜欢犯神经病呢
试试 https://github.com/a1ive/nwinfo/releases/tag/latest


也不知是他们的bug还是你的bug,哈哈。
作者: fruds9981    时间: 2024-11-4 23:06
标记以方便后续学习
作者: wintoflash    时间: 2024-11-5 16:01
pda8888 发表于 2024-11-4 22:42
也不知是他们的bug还是你的bug,哈哈。

测试出结果了么
作者: pda8888    时间: 2024-11-6 08:44
wintoflash 发表于 2024-11-5 16:01
测试出结果了么

毫无悬念的解决了,我看到是用空格替代了非法字符。
作者: wintoflash    时间: 2024-11-6 16:11
pda8888 发表于 2024-11-4 22:42
也不知是他们的bug还是你的bug,哈哈。

你用dmidecode看看smbios就知道是谁的错了




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3