我发现有人建议更改分区的 GPT 属性,以防止 Windows 在插入加密 USB 驱动器时自动检测并为其分配驱动器号,以及将其标记为“必需” - 避免弹出建议格式化的窗口。这是建议的更改,它似乎可以在多台计算机上工作,并且目前没有数据损坏。
GPT 属性=0xC000000000000001
我理解字符串最后位置的“1”是将分区标记为“必需”并防止系统删除或格式化它。“x”后面的第一个位置有几个可能的值,等同于表示分区是影子分区还是基本数据分区;这些似乎都是数值(即 2、4、8)。但我找不到任何表示第一个属性中的“C”的内容。有人知道这是什么意思吗,或者它是否会对长期数据稳定性/损坏造成问题?
谢谢
答案1
第一件事:0xC
= C (hex)
= 12 (dec)
= 1100 (bin)
。四位。字符串中的每个字符都C000000000000001
表示四位,总共 64 位。字符串的二进制表示是11…01
替换…
60 个零。
这些位的含义(来自维基百科):
0 所需平台(计算机正常运行所需,例如 OEM 分区,磁盘分区实用程序必须按原样保留分区)
1 EFI 固件应忽略分区的内容,而不是尝试从中读取
2 传统 BIOS 可引导(相当于 MBR 分区表的分区条目中偏移 +0h 处的活动标志(通常设置位 7))
3–47 保留供将来使用
48–63 由单个分区类型定义和使用
无法立即看出11…01
序列中的哪一位是第 0 位,即第 63 位。这些数字是位序列中的偏移量吗?还是第 0 位是结果二进制数中最低有效位(最右边)?好吧,在我使用 (Linux) 进行的测试中,gdisk
我切换了第 0 位,属性在00…00
和之间切换00…01
,因此我会说第 0 位是结果二进制数中最低有效位。
这意味着您对(十六进制)数字的解释1
是正确的(虽然不完整,但该数字还包括有关位 1、2 和 3 的信息,这些位未设置)。
gdisk
显示其自己的解释为:
0: system partition 1: hide from EFI 2: legacy BIOS bootable 60: read-only 62: hidden 63: do not automount
对于位 0-2,这与维基百科一致,并且另一个答案和其中的链接60、62 和 63。我对后面的内容持保留态度,因为维基百科上说
48–63 由单个分区类型定义和使用
而且您没有告诉我们分区类型是什么,所以我们无法进一步调查。另一方面,如果 Windows 将其规则应用于所有分区类型,我也不会感到惊讶。您的设置“可在多台计算机上运行,且尚未出现数据损坏”这一事实表明,至少对于这个特定的分区,Windows 使用其关于位 62 和 63 的规则。
总而言之,所讨论的属性意味着:
- 磁盘分区实用程序必须保留分区原样,
- 隐,
- 不自动挂载。
此设置应该适合您,并且不会对数据稳定性造成任何威胁。
答案2
正如 Kamil 指出的那样,“C”是十六进制的,用二进制表示为 1100。即:1*8 + 1*4 + 0*2 + 0*1。因此,您可以将“C”视为 8 和 4 的组合。
从https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/gpt,以下是一些 GPT 属性的值。
0x80000000000000000。指定当磁盘移动到另一台计算机或计算机第一次看到该磁盘时,该分区默认将不接收驱动器号。
0x40000000000000000。隐藏分区的卷。也就是说,挂载管理器不会检测到该分区。
因此,在您的情况下,将“C”视为 8 和 4 的组合,您的分区 (1) 将不会收到驱动器号,并且 (2) 将被隐藏。