linux支持的最大分区是多少?


8

我是否可以知道Linux系统支持的最大分区大小。在Linux系统安装的磁盘中,我们可以创建多少逻辑分区和主分区?


2
这取决于分区表类型,gpt或mbr,是否使用LVM,然后取决于文件系统。您需要对问题中的这些细节更加具体,以便任何人都能给您有用的答案。
bsd 2012年

1
请注意,对于eMMC设备,Linux内核用于MMC_BLOCK_MINORS限制可用的标准设备的分区数量(默认值为8)。
杰罗姆Pouiller

Answers:


20

多少个分区

我相信其他更快,更好的人已经很好地回答了这个问题。:)

总会有一个极限

对于以下讨论,请始终记住限制是理论上的。实际限制通常小于理论限制,因为

  • 其他理论限制限制了事物。(这些天,PC确实非常非常复杂)
  • 总是有更多的错误。(不排除此答案)

违反限制时

违反这些限制时发生的事情也不简单。例如,在10GB磁盘的年代,您可能具有数GB的分区,但是某些计算机无法引导在第1,024个柱面之后存储的代码。这就是为什么如此多的Linux安装程序仍坚持在磁盘开头使用单独的小型/ boot分区的原因。一旦您设法启动,一切就好了。

分区大小:MS-DOS分区表(MBR)

MS-DOS以(开始,大小)格式存储分区,每个分区均为32位宽。在过去,用于编码汽缸盖扇区坐标的每个数字。现在,它仅包含一个任意的扇区号(磁盘管理从该扇区号到特定于介质的坐标的转换)。“ MS-DOS”分区类型的内核来源建议分区大小为32位宽,以扇区为单位。这给了我们2 ^ 32 * 512,或2 ^ 41字节,或2 ^ 21二进制兆字节,或2,097,152兆字节,或2,048千兆字节,或2 TB(减去一个扇区)。

GUID分区表(GPT)

如果您使用的是GUID分区表(GPT)磁盘标签,则分区表将存储为(开始,结束)对。两者均为8字节长(64位),这比您可能使用的更多:2 ^ 64 512字节扇区,2 ^ 73字节(8个二进制Zettabytes)或2 ^ 33 TB 。

如果要从UEFI ROM而不是传统的CP / M时代BIOS进行引导,则已经具有GPT。如果没有,您始终可以选择使用GPT作为磁盘标签。如果您有新磁盘,则确实应该。

行业规模

一个扇区已经有512个字节很长时间了。设置为更改为4,096字节。许多磁盘已经具有此功能,但是模拟512字节的扇区。当变化到前台并且分配单元变为4,096字节扇区,而LBA寻址4,096字节扇区时,以上所有大小将更改3个二进制数量级:将它们全部乘以8得到新的可怕值。

逻辑卷管理器

如果使用LVM,则LVM还必须支持您制作的任何卷,因为它位于分区和文件系统之间。根据LVM2常见问题解答,LVM2在64位体系结构的Linux 2.6上最多支持8EB(艾字节)。在32位架构上运行的Linux 2.6上为16TB(TB);在Linux 2.4上为1TB。

文件系统限制

当然,这些是每个分区(或LVM卷)的大小限制,这就是您要的内容。但是拥有分区的重点通常是存储文件系统,并且文件系统有其自身的局限性。实际上,文件系统的限制类型取决于文件系统本身!唯一的全局限制是文件系统的最大大小及其中每个文件的最大大小。

EXT4允许每个文件最多分区16TB,每个卷最多分区1EB(艾字节)。但是,它使用32位块号,因此您需要增加默认的4,096字节块大小。在您的内核和体系结构上可能无法实现,因此在PC上每卷16TB可能更现实。

ZFS允许16EB文件和16EB卷,但是毫无疑问,它也有其自己的其他不可预见的限制。

Wikipedia很好地列出了人类已知的大多数文件系统的这些限制

在实践中

如果您在64位计算机和GPT分区上使用Linux 2.6或更高版本,则似乎只需要担心文件系统的选择及其限制。即使那样,它也确实不应该让您那么担心。无论如何,您可能都不应该创建16TB的单个文件,并且在一段时间内1EB(1,048,576 TB)的超现实限制。如果您使用的是MBR,并且需要超过2个二进制太字节,则应切换到UEFI和GPT,因为您的分区分区上限为2TB(这在已经部署的计算机上可能不算什么)

请注意,我是一个老屁,在计算2的幂的倍数时,我使用二进制单位。磁盘制造商喜欢使用十进制单位作弊(并且已经说服了我们他们一直这样做,即使我们知道他们没有这样做)。因此,最大的“ 2TB”磁盘仍然小于2个二进制TB,您将不会遇到麻烦。除非您使用LVM或RAID-0。


实际上,带有MS-DOS标签的设备不能大于16 TB。
wazoox 2012年

是什么强加了那个?我知道它必须存在(或类似的限制),因为我刚刚部署了三台带有UEFI / GPT的服务器,因为它们配备了12×2TB磁盘,而Dell认为我们将在其中划分一个分区(!)。但是我无法终生看到磁盘块和内核之间的位置。是BIOS引导限制或其他限制吗?
Alexios'3

@ wazoox,MS-DOS分区表使用32位扇区号,因此对于512字节扇区而不是16 TB,在2 TB时达到最高。
psusi 2012年

1
@psusi,是的,没错。实际上,自2006年以来,我一直没有使用MS-DOS标签:) Alexios,在Linux下,您可以在任意大小的设备(磁盘或RAID阵列)上放置MS-DOS标签,但只有2 TB的地址可寻址(任何东西) 2 TB以上将无法使用)。没有人应该再使用MS-DOS标签,它们确实是过时的遗物。
wazoox 2012年

1
@wazoox,非UEFI系统上的Windows要求使用Windows,但是同样,Windows也是过时的遗物;)
psusi 2012年

8

有两个限制。Linux是对Linux的支持,另一个是所用分区表方案中的最大计数:这取决于您使用旧版MBR还是较新的GPT

MBR支持四个主分区。其中之一可以是扩展分区,它可以包含任意数量的逻辑分区,这些 逻辑分区仅受磁盘空间限制。

GPT最多支持128个“主”分区。

在过去,由于设备数量有限,Linux仅在IDE上最多支持63个分区,在SCSI磁盘上最多支持15个分区。今天,内核可以动态分配设备号(udev是关键字),因此该限制不再有效。


4

这与OS本身无关,但与使用中的分区方案有关。

gpart FreeBSD手册页的介绍很好。

基本上,您有:

  • 正如您所说的,“ MBR”方案是旧的“ DOS”方式,正如您所说的那样,“主要”分区(最多4个)和逻辑分区(据我所知,没有实际限制)。
  • “英特尔EFI / GPT”方案是一种新的工作方式,仅具有“主”分区,几乎没有限制。

因此,实际上,与标准Windows框没有任何实际差异。


0

根据Wikipedia的说法,内核最多支持16TB的文件系统,因此,该分区可以并且仍然可以充分使用,是最大的分区。当然,并非所有文件系统实际上都支持完整的16TB。


2
哼。32位Linux内核最多支持16 TB,但是大多数系统多年来一直是64位。我通常用77 TB分区甚至更大的文件系统来构建存储服务器。
wazoox 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.