skydevil88/XboxDownload

被Series主机格式化的Xbox专有格式硬盘无法识别

aTerminal opened this issue · 4 comments

设备为Xbox Series X。
最近购入一个1TB SSD,放进硬盘盒后可以被Xbox识别到,将其格式化为专有格式的外置移动硬盘,把它连接到PC后发现下载助手无法识别到该硬盘:

image

同时,设备管理器显示其未初始化。可能的原因是现在的Xbox专有格式硬盘会修改分区表?

image

补充:该硬盘连接回Xbox后可以被Xbox识别,运行硬盘上的游戏也正常,所以能确认不是硬盘的问题。

Win11磁盘管理显示未初始化是正常的,可能USB线或者硬盘盒问题,接机箱后面USB口看看。

Win11磁盘管理显示未初始化是正常的,可能USB线或者硬盘盒问题,接机箱后面USB口看看。

多谢您的回复。在得知磁盘管理显示未初始化正常以后,我对扫描按钮ButScan_Click进行了调试:
image
如果我没有理解错的话,读取MBR的方法ReadMBR实质上是返回磁盘物理扇区0-1FF块,然后截取前892个字符,与末尾为123456780000的字符串进行比较。事实上,我使用DiskGenius检查Xbox格式化后的硬盘,发现其磁盘扇区确实也是如此:
image
可以很清楚地看到,在1B8-1BD块是123456780000,而前面都是0。理论上应该可以匹配到并检索出来,但是Win32 API ReadFile方法返回的MBR值却是全0的数:
image
这个返回值导致了不匹配的情况发生,所以无法被检索出来。我还没有找到对于外接硬盘返回值不正常的原因,但这个Win32 API在我的本地SSD上的返回值是完全正常的:
image
这和我用DiskGenius查到的结果完全一致。

我不确定这是否是Windows 11的bug,可能需要换到一台Windows 10的电脑再测试一次。期待您的回复。

我用WIN11转换一块HDD硬盘完全正常,你的问题也没法回答。

我用WIN11转换一块HDD硬盘完全正常,你的问题也没法回答。

我使用扇区编辑器手动将扇区的"99CC"块更改为"55AA"后发现可以被PC识别了,转换回"99CC"同样可以被Xbox识别。这可能是Win32 API的问题,我会尝试寻找一个可能的解决方案。