现在的Linux都带了图形界面的分区工具,所以老的fdisk命令使用就不在这再写了。
一、系统引导过程简介
系统引导过程主要由以下几个步骤组成(以硬盘启动为例)
1、开机;
2、BIOS加电自检(POST---Power On Self Test),内存地址为0fff:0000;
3、将硬盘第一个扇区(0头0道1扇区,也就是Boot Sector)读入内存地址0000:7c00处;
4、检查(WORD)0000:7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示 ”No ROM BASIC” ,然后死机;
5、跳转到0000:7c00处执行MBR中的程序;
6、MBR先将自己复制到0000:0600处,然后继续执行;
7、在主分区表中搜索标志为活动的分区.如果发现没有活动分区或者不止一个活动分区,则停止;
8、将活动分区的第一个扇区读入内存地址0000:7c00处;
9、检查(WORD)0000:7dfe是否等于0xaa55,若不等于则显示 “Missing Operating System”,然后停止,或尝试软盘启动;
10、跳转到0000:7c00处继续执行特定系统的启动程序;
11、启动系统.
以上步骤中(2),(3),(4),(5)步由BIOS的引导程序完成;(6),(7),(8),(9),(10)步由MBR中的引导程序完成.
一般多系统引导程序(如Smart Boot Manager, BootStar, PQBoot等)都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序之前让用户选择想要启动的分区.而某些系统自带的多系统引导程序(如LILO,NT Loader等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux中即为两个扇区的SuperBlock.
注:以上步骤中使用的是标准的MBR,多系统引导程序的引导过程与此不同.
二、硬盘结构及参数
3D参数(Disk Geometry):
CHS(Cylinder/Head/Sector) C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);
H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);
S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储).
1、引导扇区
Boot Sector组成
Boot Sector也就是硬盘的第一个扇区,它由MBR(Master Boot Record), DPT(Disk Partition Table)和Boot Record ID三部分组成.
MBR又称为主引导记录,占用Boot Sector的前446个字节(0~0x1BD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序).
DPT即主分区表占用64个字节(0x1BE~0x1FD),记录磁盘的基本分区信息.主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信 息(因此最多可以有四个主分区).
Boot Record ID即引导区标记占用两个字节(0x1FE~0x1FF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志).
Boot Secor具体结构如图:
由于主分区表只有四个分区信息块,所以不管是Windows还是Linux,
一块硬盘上的主分区数目最多4个,如果要支持5个和以上的分区怎么办?
这种情况下引入1个扩展分区,使用这个扩展分区占用1个主分区表的项目,
这样最多是3个主分区加1个扩展分区。
这个扩展分区只是一个管理结构,它管理后面实际的众多逻辑分区。
一个磁盘的扩展分区只能有一个,并且只能是连续的磁盘空间。
它只是用于逻辑分区管理,扩展分区本身不能被系统加载。
能够加载的只有主分区和逻辑分区,文件和目录等也只能存储在主分区和逻辑分区内。
一个磁盘上所有的逻辑分区构成一个扩展分区。
Windows默认分区结构:
相应的Linux分区编号为:
以扩展分区方式管理多个逻辑分区,这在Windows和Linux下都一样。
Windows XP默认将C盘作为主分区,其他全部空间作为扩展分区,
在扩展分区里面建立各个逻辑分区,就是D:,E:,。。。。
这种方式比较无恼,也推荐这种方式来管理磁盘分区。
2、分区类型和分区规定
硬盘分区一共有三种:主分区,扩展分区和逻辑分区。
在一块硬盘上最多只能有四个主分区。您可以另外建立一个扩展分区来代替四个主分区的其中一个,然后在扩展分区下您可以建立更多的逻辑分区。
扩展分区只不过是逻辑分区的“容器”。实际上只有主分区和逻辑分区进行数据存储。
(1)Dos/Windows下的分区名称
在windows下操作系统使用的分区将用盘符来表示。A:和B:为软驱保留,其他应盘上的主分区和逻辑分区将从C:开始依次排列。(扩展分区没有任何盘符,而且是看不到的。在Windows下同样也看不到Linux分区)
如 果一台机器有很多的硬盘,光驱,软驱等,磁盘分区的命名将产生混乱。在这种情况下,第一块硬盘上的主分区和逻辑分区将首先得到命名盘符;然后是第二块,第 三块等等。比如您有三块硬盘,每一快硬盘上同时又有一个主分区和两个逻辑分区,那么第一块硬盘的命名将是C:,F:,G:,第二块为D:,H:,I:,第 三块为E:,J:,K:。
陌生文件系统的分区将不会被命名,在大多数程序里面(比如资源管理器)是看不到的。
右击我的电脑---->管理--->磁盘管理,可以看到陌生分区,但是Windows不能读取Linux分区。可以用 Ext2Read 软件来读取 ext2/ext3/ext4分区内容。
Ext2Read 2.2.71 绿色版: