我有一个全新的矽力达 Marvel M7064GB USB 闪存驱动器在 58.89GB 可用空间之前有 45MB 未分配空间。我不在乎少于 64GB,因为我知道这是基于 1024 的数学计算。
我关心的是 45MB 的大小。为什么这么多?1MB 是对齐的典型值。
因此,我使用以下命令在 Linux 中加载了一个十六进制编辑器:
hexdump /dev/sdb -C | less
我发现如下的数据“字符串”:
分区表无效。加载操作系统时出错。缺少操作系统。
移除磁盘或其他媒体。磁盘错误。按任意键重新启动。U.RRaA。
该程序不能在 DOS 模式下运行。
CpaintDC。用户异常。CResourceException。
应用程序尝试错误地加载 C 运行时库。请联系应用程序的支持团队以获取更多信息。尝试在本机代码期间使用此程序集中的 MSIL 代码。
那是在未分配的 45 MB 区域内……它难道不应该是出厂时就直接为零吗?此外,相同的驱动器(见下文)的未分配和分区区域的大小完全不同;似乎可执行数据存储在那里或曾经存储在那里
我以前从未遇到过这种情况。其他人遇到过吗?我打电话给公司,他们没有解释,只是告诉我,打开一个并将其连接到计算机后,驱动器开头也显示有 45 MB 的未分配空间。
这表明它可能在工厂就是这样完成的,并且不仅仅是我的有这种配置。
我关心的是那里存储了什么;它是否可能是可执行文件等等。尤其是看到上面的十六进制转储文本字符串来自 45 MB 的“未分配空间”。如果它是可执行文件;我会假设它在启动到驱动器时可能是可访问的。
有人见过这种情况吗?你能想到什么解释吗?
编辑:当我打电话给生产该产品的公司时,他们还插入了同型号的 128GB 容量,未分配空间为 31MB。不确定这是否与此处可能发生的事情有关,但它肯定不是“成比例的”,或者至少不是相同的。
编辑:随后,我尝试了另一个全新的设备(相同型号、批号、大小(64GB)的驱动器。如 GParted 所示:
驱动器 #1:45.33 MiB 未分配和 58.89GB FAT32
驱动器 #2:46.38 MiB 未分配和 54.70GB FAT32
这两个驱动器都应为 64GB。大小等都相同。这是出厂时的产品。我从未遇到过其他闪存驱动器出现这种差异。我的意思是,这两个驱动器的总扇区大小之间的存储空间少了 4GB 以上。
As displayed by "fdisk -l" as requested (for the #2 drive only since I already cleared out the partition table of drive #1):
Disk /dev/sdc: 58.8 GB, 58787364864 bytes
90 heads, 26 sectors/track, 49067 cylinders, total 114819072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x75cbf5af
设备启动:/dev/sdb1
开始:94976
结束:114819071
块:57362048
ID:c
系统:W95 FAT32(LBA)
此外,这并不能解释为什么在第一个分区之前有 45MB 或 46MB 的未分配空间,但是当我在 2 个相同的 64GB 驱动器上运行“dd if=/dev/sdb of=/flash_drive_dd.img bs=1M“命令(它应该给我一个驱动器的整个存储容量的指示,对吧?)我得到两个完全不同的数字:
驱动器 #1 显示文件大小为 63,283,658,752
驱动器 #2 显示文件大小为 58,787,364,864
这些值适用于整个驱动器...而不仅仅是所谓相同型号的 64GB 驱动器的分区。
关于两个相同设备上可能存在的截然不同的扇区数量(也许这应该是一个不同的问题帖子?)是否可能发生过度配置 ---> 考虑到两个相同的 64GB 驱动器显示可用扇区大小相差很大(一个即将无处接近 64,000,000,000 MB) 这是否意味着一个是过度配置或者其他什么,而另一个不是?
我确定我的操作系统应该看到什么的方式如下:我取 64,000,000,000 字节并除以 1024 ^ 3,我应该得到操作系统报告的 59.6 GB(或非常接近)。
即使存在一些“过度配置”(USB 闪存驱动器是否存在像 SSD 这样的现象),至少我希望它们是一致的,并且两个相同型号的驱动器之间的大小不会有很大差异。
但是,新鲜的是:
驱动器 #1 整个设备只有 63,283,658,752 个扇区,大小为 58.9G。如果我的计算正确的话,这个驱动器少了 700 多 MB。
和
驱动器#2 只有 58,787,364,864,即 54.8G。而且,如果我的计算正确的话,第二个驱动器缺少 5.2 GB。
这令人不安....相同型号的空间(整个驱动器)比我预期的要小得多......第二个驱动器的尺寸比另一个小得多。
即使它是某种形式的过度配置;我认为它应该是一致的,不是吗?
这甚至无法解释一开始看似可执行数据的 45 或 46 MB 未分配空间。
事情变得越来越奇怪,除非我错过了有关 USB 闪存驱动器的某些基本知识。
抱歉,这篇文章有点长...我不断发现更多的东西,并在前进的过程中添加。
答案1
一些闪存驱动器(甚至是外置硬盘)有内置软件。这些驱动器在操作系统中看起来像两个设备,第一个是 CD-ROM,第二个是普通的读/写大容量存储设备。
这不是操作系统所理解/执行的分区- 它是在较低级别上完成的 - 它由 USB 设备中的微控制器控制。
设备制造商提供的实用程序(通常是中文)确实可以改变这种安排 - 并且您必须使用与微控制器兼容的实用程序 - 而且它们很难找到和使用。
我敢打赌,这个闪存驱动器曾经注定要内置软件,但制造商不知出于什么原因改变了主意。
因此,未分配区域可能是假的“CD-ROM”区域,其中包含该制造商(或可能是其他制造商)提供的另一个 SKU 驱动器的加密或备份软件。
制造商可能供应过剩这些特定设备或存在其他相关的经济状况,然后运行实用程序来重新配置闪存排列并删除“CD-ROM”分区,但在包装前没有擦除这部分闪存。
您应该在未分配的分区上运行 TestDisk 并看看能找到什么!
答案2
他们可能在编写 MBR 或 GPT 表时出了点小问题。我建议你打开 gparted 之类的软件,编写自己的 GPT 或 MBR 表,然后在其上创建一个新的 FAT32 分区,看看是否能解决你的问题。
如果在执行此过程时发现错误,则可能是硬件故障。
答案3
质量控制措施不佳。众所周知,内存很难以任何程度的一致性制造。通常,RAM 制造完成后会进行测试以确定其大小,然后格式化空间以显示该大小。至于未分配空间中的字符串,我猜这是他们在产品发货前进行的质量控制测试的结果。
答案4
[sorry4necro?碰撞]嘿迈克2000(“收到回复后将更新此帖子”)你得到回复了吗?
我有 Kingston Hyperx Savage 64GB,跟你的情况一样。那里 (https://www.kingston.com/us/support/technical/products?model=hxs3)是答案:
我的 DataTraveler 或 Flash 介质的全部容量无法用于存储。为什么?
闪存设备列出的容量部分用于格式化和其他功能,因此不能用于数据存储,所以您将看不到全部容量。
在制造闪存设备时,需要采取一些步骤来确保设备可靠运行,并允许主机设备(计算机、数码相机、PDA 等)访问存储单元;即在闪存设备上存储和检索数据。这些步骤(大致称为“格式化”)会利用设备中的一些存储单元,从而减少最终用户可用的数据存储容量。
格式化包括以下操作:
测试闪存设备中的每个存储单元。 识别所有有缺陷的单元并采取措施确保不会将数据写入有缺陷的单元或从有缺陷的单元读取数据。 保留一些单元作为“备用”。 闪存单元的使用寿命很长但有限。 因此,一些单元被保留以替换任何可能随时间推移而失效的存储单元。 创建文件分配表 (FAT) 或其他目录。 为了使闪存设备能够方便地存储和访问客户文件,必须创建文件管理系统,以允许任何设备或计算机识别存储在闪存设备中的文件。 闪存设备最常见的文件管理系统类型是文件分配表 (FAT),它也用于硬盘驱动器。 保留一些单元供闪存设备的控制器使用,例如用于存储固件更新和其他控制器特定信息。 在适用的情况下,保留一些单元用于特殊功能。 例如,安全数字 (SD) 卡的规范要求保留区域以支持特殊的复制保护和安全功能。
引用答案结束。
现在,我很感兴趣:按照这个逻辑,容量为 128GB 的闪存驱动器将有 90(45 的两倍)MB 未分配空间,容量为 256GB 的闪存驱动器有 180MB……等等。我没有那么大的闪存驱动器,但知道会很有趣……