没有限制是多少?我可以拥有多少个分区?

没有限制是多少?我可以拥有多少个分区?

我想知道在运行 Linux 的 x86_64 PC 上我可以创建多少Primary个?Extended Partitions


更新
如果分区数量有限制,为什么要这样限制呢?

答案1

该限制是由于原始 BIOS 设计造成的。当时,人们并没有想到在单个磁盘上会安装四个以上不同的操作系统。操作系统实现者也对该标准存在误解,尤其是 Microsoft 和 Linux,它们错误地将文件系统与(主)分区映射,而不是像 BSD 和 Solaris 那样将自己的分区细分为片,而这正是最初的预期目标。

逻辑分区的最大数量不受标准限制,但可到达的逻辑分区数量取决于操作系统。 Windows 受到字母表中字母数量的限制,Linux 过去的 IDE 驱动程序有 63 个插槽(hda1 到 hda63),但现代版本标准化了 SD 驱动程序,默认支持 15 个插槽(sda1 到 sda15)。通过一些调整,可以克服这个限制,但可能会使工具感到困惑(请参阅 http://www.justlinux.com/forum/showthread.php?t=152404

无论如何,这将成为 EFI/GPT 的历史。最近的 Linux 支持 GPT,默认情况下可以有 128 个分区。要充分利用大磁盘(2TB 及以上),您无论如何都需要 GPT。

答案2

Sen,响应@jlliagre,应该指出的是,某些操作系统将创建单个分区,但本质上是在该空间内创建子分区。

它类似于但不等于:

 parted rm 1 /dev/sda
 ...
 parted rm 7 /dev/sda
 parted mkpart primary $start $end /dev/sda
 parted mkpart primary $start1 $end1 /dev/sda1

然后您可以使用 kpartx 访问这些子分区:

 kpartx -a /dev/sda1

子分区将显示为:

 /dev/sda1p1

当然,这并不是 FreeBSD 和类似系统进行切片的确切方式,但本质上是一样的。

答案3

分区完全取决于磁盘类型格式。如果我们在 Linux 中使用 MBR 磁盘类型,那么我们总共可以创建 4 个分区,例如:

  1. 所有四个分区都只是主分区。
  2. 三个分区是主分区,其余 1 个分区是扩展分区。

如果我们考虑以上 2 个步骤,那么在扩展分区下,我们可以创建几乎 65536 个新逻辑分区并使用它们,但是我们可以使用的逻辑分区有一些限制,这取决于操作系统。

我们可以在扩展分区下创建多少个分区?
答:假设您将MBR中的最后一个分区创建为扩展分区,并在其下创建一个1GB的分区作为逻辑分区。

它们的结构如下:

[root@localhost ~]# fdisk -l /dev/sdb 

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk label type: dos 
Disk identifier: 0x4bc89c19 

   Device Boot      Start         End      Blocks   Id  System  
/dev/sdb1            2048     2099199     1048576   83  Linux  
/dev/sdb2         2099200     2293759       97280   83  Linux  
/dev/sdb3         2293760     2488319       97280   83  Linux   
/dev/sdb4         2488320    41943039    19727360    5  Extended < br/>

[root@localhost ~]# fdisk  /dev/sdb 
Welcome to fdisk (util-linux 2.23.2). 

Changes will remain in memory only until you decide to write them. 

Be careful before using the write command. 

Command (m for help): n    
All primary partitions are in use    
Adding logical partition 5    
First sector (2490368-41943039, default 2490368):    
Using default value 2490368   
Last sector, +sectors or +size{K,M,G} (2490368-41943039, default 41943039): +1G   
Partition 5 of type Linux and of size 1 GiB is set  

Command (m for help): p   

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors  
Units = sectors of 1 * 512 = 512 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disk label type: dos  
Disk identifier: 0x4bc89c19  

Device Boot      Start         End      Blocks   Id  System  
/dev/sdb1            2048     2099199     1048576   83  Linux  
/dev/sdb2         2099200     2293759       97280   83  Linux  <
/dev/sdb3         2293760     2488319       97280   83  Linux  
/dev/sdb4         2488320    41943039    19727360    5  Extended  
/dev/sdb5         2490368     4587519     1048576   83  Linux  

现在,在上面创建了1GB的逻辑分区后,我们就可以计算出扩展分区下的逻辑分区总数了。我们知道MBR支持1个扇区空间=512字节

/dev/sdb5和起始扇区值之间的差异/dev/sdb4如下:2490368-2488320=2048。 2048是差值,是扩展分区中的保留空间,用于存储其下逻辑分区的信息。如果我们将 2048 乘以 512 字节,则扩展分区中支持逻辑分区的总字节数即 2048*512=1048576 字节

在MBR中,总共64个字节的大小用于存储分区表中的分区信息。这意味着分区表中存储了每个分区信息,每个分区大小为16字节。每个分区可以使用16字节的空间,因此MBR中总共提供了4个分区,包括扩展分区。如果我们看到最后一个分区大小是扩展分区,那么它们使用 16 字节的空间。

这意味着如果我们将 1048576 字节除以 16,我们将得到扩展分区下的逻辑分区总数,即 1048576/16=65536(最大逻辑分区)。

其下最多可以使用 65536 个逻辑分区。但该分区的使用取决于操作系统。在Linux中,MBR在扩展分区下最多使用60个逻辑分区。

因此,我们可以在 MBR 下创建的分区总数为 3(主)、1(扩展)、60(逻辑)= 64
但只有主分区和逻辑分区用于提供 Linux 数据,而不是扩展分区,因此这意味着只有 63 个分区对于将数据输入分区很有用。

我们怎么能说 MBR 下最多只能创建 60 个分区,而不是更多呢?

只要创建尽可能多的逻辑分区,当您创建第 60 个逻辑分区时,系统会显示此消息

Command (m for help): n
All primary partitions are in use
Adding logical partition 60
First sector (23013477-41943039, default 23031808): 
Using default value 23031808
Last sector, +sectors or +size{K,M,G} (23031808-24035327, default 24035327): +100

Partition 60 of type Linux and of size 50.5 KiB is set

Command (m for help): n
The maximum number of partitions has been created

答案4

4 个主分区或 3 个主分区和一个扩展分区。

扩展分区可以细分为多个逻辑分区。

相关内容