首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDisk十六进制码

GDisk十六进制码
EN

Ask Ubuntu用户
提问于 2015-11-28 08:16:55
回答 2查看 34.9K关注 0票数 15

在使用gdisk时,有一个选项可以指定十六进制代码。我想知道它是什么,为什么需要它,见下文。因此,例如,如果我在我的驱动器上创建一个软件RAID,我假设我需要代码fd00。但是为什么呢?它是什么,我要用它吗?为什么我不能使用8300创建raid数组(不管这意味着什么)?

代码语言:javascript
复制
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            
EN

回答 2

Ask Ubuntu用户

发布于 2016-01-05 14:34:26

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

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

其他工具使用其他方法。Lib期库(因此,parted、GParted和其他基于lib期的工具)将某些类型代码转换为“标志”,并完全隐藏其他代码。这有助于简化一些用户的事情,但它使某些任务变得不可能--例如,您不能根据lib期设置任意类型的代码。OS的磁盘实用程序将已知的GUID转换为纯文本描述。(IIRC,在创建分区时,它根据分区中创建的文件系统设置适当的类型代码,类似于GParted。)

在大多数情况下,Linux不使用类型代码,无论是MBR还是GPT。也就是说,您可以将您的标准Linux文件系统放在一个(GPT ) 8300分区上,或者使用0700 (与过去一样常见),或者指定您自己的随机GUID。类似的注释适用于RAID、LVM、swap和其他分区类型。不过,这条规则也有一些例外。首先,发行版安装程序经常查看和设置类型代码,因此在正确使用分区之前,您可能需要正确的分区类型代码。另一个例外是,如果没有正确配置/etc/fstab,systemd将开始使用类型代码作为后盾。(这是GPT的830x代码的发源地--它们是可发现分区规范,的一部分,这是一个Freedesktop/systemd项目。)目前,Ubuntu只对文件系统使用主要的Linux文件系统类型代码( GPT中的8300),加上适用于LVM、RAID、交换等的适当代码。"Linux不使用类型代码“规则的一个大例外是BIOS分区代码(21686148-6449-6E6F-744E-656564454649;GPT中的ef02或libparted中的bios_grub标志)。此类型代码标识GRUB使用的分区,当您运行grub-install时,GRUB将将其自身的一部分安装到该分区。如果在带有GPT磁盘的BIOS引导系统上安装GRUB,通常必须存在BIOS启动分区。(不过,有一些绕过这条规则的方法。)更重要的是,如果错误地将此类型代码设置在错误的分区上,则在安装GRUB时,该分区将被破坏!我在各种网上论坛上见过不少人犯了这个错误。

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

票数 25
EN

Ask Ubuntu用户

发布于 2015-11-28 13:55:33

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

随着PC操作系统和磁盘工具市场的发展和解放,其他厂商也需要为他们的产品分配特殊的分区类型。

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

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

分区ID: 83h。类型:文件系统。产地: GNU/Linux。描述:任何本地Linux文件系统。

分区ID: FDh。产地: GNU/Linux。支持: Linux。描述: Linux超级块具有自动检测功能.

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/703443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档