【Linux】磁盘分区原理

磁盘连接的方式与装置文件名的关系

  个人计算机常见癿磁盘接口有两种, 分别是 IDE 与 SATA 接口,目前主流已经是 SATA 接口了,但是老一点主机其实大部分还是使用 IDE 接口。 我们称呼可连接到IDE接口癿装置为IDE 装置,不管是磁盘还是光盘设备。

  以 IDE 接口来说,由两个 IDE 扁平电缆可以连接两个 IDE 装置,又通常主机都会提供两个IDE 接口,因此最多可以接到四个 IDE 装置。 也就是说,如果你已经有一个光盘设备了,那举最多就只能再接三颗 IDE 接口。 这两个IDE 接口通常被称为 IDE1(primary)及 IDE2(secondary), 而每条扁平电缆上面IDE 装置可以被区分为 Master(主设备) 和Slave(从设备)。这四个 IDE 装置文件名为:

这里写图片描述

  再以 SATA 接口来说,由于SATA/USB/SCSI 等磁盘接口都是使用SCSI 模块来驱动, 因此这些接口的磁盘装置文件名都是/dev/sd[a-p]的格式。 但是与IDE 接口不同的是,SATA/USB 接口的磁盘根本就没有一定癿顺序,那如何决定他癿装置文件名呢? 这个时候就得要根据 Linux 内核检测到磁盘的顺序了!

例题:
如果你的 PC 上面有两个 SATA 磁盘以及一个 USB 磁盘,而主板上面有六个 SATA 的插槽。这两个 SATA 磁盘分别安插在主板上的SATA1, SATA5 插槽上, 请问这三个磁盘在Linux 中的装置文件名为何?

答:
由二是使用侦测到的顺序来决定装置文件名,并非与实际插槽代号有关,因此装置的文件名如下:
1. SATA1 插槽上的文件名:/dev/sda
2. SATA5 插槽上的文件名:/dev/sdb
3. USB 磁盘(开机完成后才被系统捉到):/dev/sdc

磁盘的组成

  整颗磁盘的第一个扇区特别的重要,因为他记录了整颗磁盘的重要信息! 磁盘的第一个扇区主要记录了两个重要的信息,分别是:

• 主引导分区(Master Boot Record, MBR):可以安装引导加载程序的地方,有 446 bytes

• 分区表(partition table):记录整颗硬盘分区状态,有64 bytes

  MBR 是很重要的,因为当系统在开机的时候会主动去读这个区块的内容,这样系统才会知道你的程序放在哪里和该如何运行开机。如果你要安装多重引导的系统,MBR 这个区块的管理就非常非常的重要了!

磁盘分区表(partition table)

这里写图片描述

  柱面是文件系统的最小单位,也就是分区的最小单位,我们就是利用参考对照磁柱号码的方式来处理的, 在分区表所在的64 bytes 容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。若将硬盘以长条形来看,然后将磁柱以柱形图来看,那那64 bytes的记录区段有点像下面的图示:

这里写图片描述

  假设上面的硬盘装置文件名为/dev/hda 时,那这四个分区在 Linux 系统中的装置文件名如下所示, 重点在文件名后面会再接一个数字,这个数字与该分区所在的位置有关。

• P1:/dev/hda1
• P2:/dev/hda2
• P3:/dev/hda3
• P4:/dev/hda4

  根据上面的图示说明,我们可以得到几个重点信息:

• 其实所谓的『分区』只是针对那个 64 bytes 的分区表进行设定而已!
• 硬盘默认的分区表仅能写入四组分割信息
• 这四组分区信息我们称为主 (Primary)或扩展(Extended)分区
• 分区的最小单位为柱面(cylinder)
• 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割进迚行数据的处理

  扩展分区的想法是:既然第一个扇区所在的分区表只能记录四条数据, 那我可否利用额外的扇区来记录更多的分区信息?实际上图示有点像下面这样:

这里写图片描述

  上图当中,我们知道硬盘的四个分区记录表仅使用到两个,P1为主分区,而 P2则为扩展分区。请注意,扩展分区的目地是使用额外的扇区来记录分区信息,扩展分区本身不能被拿来格式化。然后我们可以透过扩展分区所指向的那个区块继续作分区的记录。
  如上图右下方那个区块有继续分割出五个分区, 这五个由扩展分区继续切出来的分区,就被称为逻辑分区(logical partition)。 同时注意一下,由于逻辑分区是由扩展分区继续分割出来的,所以他可以使用的柱面范围就是扩展分区所设定的范围。也就是图中的 101~400 啦!
同样的,上述的分割槽在 Linux 系统中的装置文件名分别如下:

• P1:/dev/hda1
• P2:/dev/hda2
• L1:/dev/hda5
• L2:/dev/hda6
• L3:/dev/hda7
• L4:/dev/hda8
• L5:/dev/hda9

  仔绅看看,怎举装置文件名没有/dev/hda3和/dev/hda4 呢?因为前面四个号码都是保留给 Primary(主分区)或 Extended(扩展分区) 用的! 所以逻辑分区的装置名称号码就由 5 号开始了!这是个很重要的特性
主分区、扩展分区与逻辑分区的特性我们作个简单的定义:

• 主分区与扩展分区最多可以有四个(硬盘的限制)

• 扩展分区最多只能有一个(操作系统的限制)

• 逻辑分区是由扩展分区持续切割出来的分区

• 能够被格式化后作为数据存储的分区为主分区与逻辑分割。逻辑分区无法格式化

• 扩展分区的数量依操作系统而不同,在 Linux系统中,IDE 硬盘最多有 59 个逻辑分割(5 号到63 号), SATA 硬盘则有 11 个逻辑分割(5 号到 15 号)。

  事实上,分区是个很麻烦的东西,因为他是以柱面为单位的『连续』磁盘空间,且扩展分区又是个类似独立的磁盘空间,所以在分区的时候得要特别注意。我们用例子来解释一下好了:

例题:
在 Windows 操作系统当中,如果你想要将 DE 盘整合成为一个新的分割槽,而如果有两种分区的情况如下图所示, 图中的特殊颜色区块为 DE 盘的示意,请问这两种方式是否均可将 DE 整合成为一个新的分区?

这里写图片描述

答:
• 上图可以整合:因为上图的 DE 同属于扩展分区内的逻辑分割,因此只要将两个分区删除,然后再重新建立一个新的分区, 就能够在不影响其他分区的情况下,将两个分区的容量整合成为一个。
• 下图不可整合:因为 DE 分属主分区与逻辑分割,两者不能能够整合在一起。除非将扩展分区破坏掉后再重新分割。 但如此一来会影响到所有的逻辑分区,要注意的是:如果扩展分区被破坏,所有逻辑分区将会被删除。 因为逻辑分区的信息都记录在扩展分区里面。

  由二第一个扇区所记录的分区表与 MBR 是很重要的,几乎只要读取硬盘都会先由这个扇区先读起。因此,如果整颗硬盘的第一个扇区(就是 MBR 与 partition table 所在的扇区)物理实体坏掉了,那这个硬盘大概就没有用了! 因为系统如果找不到分区表,怎么知道如何读取柱面区间呢。

开机流程与主引导分区(MBR)

  在计算器里面有BIOS 与 CMOS 两个东西, CMOS 是记录各项硬件参数且嵌入在主板上面的储存器,BIOS 则是一个写入到主板上的一个韧体(再次说明, 韧体就是写入到硬件上的一个软件程序)。 这个 BIOS 就是在开机的时候,计算机系统会主动执行的第一个程序!

  接下来 BIOS 会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS 会依据使用者的设定去取得能够开机的硬盘, 并且到该硬盘里面去读取第一个扇区的 MBR 位置。 MBR 这个仅有 446 bytes 的硬盘容量里面会放置最基本的开机管理程序, 此时 BIOS 就功成圆满,而接下来就是 MBR 内的开机管理程序的工作了。

  这个开机管理程序的目地是在加载(load)核心档案, 由于开机管理程序是操作系统在安装的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取内核文件, 然后接下来就是内核文件的工作,开机管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦!

  简单的说,整个开机流程到操作系统之前的动作应该是这样的:

1.BIOS:开机主动执行的韧体,会认识第一个可开机的装置

2.MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内包含开机管理程序

3.开机管理程序(boot loader):一支可读叏核心档案来执行的软件

4.内核文件:开始操作系统的功能…

  由上面的说明我们会知道,BIOS 与 MBR 都是硬件本身会支持的功能,至于 Boot loader 则是操作系统安装在 MBR 上面的一套软件了。由于 MBR 仅有 446 bytes 而已,因此这个开机管理程序是非常小而完美的。

  这个 boot loader 的主要任务有以下这些项目:

• 提供菜单:用户可以选择不同的开机项目,这也是多重引导的重要功能

• 载入核心档案:直接指向可开机的程序区段来开始操作系统

• 转交其他 loader:将开机管理功能转交给其他 loader 负责

Linux 安装模式下, 磁盘分区的选择

