走进Linux_Linux磁盘分区

引:Linux在我印象中最大的特点就是它把所有的硬件都当做一个文件,然后还是以/为根节点的目录树,简洁明了,相信大家一定会爱上它的。因为涉及到文件的存储,所以我们要重视磁盘分区。

硬件设备在linux中的文件名

Linux中每一个设备都被当成文件,所有的设备文件都在/dev这个目录下。下面列出几个常见设备与其在Linux当中的文件名,如下表:

设备 设备在Linux内的文件名
IDE硬盘 /dev/hd[a-d]
SATA/USB/SCSI硬盘 /dev/sd[a-p]
U盘 /dev/sd[a-p](与SATA相同)
软驱 /dev/fd[0-1]
打印机 25针:/dev/lp[0-2] usb:/dev/usb/lp[0-15]
鼠标 usb:/dev/usb/mouse[0-15] ps2:/dev/psaux
当前CD/DVD ROM /dev/cdrom
当前鼠标 /dev/mouse
磁带机 IDE:/dev/ht0 SCSI:/dev/st0

硬盘分区

磁盘的文件命名规则

磁盘的接口有两种,分别是IDE接口、SATA接口。目前主流的接口是SATA接口。
使用IDE接口的设备我们称为IDE设备。

  1. IDE设备:一个IDE接口可以连接两个IDE设备,主机中一般用两个IDE接口,因此最多可以连接四个IDE设备。这两个IDE接口通常被称为IDE1、IDE2,而每个IDE接口连接的两个IDE设备又被分为主设备和从设备。这四个IDE设备的文件名如下表:
IDE接口 主设备 从设备
IDE1 /dev/hda /dev/hdb
IDE2 /dev/hdc /dev/hdd
  1. SATA设备:以SATA/USB/SCSI为接口的磁盘使用的都是SCSI模块来驱动的,因此他们的设备文件名都是/dev/sd[a-p]。但是与IDE设备不同的是,他们的文件名没有一定的顺序,谁先插上去,谁就是a,以此类推。

磁盘的组成

整个磁盘的第一个扇区非常重要,因为他记录了下面的重要的信息:

  1. 主引导分区Master Boot Record,MBR:可以安装“引导加载程序”的地方。有446bytes。
  2. 分区表:记录整块硬盘的分区状况,有64bytes。

磁盘分区表

对磁盘进行分区时,采用柱面作为基本单位。分区表有64bytes,被分成四个区域,每个区域记录当前磁盘的所有分区的起始和结束柱面号。例如:一块IDE硬盘被分成四个区域: P1:/dev/hda1 ,P2:/dev/hda2 ,P3:/dev/hda3 ,P4:/dev/hda4。每个磁盘的分区表只能被分成四个区域,这四个区域被称为主分区或扩展分区。当系统进行数据的读写时,一定要参考分区表才能进行。

分区的原因

保证数据的安全性(分区不会影响);提升系统的性能(只在自己的分区查找)。

扩展分区

主分区和扩展分区都是分区表中的一条记录,主分区中存放通过直接索引就能到达的分区的开始和结束的柱面号;而扩展分区中存放的是逻辑分区表的开始和结束柱面号,这张逻辑分区表中才存放分区的开始和结束柱面号。

由于一张分区表只能存放四条记录,也就是四个分区,当我们想要多一些分区的时候就必须要通过扩展分区来实现。 分区表中的四条记录对应的设备文件名是不会变的。如上面的四个名字,所以逻辑分区的文件名一定是从5开始的。如:/dev/hda5。

提醒

  1. 扩展分区最多只能有1个。
  2. Linux中,IDE硬盘最多有59个逻辑分区,5号-63号;SATA硬盘最多有11个逻辑分区,5号-15号。
  3. 在Windows中若D、E盘都是扩展分区中的逻辑分区,那么他们可以整合成一个分区;若两个盘一个是逻辑分区,一个是主分区,那他们是不能合并的。
  4. 一块硬盘的第一个扇区记录了MBR和分区表,非常的重要,如果第一个扇区坏了,那么整个硬盘就报废了。

开机流程

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

  1. BIOS:开机主动执行的韧体,会认识第一个可开机的对象。
  2. MBR:第一个可开机设备的第一个扇区的主引导分区块,内包含引导加载程序。
  3. 引导加载程序:一支可读取内核文件来执行的软件。(可多个不同系统的加载程序对应了不同的操作系统)
  4. 内核文件:开始操作系统的功能。

PS:为什么如果安装多重引导,最好先安装Windows在安装Linux?——因为Linux在安装的时候可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且在linnux的loader可以手动设置菜单,所以你可以在Linux的boot loader里面加入Windows开机的选项。Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且没有让我们选择菜单的功能。

挂载

目录树

在Linux中,整个文件系统呈一棵以/为根目录的树。

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

挂载就是把一个目录当作磁盘中某一个分区的进入点,也就是说,进入了这个目录,就进入了这个磁盘的这个分区。这个进入的目录我们就称为挂载点。
根目录一定要挂载到某个分区。

如何寻找挂载点(判断某个在文件在哪个分区下)?答:通过反向追踪即可,当我们想要知道/home/rex/test文件在那个分区时,只要逆向寻找第一个挂载点就是这个文件的挂载点。 可以使用下面的命令:

df /home/rex/test

总结

了解分区,了解开机流程,了解挂载,ok,就这些!

参考

  1. 《鸟哥的Linux私房菜》