我必须为嵌入式 Linux 项目定义分区布局。我有一个与 BeagleBoneBlack 非常相似的板。
项目需要5个分区,所以我必须使用扩展分区。
问题:使用哪种扩展分区类型?
最常用的两个是:
- 0fW95 扩展 (LBA) 和
- 05扩展
有什么不同?
0fgparted
在(ubuntu)中格式化时默认使用。 (这是Windows 95分区类型。)
05parted
由(ubuntu) 或fdisk
(linux board)格式化时默认使用。 (是dos分区类型。)
还有0x85(linux扩展),但是竟然fdisk
处理不了。
有人可以解释一下这种不同类型的扩展分区有什么区别和限制吗?对于嵌入式 Linux 板有哪些推荐?
答案1
考虑到您的用例,如果您的主板可以启动它,我建议使用 GPT 而不是 MBR。在 中fdisk
,该g
命令将创建一个新的 GPT 磁盘标签,您将能够创建所有分区,而不必担心扩展分区。
现在,为了解决您的实际问题,Linux 下没有实际差异。分区类型5是历史上基于柱面/磁头/扇区的扩展分区类型,理论上限制为8.4GB。 Windows 95 中引入了分区类型 F,以指示基于 LBA 的访问,且不限于 8.4GB。 DOS、Windows 95、98 等与早期版本的 Windows NT 之间存在各种兼容性问题,但现在基本上无关紧要。参见安德里斯·E·布劳威尔 (Andries E. Brouwer)分区类型列表详细信息(不幸的是,那里给出的大多数链接现在都已损坏;互联网档案馆有其中一些)。
Linux 仅使用基于扇区的分区信息,因此即使类型 5 扩展分区也不受限制。如果您使用 DOS 兼容模式,这可以产生“有趣”的布局fdisk
— 它会很乐意创建一个大于 8.4GB 的扩展分区,并且 CHS 信息将其限制为 8.4GB...
分区类型 85 也可用,但fdisk
有一个小问题。如果你创建一个扩展分区并将其类型更改为85,fdisk
将立即拒绝使用它,但如果你写入生成的分区表并重新启动fdisk
,它会很乐意在85类型的扩展分区内创建逻辑分区。