目录树结极(directory tree)

  整个 Linux 系统最重要的地方就是在于目录树结构。
  所以,整个目录树结构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线『/』 , 所有的文件都与目录树有关。

这里写图片描述

文件系统与目录树的关系(挂载)

  所谓『挂载』就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下; 也就是说进入该目录就可以读取该分区的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。

这里写图片描述


文章整理至《鸟哥的私房菜(第3版)》

鸟哥 著

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux磁盘管理实验是一项重要的实践课程,旨在帮助学生掌握Linux系统中磁盘管理的基本知识和技能。该实验通常包括以下内容: 1. 磁盘分区:学生需要了解磁盘分区的概念和原理,掌握如何使用fdisk或parted等工具进行磁盘分区。 2. 磁盘格式化:学生需要了解磁盘格式化的概念和原理,掌握如何使用mkfs等工具对磁盘进行格式化。 3. 磁盘挂载:学生需要了解磁盘挂载的概念和原理,掌握如何使用mount等工具将磁盘挂载到指定的目录下。 4. 磁盘配额:学生需要了解磁盘配额的概念和原理,掌握如何使用quota等工具对磁盘进行配额管理。 通过完成这些实验,学生可以深入了解Linux系统中磁盘管理的相关知识和技能,为以后的工作和学习打下坚实的基础。 ### 回答2: Linux磁盘管理实验是指在Linux操作系统中,通过命令行终端对磁盘进行管理操作的训练。这个实验对于想要学习Linux系统管理的人来说是必须要经历的一步,因为磁盘的管理关系到整个系统的稳定性和安全性。 在这个实验中,我们需要掌握以下几个方面的知识: 1. 磁盘分区和格式化:我们需要了解如何通过命令行对硬盘进行分区和格式化。分区可以将硬盘划分成不同的逻辑区域,将数据进行分类存储;格式化是将逻辑分区进行初始化,以便开始进行文件的读写。 2. 挂载和卸载磁盘:在Linux系统中,我们需要将硬盘挂载到指定的目录下才能使用。挂载操作需要通过命令行来完成,同时卸载操作也需要进行。这样能够避免数据的误操作和意外删除。 3. 磁盘容量的查看和管理:由于Linux系统是基于命令行操作的,因此需要通过命令行来查看磁盘容量,并进行相应的管理操作。我们需要学会如何使用命令行来查看磁盘的可用空间、使用率和剩余空间等信息。 4. 磁盘备份和恢复:为了避免数据的丢失,我们需要进行备份。在Linux系统中,我们要了解如何使用tar、rsync等命令进行备份,并且要学习如何进行恢复操作,以便在需要时可以迅速恢复数据。 总之,Linux磁盘管理实验是一个好的学习机会,可以帮助我们掌握Linux磁盘的管理技巧,提高我们的系统管理能力,为我们今后的工作打下坚实的基础。 ### 回答3: Linux磁盘管理实验在计算机科学的学习中是非常重要的一部分。磁盘管理包括分区、挂载、格式化、挂载点、磁盘配额等内容,这些内容的合理配置对于计算机系统的运行稳定性具有非常关键的作用。 在分区方面,我们可以使用命令行工具fdisk来对磁盘进行分区,并且可以根据需求创建主分区和扩展分区,然后再在扩展分区中创建逻辑分区。在进行分区操作时应注意磁盘的大小和磁头数,以及数据的备份等问题。 挂载是将磁盘中的分区挂载到操作系统中的一个特定目录下的过程。在进行挂载操作时,应注意操作系统的文件系统类型和挂载点,避免出现不兼容的情况。在Linux中常用的文件系统有ext2、ext3、ext4、NTFS等。 格式化是将磁盘分区格式化为不同的文件系统类型。在Linux中可以使用mkfs命令来进行格式化操作,可以选择格式化成不同的文件系统类型,如ext2、ext3、ext4、NTFS等。格式化操作的注意事项包括操作前要备份重要数据,操作后可通过挂载点访问磁盘分区,而无法直接通过磁盘进行访问。 磁盘配额能够限制特定用户或用户组对磁盘的使用量,从而提高磁盘的使用效率和安全性。在进行磁盘配额操作时,可以选择使用quota工具,根据不同的需求对磁盘进行限制,可以限制用户的磁盘使用量、文件数量等。 总之,磁盘管理是Linux系统的一个重要部分,通过实验操作,我们可以更好地了解如何对磁盘进行分区、挂载、格式化和配额等操作,提高计算机系统的运行效率和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘星燎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值