在 Linux(parted)的分区上设置“隐藏”属性不被 Windows 尊重吗?

在 Linux(parted)的分区上设置“隐藏”属性不被 Windows 尊重吗?

当我在 GPT 分区上设置“隐藏”标志时,Windows 8.1 不会尊重它(Windows 会尝试堆积、抛出 UI 等)。但是,如果我从 diskpart.exe 设置“隐藏”标志,它会被尊重 - 这两个“隐藏”有什么不同吗?

我怎样才能在 Linux 中设置位,以便 Windows 能够尊重它?

GNU Parted 3.0
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
Model: LaCie P9220 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name         Flags
 1      1049kB  8001MB  8000MB  fat32        SD_Recovery
 2      8001MB  8101MB  101MB   ext4         SD_OS        hidden
 3      8101MB  8201MB  99.6MB               SD_Page      hidden
 4      8201MB  520GB   512GB   ext4         SD_Data0     hidden
 5      520GB   1000GB  480GB   ext4         SD_Data1     hidden

和 Windows 中的同一磁盘

DISKPART> lis vol

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  ...
  Volume 7     E                FAT32  Partition   7629 MB  Healthy
  Volume 8     H                RAW    Partition     96 MB  Healthy
  Volume 9     I                RAW    Partition     95 MB  Healthy
  Volume 10    J                RAW    Partition    476 GB  Healthy
  Volume 11    K                RAW    Partition    447 GB  Healthy

DISKPART>

答案1

我不确定 parted 使用哪个属性位来定义隐藏分区,您需要查看源代码。但从您的经验来看,它肯定有所不同。

Microsoft 为 GPT 定义了以下分区属性:位 60 - 只读、位 62 - 隐藏、位 63 - 不自动挂载

有关详细信息,请参阅这篇维基文章

那么在 Linux 上如何做到这一点?您可以查看 parted 文档,看看是否允许您为分区条目设置自定义属性位;如果不允许,则需要修改源代码以使其设置微软使用的位。

答案2

Parted 和 gdisk 在调用不同的 GPT 分区属性位方面有所不同:

少量 分开 磁盘分区 评论
0 系统分区 在 UEFI 规范中定义为“必需分区”
1 - 隐藏 EFI 在 UEFI 规范中定义为“无块 IO 协议”
2 遗留启动 可引导传统 BIOS 在 UEFI 规范中定义为“Legacy BIOS Bootable”
60 - 只读 由微软定义
61 - - 由微软定义作为“另一个分区的卷影副本”
62 - 由微软定义
63 自动挂载 不自动挂载 由微软定义

parted 中的其他“标志”与特定分区类型 GUID 相关

全局唯一标识符 分开 磁盘分区
C12A7328-F81F-11D2-BA4B-00A0C93EC93B 启动,尤其是 EF00,EFI 系统分区
C12A7328-F81F-11D2-BA4B-00A0C93EC93B - 8300,​​Linux 文件系统
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F 交换 8200,Linux 交换
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 微软数据 0700,微软基础数据

相关内容