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

Mug*_*hil 9 linux kernel files

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

Ale*_*ios 21

多少个分区

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

总有一个限制

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

  • 其他理论限制约束事物。(如今的 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 兆兆字节(减去一个扇区)。

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 FAQ,LVM2 在 64 位架构的 Linux 2.6 上支持高达 8EB(艾字节);在 32 位架构上运行的 Linux 2.6 上为 16TB(太字节);和 Linux 2.4 上的 2TB。

文件系统限制

当然,这些是每个分区(或 LVM 卷)的大小限制,这就是您要问的。但是拥有分区的目的通常是存储文件系统,而文件系统有其自身的限制。事实上,文件系统有哪些类型的限制取决于文件系统本身!唯一的全局限制是文件系统的最大大小和其中每个文件的最大大小。

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

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

对于 man 已知的大多数文件系统,维基百科有一个非常好的表,列出了这些限制

在实践中

如果您在 64 位机器和 GPT 分区上使用 Linux 2.6 或更高版本,看起来您应该只担心文件系统的选择及其限制。即便如此,你也不用太担心。无论如何,您可能不应该创建 16TB 的单个文件,而且1 艾字节(1,048,576 TB) 在一段时间内将是一个超现实的限制。如果您使用的是 MBR,并且需要超过 2 TB 的二进制数据,您应该切换到 UEFI 和 GPT,因为您在每个分区 2TB 的限制下运行(这在已部署的计算机上可能不是微不足道的)

请注意,我是个老屁,我在计算 2 的幂的倍数时使用二进制单位。磁盘制造商喜欢通过使用十进制单位来作弊(并说服我们他们总是这样做,即使我们知道他们没有这样做)。因此,最大的“2TB”磁盘仍然小于 2 个二进制 TB,您不会遇到麻烦。

除非您使用逻辑卷管理器或 RAID-0。


jof*_*fel 8

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

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

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

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