无论是安装Linux,还是安装Window,最后都是安装在硬盘上。安装这两个系统的时候都涉及到分区的概念;再联想到分区在各个系统中的表现,就比较容易让人糊涂。总的来说,分区是硬盘的行为。只不过Linux对此有一套解释,Window也有一套自己的说法而已。所以先要了解最底层硬盘对分区的看法,才能识别理解分区在各自系统中的表现形式。
硬盘就是一整块磁盘空间。最开始的时候,硬盘小着,整个单独用都嫌空间太少;考虑到向后的前瞻远瞩,就设计成最多可分为四个区。也就是说可以分为一个区、两个区、三个区和四个区。这时的这几个区是并列的,其中只有一个区是当前活动区。当前活动区就是用来引导启动!这时,当前活动区为操作系统区,其余的可能是数据区。
后来随着硬盘空间越来越大,划分为四个好象不够用,太浪费。但是又不能突破这四个总数的限制,该如何是好呢?本着“修改不行、扩展可以”的原则,就将其中一个区叫做扩展区,可以在扩展区上继续细分很多扩展分区。只能有一个区是扩展区;此时非扩展区的区叫做主区;主区+扩展区个数不能超过4。而扩展子分区的个数则随便。
所以,总的来说,磁盘分区的结构如下:
一级分区 |
二级分区 |
Window |
Linux |
主区1 |
|
C |
hda1 |
[主区2] |
|
|
|
[主区3] |
|
|
|
扩展分区 |
|
逻辑分区 |
hda2 |
|
扩展子分区1 |
D |
hda5 |
|
扩展子分区2 |
E |
hda6 |
|
[扩展子分区3] |
F |
hda7 |
|
[扩展子分区4] |
G |
hda8 |
|
…… |
|
|
可以看出,对OS而言,无论是Window还是linux,是不怎么理会硬盘对主分区和扩展子分区的概念的。它们将这些分区(主分区和扩展子分区)统一当作平等的逻辑分区来看待。
Window最彻底,将每个分区当作逻辑盘,通过C/D/E/F/G/H……来命名并指引。光从盘符来看,完全看不出哪个是主分区,哪个是扩展子分区。
Linux则通过hda?来指引。只不过是?>4的可以暗示其是扩展子分区,位于扩展分区中。而且,上图所示扩展分区hda2可以用作统计信息,不能用作存储载体;而只能用其内部具体的扩展子分区来。
如果存在多个主分区,当前活动主分区和隐藏主分区有什么作用和表现?
在Window下,缺省时只有当前激活主分区为C盘,第一个扩展子分区始终为D盘,最后的隐藏主分区则为最后盘符。尽管Window下盘符是可以改的,但是C盘的盘符却不能修改。
在linux下,严格按照hda?编号顺序来,怎么也逃脱不了其变化。
电脑是如何启动?又怎么装载某个操作系统的呢?
那么操作系统是怎么处理主分区和子分区的呢?是否操作系统只能安装在主分区中?
对于多操作系统而言,可将操作系统装在多主分区或多扩展子分区中。总的来说,启动顺序是BIOS->激活主分区->引导程序选择可选的操作系统。
如何判断哪个是主分区?
硬盘的第一个扇区512字节具备工业标准,约定了分区的情况:
标记 |
英文名称 |
中文名称 |
大小 |
作用 |
MBR |
Master Boot Record |
主引导记录 |
446 |
|
DPT |
Disk Partition Table |
主分区表 |
64 |
每个主分区占据16byte,四个主分区共64个,包括起始位置,大小等,可以知道: 是否存在、是否是激活主分区、是否是扩展分区 |
BRI |
Boot Record ID |
启动标志 |
2 |
标记硬盘是否已经分区? |
其中扫描内部的DPT可以知道哪个是主分区。加载该主分区的第一扇区即可装载引导程序。可能存在多种引导程序,例如lilo/grub/windows。
实际的引导程序是如何注入的呢?
一般是安装操作系统时会自带安装当前的引导程序。例如安装redhat12时。
引导程序如何知道哪里安装有操作系统呢?
不同的引导程序对操作系统的识别要求可能不一样。例如windows的各操作系统就要求在主分区的boot.ini中注册操作系统信息。
引导程序加载具体选择的操作系统,交给操作系统继续初始化和引导。
如果多系统装在多个主分区上,每个主分区装一个操作系统,这样启动时是不会提示选择哪个系统,而是直接启动该主分区中的操作系统。而另一个主分区只是当作普通数据分区而已。如果要切换操作系统,需要把隐藏的主分区置为激活的。怎么操作呢?听说使用“分区魔术师PartitionMagic”可以。
分区和文件系统
对于Window而言,虽然可以装在扩展子分区中,但是需要在激活主分区中添加相关引导程序。所以主分区必须是window分区。所谓Window分区,指的是windows能识别的文件系统类型:fat32/ntfs。
对于linux而言,无所谓主分区和扩展子分区。但是要求必须存在 / 分区 和 Swap分区。这里的分区应该是指一个实际的硬盘分区,只不过同时要求分区的文件类型为“ext3”和“swap”.
对Window而言,文件系统是采用 逻辑盘:/文件系统路径 ntfs/vfat
对于linux而言,则采用的是 文件系统/mnt/逻辑盘挂载点来表示。文件系统最大。
评论