引: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设备。
- IDE设备:一个IDE接口可以连接两个IDE设备,主机中一般用两个IDE接口,因此最多可以连接四个IDE设备。这两个IDE接口通常被称为IDE1、IDE2,而每个IDE接口连接的两个IDE设备又被分为主设备和从设备。这四个IDE设备的文件名如下表:
IDE接口 | 主设备 | 从设备 |
---|---|---|
IDE1 | /dev/hda | /dev/hdb |
IDE2 | /dev/hdc | /dev/hdd |
- SATA设备:以SATA/USB/SCSI为接口的磁盘使用的都是SCSI模块来驱动的,因此他们的设备文件名都是/dev/sd[a-p]。但是与IDE设备不同的是,他们的文件名没有一定的顺序,谁先插上去,谁就是a,以此类推。
磁盘的组成
整个磁盘的第一个扇区非常重要,因为他记录了下面的重要的信息:
- 主引导分区Master Boot Record,MBR:可以安装“引导加载程序”的地方。有446bytes。
- 分区表:记录整块硬盘的分区状况,有64bytes。
磁盘分区表
对磁盘进行分区时,采用柱面作为基本单位。分区表有64bytes,被分成四个区域,每个区域记录当前磁盘的所有分区的起始和结束柱面号。例如:一块IDE硬盘被分成四个区域: P1:/dev/hda1 ,P2:/dev/hda2 ,P3:/dev/hda3 ,P4:/dev/hda4。每个磁盘的分区表只能被分成四个区域,这四个区域被称为主分区或扩展分区。当系统进行数据的读写时,一定要参考分区表才能进行。
分区的原因
保证数据的安全性(分区不会影响);提升系统的性能(只在自己的分区查找)。
扩展分区
主分区和扩展分区都是分区表中的一条记录,主分区中存放通过直接索引就能到达的分区的开始和结束的柱面号;而扩展分区中存放的是逻辑分区表的开始和结束柱面号,这张逻辑分区表中才存放分区的开始和结束柱面号。
由于一张分区表只能存放四条记录,也就是四个分区,当我们想要多一些分区的时候就必须要通过扩展分区来实现。 分区表中的四条记录对应的设备文件名是不会变的。如上面的四个名字,所以逻辑分区的文件名一定是从5开始的。如:/dev/hda5。
提醒
- 扩展分区最多只能有1个。
- Linux中,IDE硬盘最多有59个逻辑分区,5号-63号;SATA硬盘最多有11个逻辑分区,5号-15号。
- 在Windows中若D、E盘都是扩展分区中的逻辑分区,那么他们可以整合成一个分区;若两个盘一个是逻辑分区,一个是主分区,那他们是不能合并的。
- 一块硬盘的第一个扇区记录了MBR和分区表,非常的重要,如果第一个扇区坏了,那么整个硬盘就报废了。
开机流程
整个开机流程到操作系统之前的动作应该是这样的:
- BIOS:开机主动执行的韧体,会认识第一个可开机的对象。
- MBR:第一个可开机设备的第一个扇区的主引导分区块,内包含引导加载程序。
- 引导加载程序:一支可读取内核文件来执行的软件。(可多个不同系统的加载程序对应了不同的操作系统)
- 内核文件:开始操作系统的功能。
PS:为什么如果安装多重引导,最好先安装Windows在安装Linux?——因为Linux在安装的时候可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且在linnux的loader可以手动设置菜单,所以你可以在Linux的boot loader里面加入Windows开机的选项。Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且没有让我们选择菜单的功能。
挂载
目录树
在Linux中,整个文件系统呈一棵以/为根目录的树。
文件系统与目录树的关系(挂载)
挂载就是把一个目录当作磁盘中某一个分区的进入点,也就是说,进入了这个目录,就进入了这个磁盘的这个分区。这个进入的目录我们就称为挂载点。
根目录一定要挂载到某个分区。
如何寻找挂载点(判断某个在文件在哪个分区下)?答:通过反向追踪即可,当我们想要知道/home/rex/test文件在那个分区时,只要逆向寻找第一个挂载点就是这个文件的挂载点。 可以使用下面的命令:
df /home/rex/test
总结
了解分区,了解开机流程,了解挂载,ok,就这些!
参考
- 《鸟哥的Linux私房菜》