鸟哥的linux私房菜笔记 4 (chapter 2-3)主机规划与磁盘分区
1)各个硬件装置在linux中的文件名
在linux系统中,每一个装置都被当成一个文件来对待,例如,IDE接口的硬盘的文件名即为/dev/hd[a-d],其中,括号内的字幕为a-d中的任意一个,亦即有/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd这四个文件。其他主要的设备与其在linux中的文件名如图:
2)磁盘分区
以IDE接口来说,由于一个IDE扁平电缆可以连接两个IDE装置,有通常主机都会提供两个IDE接口,因此最多可以接到四个IDE装置,也就是说,如果你已经有一个IDE接口的光驱了,那么最多只能再接三个IDE的磁盘,这俩IDE接口通常被称作IDE1(Primary)及IDE2(Secondary),而每条扁平电缆上面的IDE 装置可以北区分为Master 与Slave。这四个IDE装置文件名为:
3)磁盘的结构
每一块磁盘的第一个扇区(主引导区)特别重要,因为记录了两个重要信息,分别是
# 1 主引导记录(Master Boot Record,MBR),可以安装开机管理程序的地方,有446Bytes
# 2 分区表(partition table),记录整个硬盘的分割状态,有64Bytes
MBR非常重要,因为当系统开机的时候会自动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且应该如何开机,如果要安装多重引到的系统,MBR这个区块的管理就灰常灰常的重要。
那么分区表有时干嘛的呢?其实刚到手的硬盘就想一根原木,你必须要在这个原木上面切割出你想要的区段,这个区段才可以在制作成为你想要的家具。如图,在分割表所在的64Bytes容量中,总共分为四组记录去,魅族记录去记录了该区段的起始与结束的礠柱编号,若把磁盘以长条形状来看,那么64bytes的记录区段类似于下图
假设上面的硬盘装置文件为/dev/hda,那么这四个分区槽linux系统装置文件名如下
# P1:/dev/hda1
# P2:/dev/hda2
# P3:/dev/hda3
# P4:/dev/hda4
由于分区表只有64bytes而已,最多只能容纳四个分区记录,这四个分区记录被称为主要(Primary)或延生(Extend)分区槽,也就是说
# 其实所谓的“分区“只是针对那个 64 bytes 癿分割表进行设定而已!
# 硬盘默认的分割表仅能写入四组分割信息
# 这四组分区信息我们称为主要(Primary)或延伸(Extended)分区槽
# 分区槽的最小单位为磁柱(cylinder)
# 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据处理
如此一来带来几点好的东东:
# 1 数据安全
每一个分区的数据是分开的,互补影响
# 2 系统的效率更高
由于分区将数据集中于某个礠柱的区段,如此一来要读取该分区的数据时,只需要按分区编号指示区间搜索就行。
虽然分区表只能记录四组数据空间,但是我们可以将一个硬盘分割成很多的分区,在Windows/Linux系统中,我们通过刚才的Extend分区方式来处理的,基本原理是:既然第一个扇区所在的主引导区所在的分割表只能记录四笔数据,那么我们可否利用额外的扇区来记录更多的分割信息?如下图
上图四个分区表的四个记录去只用到俩,P1为Primary,P2为Extend分割。注:延伸分割的目的是使用额外的扇区来记录分割信息,延伸分割本身并不能被拿来格式化,然后我们可以通过延伸分割所指向的那个区块继续做分割的记录。
上图右下方有继续分割出的五个分区槽,这五个由extend分割出来的分区叫做逻辑分区(logical partition),由于逻辑分区是由延伸分区继续分割出来的,一个萝卜一个坑儿,因此它们可以使用的礠柱范围就是延伸分割所设定的范围,他们各自在linux文件系统中的文件名分别如下
# P1:/dev/hda1
# P2:/dev/hda2
# L1:/dev/hda5
# L2:/dev/hda6
# L3:/dev/hda7
# L4:/dev/hda8
# L5:/dev/hda9
简单来说:
# 主要分割不延伸分割最多可以有四笔(硬盘的限制)
# 延伸分割最多只能有一个(操作系统的限制)
# 逻辑辑分割是由延伸分割持续切割出来的分割槽;
# 能够被格式化后,作为数据存取的分割槽为主要分区与逻辑分区。延伸分割无法格式化;
# 逻辑分区的数量依操作系统而不同,在 Linux 系统中,IDE 硬盘最多有 59 个逻辑分区(5 号到
63 号), SATA 硬盘则有 11 个逻辑分区(5 号到 15 号)。
4)开机流程与主引导记录(MBR)
CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(写入到硬件上面的软件程序),而这个BIOS就是在开机时,计算机系统会主动之行的第一个程序了。
接下来BIOS会去分析计算机里面有哪些存储设备,BIOS会依据使用者的设定去取得能够开机的硬盘,并且到该硬盘读取第一个扇区的MBR。MBR里面446Bytes的容量会放置最基本的开机管理程序,此时BIOS完成热舞,而接下来就是MBR内的开机管理程序的工作了。
这个开机管理程序的目的是加载load核心文件,由于该程序是操作系统在安装时所提供的,所以他会认识硬盘内的文件格式,因此就能够读取核心文件,然后接下来就是核心文件开始工作,之后就是OS的任务了。
简单来说
1. BIOS:开机主动执行的韧体,会认识第一个可开机的装置;
2. MBR:第一个可开机装置的第一个扇区内的主引导记录,内含开机管理程序;
3. 开机管理程序(boot loader):一支可读取核心文件来执行的软件;
4. 核心档案:开始操作系统的功能...
BIOS与MBR 都是硬件本身会支持的功能,至于Boot loader测试操作系统装在MBR 上面的一套软件了,它主要实现:
# 提供选择菜单:用户可以选择不同的开机项目,这也是多重引到的重要功能
# 载入核心文件:直接指向可开机的程序区段来开始操作系统
# 转交其他loader:将开机管理功能转交给其他loader负责
上面的第三点说的是,我们的硬盘不是只有一个loader,除了可以把它安装在MBR之外,还可以安装在每个分区的启动扇区(boot sector),如图
# 每个分区都拥有自己的启动扇区(boot sector)
# 图中的系统槽为第一及第二分区,
# 实际可开机的核心档案是放置到各分区内的!
# loader 只会认识自己的系统槽内的可开机核心档案,以及其他 loader 而已;
# loader 可直接指向或者是间接将管理权转交给另一个管理程序。
如果多重引导,最好先windows 在linux:
# Linux 在安装的时候,你可以选择将开机管理程序安装在 MBR 或各别分区的启动扇区内, 而且
Linux的 loader 可以启动设定选单(就是上图癿 M1, M2...),所以你可以在 Linux 的 boot
loader 里面加入 Windows 开机的选项;
# Windows 在安装时候,安装程序会主动覆盖掉 MBR 以及自己所在分区的启动扇区,你没有选择的机会, 而且他没有让我们自己选择选菜单的功能。
在linux系统中,每一个装置都被当成一个文件来对待,例如,IDE接口的硬盘的文件名即为/dev/hd[a-d],其中,括号内的字幕为a-d中的任意一个,亦即有/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd这四个文件。其他主要的设备与其在linux中的文件名如图:
![]() |
2)磁盘分区
以IDE接口来说,由于一个IDE扁平电缆可以连接两个IDE装置,有通常主机都会提供两个IDE接口,因此最多可以接到四个IDE装置,也就是说,如果你已经有一个IDE接口的光驱了,那么最多只能再接三个IDE的磁盘,这俩IDE接口通常被称作IDE1(Primary)及IDE2(Secondary),而每条扁平电缆上面的IDE 装置可以北区分为Master 与Slave。这四个IDE装置文件名为:
![]() |
3)磁盘的结构
![]() |
每一块磁盘的第一个扇区(主引导区)特别重要,因为记录了两个重要信息,分别是
# 1 主引导记录(Master Boot Record,MBR),可以安装开机管理程序的地方,有446Bytes
# 2 分区表(partition table),记录整个硬盘的分割状态,有64Bytes
MBR非常重要,因为当系统开机的时候会自动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且应该如何开机,如果要安装多重引到的系统,MBR这个区块的管理就灰常灰常的重要。
那么分区表有时干嘛的呢?其实刚到手的硬盘就想一根原木,你必须要在这个原木上面切割出你想要的区段,这个区段才可以在制作成为你想要的家具。如图,在分割表所在的64Bytes容量中,总共分为四组记录去,魅族记录去记录了该区段的起始与结束的礠柱编号,若把磁盘以长条形状来看,那么64bytes的记录区段类似于下图
![]() |
假设上面的硬盘装置文件为/dev/hda,那么这四个分区槽linux系统装置文件名如下
# P1:/dev/hda1
# P2:/dev/hda2
# P3:/dev/hda3
# P4:/dev/hda4
由于分区表只有64bytes而已,最多只能容纳四个分区记录,这四个分区记录被称为主要(Primary)或延生(Extend)分区槽,也就是说
# 其实所谓的“分区“只是针对那个 64 bytes 癿分割表进行设定而已!
# 硬盘默认的分割表仅能写入四组分割信息
# 这四组分区信息我们称为主要(Primary)或延伸(Extended)分区槽
# 分区槽的最小单位为磁柱(cylinder)
# 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据处理
如此一来带来几点好的东东:
# 1 数据安全
每一个分区的数据是分开的,互补影响
# 2 系统的效率更高
由于分区将数据集中于某个礠柱的区段,如此一来要读取该分区的数据时,只需要按分区编号指示区间搜索就行。
虽然分区表只能记录四组数据空间,但是我们可以将一个硬盘分割成很多的分区,在Windows/Linux系统中,我们通过刚才的Extend分区方式来处理的,基本原理是:既然第一个扇区所在的主引导区所在的分割表只能记录四笔数据,那么我们可否利用额外的扇区来记录更多的分割信息?如下图
![]() |
上图四个分区表的四个记录去只用到俩,P1为Primary,P2为Extend分割。注:延伸分割的目的是使用额外的扇区来记录分割信息,延伸分割本身并不能被拿来格式化,然后我们可以通过延伸分割所指向的那个区块继续做分割的记录。
上图右下方有继续分割出的五个分区槽,这五个由extend分割出来的分区叫做逻辑分区(logical partition),由于逻辑分区是由延伸分区继续分割出来的,一个萝卜一个坑儿,因此它们可以使用的礠柱范围就是延伸分割所设定的范围,他们各自在linux文件系统中的文件名分别如下
# P1:/dev/hda1
# P2:/dev/hda2
# L1:/dev/hda5
# L2:/dev/hda6
# L3:/dev/hda7
# L4:/dev/hda8
# L5:/dev/hda9
简单来说:
# 主要分割不延伸分割最多可以有四笔(硬盘的限制)
# 延伸分割最多只能有一个(操作系统的限制)
# 逻辑辑分割是由延伸分割持续切割出来的分割槽;
# 能够被格式化后,作为数据存取的分割槽为主要分区与逻辑分区。延伸分割无法格式化;
# 逻辑分区的数量依操作系统而不同,在 Linux 系统中,IDE 硬盘最多有 59 个逻辑分区(5 号到
63 号), SATA 硬盘则有 11 个逻辑分区(5 号到 15 号)。
4)开机流程与主引导记录(MBR)
CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(写入到硬件上面的软件程序),而这个BIOS就是在开机时,计算机系统会主动之行的第一个程序了。
接下来BIOS会去分析计算机里面有哪些存储设备,BIOS会依据使用者的设定去取得能够开机的硬盘,并且到该硬盘读取第一个扇区的MBR。MBR里面446Bytes的容量会放置最基本的开机管理程序,此时BIOS完成热舞,而接下来就是MBR内的开机管理程序的工作了。
这个开机管理程序的目的是加载load核心文件,由于该程序是操作系统在安装时所提供的,所以他会认识硬盘内的文件格式,因此就能够读取核心文件,然后接下来就是核心文件开始工作,之后就是OS的任务了。
简单来说
1. BIOS:开机主动执行的韧体,会认识第一个可开机的装置;
2. MBR:第一个可开机装置的第一个扇区内的主引导记录,内含开机管理程序;
3. 开机管理程序(boot loader):一支可读取核心文件来执行的软件;
4. 核心档案:开始操作系统的功能...
BIOS与MBR 都是硬件本身会支持的功能,至于Boot loader测试操作系统装在MBR 上面的一套软件了,它主要实现:
# 提供选择菜单:用户可以选择不同的开机项目,这也是多重引到的重要功能
# 载入核心文件:直接指向可开机的程序区段来开始操作系统
# 转交其他loader:将开机管理功能转交给其他loader负责
上面的第三点说的是,我们的硬盘不是只有一个loader,除了可以把它安装在MBR之外,还可以安装在每个分区的启动扇区(boot sector),如图
![]() |
# 每个分区都拥有自己的启动扇区(boot sector)
# 图中的系统槽为第一及第二分区,
# 实际可开机的核心档案是放置到各分区内的!
# loader 只会认识自己的系统槽内的可开机核心档案,以及其他 loader 而已;
# loader 可直接指向或者是间接将管理权转交给另一个管理程序。
如果多重引导,最好先windows 在linux:
# Linux 在安装的时候,你可以选择将开机管理程序安装在 MBR 或各别分区的启动扇区内, 而且
Linux的 loader 可以启动设定选单(就是上图癿 M1, M2...),所以你可以在 Linux 的 boot
loader 里面加入 Windows 开机的选项;
# Windows 在安装时候,安装程序会主动覆盖掉 MBR 以及自己所在分区的启动扇区,你没有选择的机会, 而且他没有让我们自己选择选菜单的功能。