GDiskhex代码

在使用gdisk期间,可以选择指定hex代码。 我想知道它是什么以及它为什么需要,见下文。 例如,如果我在驱动器上创建软件RAID,我认为我需要代码fd00。 但为什么? 它是什么,我必须使用它吗? 为什么我不能使用8300创建我的raidarrays(无论这意味着什么)?

Command (? for help): n Partition number (1-128, default 1): First sector (34-5860533134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-5860533134, default = 5860533134) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): L 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 4100 PowerPC PReP boot 4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS 7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved 8200 Linux swap 8300 Linux filesystem 8301 Linux reserved 8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+ af01 Apple RAID af02 Apple RAID offline af03 Apple label af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT eb00 Haiku BFS ed00 Sony system partitio ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition Press the key to see more codes: fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p fd00 Linux RAID 

kyodake的答案是正确的,但它也是以MBR为中心的。 在GPT下,适用相同的原则 – 即,分区类型代码标识分区的预期用途。 区别在于GPT类型代码是128位GUID,而MBR下使用的是8位代码。 GUID的性质意味着没有必要向中央机构注册代码以避免冲突; 事实上,两个GUID在统计上不太可能完全相同。

AFAIK,没有GPT类型代码的官方存储库,但它们在维基百科页面上有关GPT的文档。 GPT类型代码的一个缺点是,作为GUID,它们很长而且很笨拙 – 例如,Linux文件系统数据为0FC63DAF-8483-4772-8E79-3D69D8477DE4,MBR等效数字为0x83。 因此,大多数用于分区GPT磁盘的工具在其用户界面中使用某种forms的“速记”或“自然语言翻译”。 我是GPT fdisk的作者,因为我写的目的是创建与(MBR) fdisk类似的东西,我采用了以MBR代码为基础的方法; 但是,因为GPT和MBR类型代码之间的对应关系不是1:1,所以我将MBR类型代码乘以0x100以获得GPT等价物。 因此,MBR的0x83变为8300.这也启用了MBR中不存在的相关后续代码,例如8301,8302等。这些代码对于已经熟悉MBR等价物的人来说很容易使用,但是对于不了解MBR代码的人来说,这无疑是随意的。 在内部,GPT fdisk将这些代码转换为GUID。 您可以通过查看详细的分区信息(例如,通过gdiski选项)查看实际的GUID。 如果您愿意,或者您需要使用GPT fdisk不支持的代码,您也可以输入任意GUID而不是使用GPT fdisk四字符代码。

其他工具使用其他方法。 libparted库(因此parted ,GParted和其他基于libparted的工具)将一些类型代码转换为“flags”并完全隐藏其他代码。 这有助于简化某些用户的操作,但它会使某些任务无法完成 – 例如,您无法使用基于libparted的任何内容设置任意类型的代码。 OS X的磁盘工具将已知的GUID转换为纯文本描述。 (IIRC,当您创建分区时,它会根据分区中创建的文件系统设置适当的类型代码,类似于GParted所做的。)

在大多数情况下,Linux不使用类型代码,用于MBR或GPT。 也就是说,您可以将标准Linux文件系统放在(GPT fdisk)8300分区上,或使用0700(过去常见的),或者分配您自己的随机GUID。 类似的注释适用于RAID,LVM,交换和其他分区类型。 但是,这条规则有一些例外。 例如,分发安装程序通常会查看并设置类型代码,因此您可能需要在分区上使用正确的类型代码才能正确使用它。 另一个例外是,如果未正确配置/etc/fstab ,systemd将开始使用类型代码作为回退。 (这就是大多数GPT fdisk的830x代码的来源 – 它们是可发现分区规范的一部分,这是一个Freedesktop / systemd计划。)目前,Ubuntu只使用主要的Linux文件系统类型代码(GPT fdisk中的8300)文件系统,以及适用于LVM,RAID,交换等的代码。“Linux不使用类型代码”规则的一个重要例外是BIOS引导分区代码(21686148-6449-6E6F-744E-656564454649; GPT中的ef02) bios_grub或libparted中的bios_grub标志)。 此类型代码标识GRUB使用的分区,当您运行grub-install ,GRUB将自己的一部分安装到该分区。 如果在带有GPT磁盘的BIOS引导系统上安装GRUB,则通常必须存在BIOS引导分区。 (但是有很多方法可以解决这个问题。)更重要的是,如果你错误地在错误的分区上设置了这个类型的代码, 那么在安装GRUB时该分区就会被破坏! 我见过很多人在各种在线论坛上犯了这个错误。

在处理其他操作系统时,类型代码变得更加重要。 例如,Windows和OS X倾向于不使用他们无法识别的类型代码来触摸分区。 它们的类型代码列表排除了常见的Linux特定类型代码,因此使用特定于Linux的类型代码有助于降低Windows或OS X将丢弃Ubuntu安装的风险。 但是,如果您使用GPT fdisk 8300或fd00代码,这些操作系统并不在意。 如果您使用这些其他操作系统识别的代码,则可能会出现问题。 例如,Linux文件系统类型GUID(0FC63DAF-8483-4772-8E79-3D69D8477DE4)曾一度不存在。 我创建它并将其推入我自己的GPT fdisk和libparted中,因为使用“Microsoft Basic Data”类型代码(EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)的常见做法导致双启动设置出现问题。 具体来说,某些Windows工具会认为Linux分区是一个损坏或未初始化的Windows分区,并提供准备它。 此提示符处的用户错误将是灾难性的。 有关此主题的更多信息,请参阅我的此页面 。

要在分区表中使用的已分配分区类型列表最初由IBM和Microsoft在内部维护。

当PC操作系统和磁盘工具的市场增长和解放时,其他供应商也需要为其产品分配特殊的分区类型。

20世纪90年代的几位行业专家开始研究分区类型并发布分区类型列表,以帮助记录行业事实上的标准,从而降低进一步冲突的风险。

操作系统的引导加载程序和/或内核如何解释该值。 因此,该表指定了最初引入ID的操作系统或磁盘相关产品以及它们将其映射到的文件系统或特殊分区类型。

分区ID:83h。 输入:文件系统。 来源:GNU / Linux。 描述:任何本机Linux文件系统。

分区ID:FDh。 来源:GNU / Linux。 支持:Linux。 描述:具有自动检测function的Linux RAID超级块。