个人计算机常见的磁盘接口有两种, 分别是IDE不SATA接口,目前(2009)的主流已经是SATA接口了。
以IDE接口来说,由于一个IDE扁平电缆可以连接两个IDE装置,又通常主机都会提供两个IDE接口,因此最多可以接到四个IDE装置。 也就是说,如果你已经有一个光盘设备了,那么最多就只能再接三颗IDE接口的磁盘啰。 这两个IDE接口通常被称为IDE1(primary)及IDE2(secondary), 而每条扁平电缆上面癿IDE装置可以被区分为Master不Slave。这四个IDE装置癿文件名为:
以下的名称以及顺序都是固定的
IDE\Jumper | Master | Slave |
---|---|---|
IED1(primary) | /dev/hda | /dev/hdb |
IED2(Secondary) | /dev/hdc | /dev/hdd |
再以SATA接口来说,由于SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的, 因此这些接口的磁盘装置文件名都是/dev/sd[a-p]的格式。 但是与IDE接口不同的是,SATA/USB接口的磁盘根本就没有一定的顺序,那如何决定他的装置文件名呢? 这个时候就得要根据Linux核心侦测到磁盘的顺序了!这里以底下的例子来让你了解:
例题:
如果你的PC上面有两个SATA磁盘以及一个USB磁盘,而主板上面有六个SATA的插槽。这两个SATA磁盘分别安插在主板上的SATA1, SATA5插槽上, 请问这三个磁盘在
Linux中的装置文件名为何?
答:由与是使用侦测到的顺序来决定装置文件名,并非与实际插槽代号有关,因此装置癿文件名如下:
- SATA1插槽上的檔名:/dev/sda
- SATA5插槽上的檔名:/dev/sdb
- USB磁盘(开机完成后才被系统捉到):/dev/sdc
磁盘
一颗磁盘的数据主要存在其盘面上,磁盘面由磁柱构成,磁柱又可以分为很多的扇区。一颗磁盘最重要的扇区就是第一个扇区,这里记录着正科磁盘最重要的信息,主要有两个重要的信息:
- 主要启动记录区MBR(Master Boot Record):可以安装开机管理程序的地方,有466 Bytes
- 分割表(partition table): 记录整颗磁盘分割信息,有64bytes
由于分割表只有64bytes,所以只能存储四笔的分割信息,也就是说,磁盘的主要分割区只有四个。如果想要分割跟多的区的话,就只能通过extend延伸分割的方式来处理了。延伸分割的目的是使用额外的扇区来记录分割信息,延伸分割本身并不能被拿来格式化。 然后我们可以透过延伸分割所指向的那个区块继续作分割的记录。如下图所示:
上述的分割槽在Linux系统中的装置文件名分别如下:
- P1:/dev/hda1
- P2:/dev/hda2
- L1:/dev/hda5
- L2:/dev/hda6
- L3:/dev/hda7
- L4:/dev/hda8
- L5:/dev/hda9
要注意的是:如果延伸分割被破坏,所有逻辑分割将会被删除。因为逻辑分割的信息都记录在延伸分割里面。
磁盘需要分割的原因主要有两个:
- 数据的安全性:由于各个分割区之间是互相独立的,一个区数据坏了并不影响其他数据区的数据
- 系统性能的考虑:由于数据只能存在一个分割区上,因此当需要读取数据的时候,磁头只会搜索该区所在的磁柱的范围,是的磁臂的摆动幅度不会太大,从而加快了数据的读取。
开机流程与主要启动记录区(MBR)
计算机主板上面有两个东西,一个是CMOS,主要记录各项硬件参数且嵌入到主板上面的存储器,另外一个就是BIOS,写入到主板上面的一个韧体(也就是一个软件程序)。开机时,计算机会先运行BIOS,该程序会根据用户的设定来取得能够开机的硬盘,并且读取该硬盘的第一个扇区中的MBR区域,该位置存放的是最基本的开机管理程序(boot loader),此时BIOS运行结束,记下来就是开机管理程序的事情了。
开机管理程序的任务就是加载核心档案,由于开机管理程序是操作系统在安装的时候所提供的,所以他可以识别硬盘内的文件系统格式,从而加载核心档案,然后接下来就是核心档案的工作了,开机管理程序到此结束。接下来就是操作系统的任务了!
简答来说,这个开机的流程为:
- BIOS:开机主动执行的韧体,会识别可一个可开机的装置;
- MBR:第一个可开机装置的第一个扇区内的主要启动记录区,含有开机管理程序
- 开机管理程序(boot loader):一支可读取核心档案来执行的软件程序
- 核心档案:开始操作系统的功能。
至于多重引导开机的情况,可以参考下图:
在上图中我们可以发现,MBR的开机管理程序提供两个选单,选单一(M1)可以直接加载Windows癿核心档案来开机;选单事(M2)则是将开机管理工作交给第二个分割槽的启动扇区(boot sector)。当使用者在开机的时候选择选单二时,那么整个开机管理工作就会交给第二分割槽的开机管理程序了。当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机选单,因此就能够使用Linu的核心档案来开机啰。 这就是多重引导的工作情况啦!我们将上图作个总结:
- 每个分割槽都拥有自己的启动扇区(boot sector)
- 图中的系统槽为第一及第二分割槽,
- 实际可开机的核心档案是放置到各分割槽内的!
- loader只会识识自己的系统槽内的可开机核心档案,以及其他loader而已;
- loader可直接指向或者是间接将管理权转交给另一个管理程序。