我们可以在单个驱动器上创建多少个最大分区?我记得有一次我在同一个磁盘上创建了大约 16 个分区时出错。为什么要设置这个限制?无限分区有什么问题?
我知道由于历史原因可能有四个主分区,它们存储在前 512 个字节中。所以我们使用最后一个分区信息来指向另一个分区表。之后,我们创建了分区链表。我只是想知道为什么要限制?一定有一些好处。仅仅因为当时没有人创建超过 16 个分区,所以限制 16 个分区是没有意义的。设置限制应该有一些好处。或者一些理论上的原因,比如我们在分区上支持的最大文件大小。
我们可以在单个驱动器上创建多少个最大分区?我记得有一次我在同一个磁盘上创建了大约 16 个分区时出错。为什么要设置这个限制?无限分区有什么问题?
我知道由于历史原因可能有四个主分区,它们存储在前 512 个字节中。所以我们使用最后一个分区信息来指向另一个分区表。之后,我们创建了分区链表。我只是想知道为什么要限制?一定有一些好处。仅仅因为当时没有人创建超过 16 个分区,所以限制 16 个分区是没有意义的。设置限制应该有一些好处。或者一些理论上的原因,比如我们在分区上支持的最大文件大小。
四个主/扩展分区。如果您是扩展分区,则该扩展分区内可以有任意数量的逻辑磁盘。在标准格式磁盘上,分区表只有四个条目的空间。如果您将磁盘升级到 GPT,我认为限制会发生变化,但我不确定新限制是什么。
JR
对于主分区表磁盘,限制基于主引导记录(512 字节 IIRC)中分区表的大小,这是 IBM 在 80 年代发明的。此外,由于各种原因,某些操作系统有其自身的限制。该标准允许扩展分区中最多包含 24 个分区。为什么有限制?与许多限制一样,它似乎足够大,可以“足够好”。此外,在实践中,各种操作系统内核都在开发中,分区数很少达到那么高。
顺便说一句,这就是为什么许多操作系统实现自己的分区版本的原因。LVM 在 Linux 上解决了这个问题。GPT 是在没有老式分区表的情况下处理分区的 Windows 方式。NetWare 的 NSS 文件系统运行起来很像 LVM,因为它有一个“分区”,然后在媒体管理器中进行细分。
一个朋友正在 Linux 上尝试一些奇怪的基于范围的 MD+LVM,而 Linux 显然在任何磁盘上都有 63 个硬分区限制。我不确定这是每个扩展分区的文件系统,还是什么。我想认为在当今时代,这相对无关紧要。
我认为,这里真正的问题是为什么你首先要创建这么多分区。存储空间并不昂贵,SATA 现在是标准配置,而且 IMO 有许多更好的替代方法来将驱动器分区 33 多次。
尽管限制是由空间(指 512 字节)等限制决定的,但设置某些限制的情况并不少见,因为“如果你达到了这个限制,那么你就做错了”。
在“过去”中,为什么需要将 40 MB 硬盘驱动器(就像我一样)分成多个分区?也许少数用户有这种需求,但如果我们想要创建分区而不是目录,那么大多数像我这样的用户都会以“错误的方式”这样做。
如前所述,LVM 是绕过限制的一种方法。ZFS 是另一种,但是您不必考虑分区,而是将驱动器放入 zpool 并创建任意数量的“文件系统”。在一些演示中,我已经看到了数千个 ZFS 文件系统,因此即使您将驱动器分区为数千个段,您也可以获得分段的所有好处,而几乎没有任何缺点。
虽然扩展/逻辑分区方案理论上提供了无限数量的逻辑分区,但所有操作系统都设置了一些限制(据我所知)。
对于 DOS/windows,它最多不能支持超过 24 个分区,因为它用完了驱动器号(C: 到 Z:)(加上任何具有不受支持的文件系统的分区)。
对于 Linux,最大值受次设备号分配的限制。传统 IDE 磁盘支持 63 个分区,而 SCSI 磁盘限制为 15 个分区。
对于 OpenBSD、FreeBSD、MachOS 和其他我不知道,但我很确定它们有一些限制。
不,Windows 不仅限于驱动器号。您可以将分区挂载到任何 NTFS 文件夹。此后我不熟悉任何限制。