Linux分区
硬盘分区
硬盘分区有3种:主分区、扩展分区和逻辑分区。(本文基于MBR磁盘分区进行讲解,以下内容均为MBR类型的磁盘分区内容分享,文内不再赘述)
主分区:
作用:安装操作系统和软件等。
数目:一个硬盘上最多只能有4个主分区。(见问题1)
大小:最大2 T(见问题4)
问题:
1.为什么最多有4个主分区?
因为存储分区信息的MBR分区表仅有64 bytes,而每个分区的信息用16 bytes表示,因此硬盘最多只能有4个分区。
磁盘一个扇区只有512字节,被激活的主分区第一个扇区就是MBR(512 bytes),而其中第467-510的64个字节存放的是MBR分区表。最后的511和512 bytes: 55和AA被称为幻数(硬盘有效标志),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘。
如下图400 G硬盘中前512 bytes是MBR内容。
2.多个主分区,操作系统安装在哪个主分区?
在激活主分区,也就是活动分区的磁盘的第一个扇区。
怎么知道哪个分区为活动分区呢?我们需要查看分区表16 bytes中的第一个字节,如果数值为00 H,即为非活动分区,80 H为活动分区。
3.启动流程:
BIOS:启动主动运行的韧体,会认识第一个可启动的装置;
MBR:第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序; MBR这个仅有446 bytes的硬盘容量里面会放置最基本的启动管理程序
启动管理程序(boot loader):一支可读取核心文件来运行的软件;(EFI)
核心文件:开始操作系统的功能等
在我们安装Linux 系统分区时,会分配EFI分区,存放的就是boot loader。
4.为什么主分区最大2 T?
因为16 bytes的分区信息中只有四个字节存储分区的总扇区数,因此最多能表达的扇区总数为2^32*512 bytes = 2^41 bytes=2 T bytes
扩展AND逻辑分区
作用:使用额外的扇区来记录逻辑分区情况。 然后我们可以通过扩展分区表所指向的那个磁盘区块继续作分区的记录。
数目:最多一个,可以没有。
扩展分区不能直接使用,必须分成若干逻辑分区。所有的逻辑分区都是扩展分区的一部分,因此各个逻辑分区的容量之和为扩展分区的容量。(见下图 Partition 3扩展分区容量 =Partition 5 + Partition 6 + Partition 7三个逻辑分区容量之和 )
问题:
1.汇总一下硬盘容量的关系?
硬盘的容量=主分区的容量+扩展分区的容量;
扩展分区的容量=各个逻辑分区的容量之和。 (扩展分区包含若干个逻辑分区)
分区的数量=主分区的数量+逻辑分区数量(有逻辑分区则必有一个扩展分区)
2.能否给出 ubuntu逻辑分区的实例?
首先先解释硬盘分区的表示方法:([x]用来表示任意数字)
也许你常见的硬盘分区表示有 sda[x](如sda 1), hda[x], sdb[x], hdb[x], nvme[y]n[z]p[x]等等,那么这些表示都是什么含义呢?
- Linux 通过字母和数字的组合来标志硬盘分区,sd 、 hd、 nvme表示的是设备类型。如:hd表示IDE硬盘, sd表示 SCSI/SATA/USB硬盘,而nvme表示的就是nvme硬盘。
- sda 的 a 和 sdb 的 b分别表示 第一块SCSI硬盘,第二块SCSI硬盘, hda、hdb也是同样。那么nvme[x]n[y]的[y]表示的是第几块硬盘。
- 最后的数字[x]表示的是主分区或者扩展分区(1~4),逻辑分区从5开始。
- 举例:sdb2,是第二块SCSI硬盘上的第二个主分区或者扩展分区。
- [y]表示的是硬盘插槽。
思考:
1.如果安装Linux 最少需要哪两个分区?选择什么文件系统类型?
①根文件系统分区(/),类型为ext3等;
②交换分区,类型为swap。
该部分涉及索引节点,目录树内容,故在此不解释,仅作了解,于其他文章给出解答。
2.给磁盘分 6 个分区,请给出主分区、扩展分区、逻辑分区的组合分区的3个方案,并给出分区号(默认第二个SATA硬盘)。
3 主(sdb1,sdb2,sdb3)+1扩(sdb4)+3 个逻辑(sdb5,sdb6,sdb7)
2 主(sdb1,sdb2)+1扩(sdb3)+4 逻辑(sdb5,sdb6,sdb7,sdb8)
2 主(sdb1,sdb2)+1扩(sdb3)+4 逻辑(sdb5,sdb6,sdb7,sdb8)
1 主(sdb1)+1扩(sdb2)+5 逻辑(sdb5,sdb6,sdb7,sdb8,sdb9)