各硬件装置在linux中的文件名

在linux系统中,每个装置都被当成一个档案来对待。

常见的装置与其在linux中的档名:

磁盘分区

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

个人计算机常见的磁盘接口有两种:IDE接口、SATA接口(主流)。

IDE接口:通常主机提供两个IDE接口,一个IDE扁平电缆可以链接两个IDE装置,因此最多可以接到4个IDE装置。两个IDE接口通常被称为IDE1(primary)和IDE2(secondary),每条扁平电缆上面的IDE装置可以被区分为Master和Slave。

SATA接口:由于SATA/USB/SCSI等磁盘接口使用SCSI模块来驱动,因此这些接口的磁盘装置文件名都是/dev/sd[a-p]的格式。但是SATA/USB接口的磁盘根本就没有一定的顺序,要根据linux可信侦测到磁盘的顺序来决定装置文件名。

磁盘的组成

磁盘主要组成:磁盘盘、机械手臂、磁盘读取头、主轴马达。数据写在磁盘盘上。磁盘盘细分处扇区(Sector)和磁柱(Cylinder),其中扇区每个为512bytes。

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

a. 主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446bytes。系统开机时主动读取这个区块的内容,系统才知道程序放在哪里且该如何开机。

b. 分割表(partion table):记录整颗磁盘分割的状态,有64bytes。必须对硬盘进行分割,这样硬盘才能使用。

磁盘分区表(partion table)

[开始磁柱与结束磁柱]是文件系统的最小单位,也是分割槽的最小单位。在分割表64bytes中,总共分为四组记录区,每组记录区记录了该区段的启示与结束磁柱号码。

由于分割表只有64bytes,最多只能容纳4笔分割的记录,这4个分割记录被称为主要(primary)和延伸(extended)分隔槽。归纳:

a. 所谓的[分割]只是对那64bytes的分割表进行设定

b. 硬盘默认的分割表仅能写入4组分割信息

c. 这4组分割信息我们成为主要(Primary)或延伸(Extended)分隔槽

d. 分割槽的最小单位为磁柱(Cylinder)

e. 当系统写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理

为什么要进行分割?

a. 数据的安全性:每个分割槽的数据是分开的。

b. 系统的效能:提高数据读取的速度。

在windows/linux系统中,通过延伸分割来分割出更多的分割槽。延伸分割的思路:既然第一个扇区所在的分割槽只能记录4笔数据,那可否利用额外的扇区来记录更多的分割信息。

延伸分割的目的是使用额外的扇区来记录分割信息,延伸分割本身并不能拿来格式化。我们可以透过延伸分割所指向的那个区块继续作分割的记录。延伸分割切出来的分割槽,称为逻辑分割槽(logical partion)。

主要分割/延伸分割与逻辑分割的特性:

a. 主要分割与延伸分割最多可以有4笔(硬盘的限制)

b. 延伸分割最多只能有一个(操作系统的限制)

c.逻辑分隔是由延伸分割持续切割出来的分割槽

d.能够被格式化后,作为数据存取的分割槽为主要分割和逻辑分隔。延伸分割不能被格式化

e.逻辑分隔的数量根据操作系统的不同而不同,在linux系统中,IDE硬盘最多有59个逻辑分隔(5号到63号),SATA硬盘则有11个逻辑分隔(5号到15号)

开机流程与主要启动记录区(MBR)

BIOS与CMOS,CMOS是记录各项硬件参数且嵌入在主板上的存储器,BIOS则是写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序)。BIOS是开机时计算机系统主动执行的第一个程序。

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

开机管理程序的目的:加载(load)核心档案。由于开机管理程序是操作系统在安装的时候所提供的,所以它会认识硬盘内文件系统格式,因此就能够读取核心档案,接下来核心档案工作,开机管理程序任务完成,之后就是操作系统的任务。

简单来说,整个开机流程到操作系统之前的工作:

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

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

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

d. 核心档案:开始操作系统的功能...

BIOS与MBR都是硬件本身会支持的功能,至于boot loader则是操作系统安装在MBR上的一套软件。由于MBR仅有446bytes,因此开机管理程序非常小而美。boot loader的主要任务:

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

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

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

第三点表示你的计算机系统里面可能有两个以上的开机管理程序。开机管理程序除了可以安装在MBR外,还可以安装在每个分割槽的启动扇区(boot sector),这个特色才能造就[多重引导]的功能。

在上图中我们可以发现,MBR的开机管理程序提供两个选单,选单一(M1)可以直接加载Windows的核心档案来开机; 选单二(M2)则是将开机管理工作交给第二个分割槽的启动扇区(boot sector)。当使用者在开机时选择选单二时, 那举整个开机管理工作就会交给第二分割槽的开机管理程序了。 当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机选单,因此就能够使用Linux的核心档案来开机。 这就是多重引导的工作情况。

我们将上图作个总结:

a. 每个分割槽都拥有自己的启动扇区(boot sector)

b. 图中的系统槽为第一及第二分割槽,

c. 实际可开机的核心档案是放置到各分割槽内的!

d.loader叧会认识自己的系统槽内的可开机核心档案,以及其他loader而已;

e. loader可直接指向或者是间接将管理权转交给另一个管理程序。

为什么常常说:『如果要安装多重引导, 最好先安装Windows再安装Linux』呢?这是因为:

a. Linux在安装的时候,你可以选择将开机管理程序安装在MBR或各别分割槽的启动扇区, 而且Linux的loader可以手动设定选单(就是上图的M1, M2...),所以你可以在Linux的boot loader里面加入Windows开机的选项;

b. Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分割槽的启动扇区,你没有选择的机会, 而且他没有让我们自己选择选单的功能。

因此,如果先安装Linux再安装Windows的话,那MBR的开机管理程序就只会有Windows的项目,而丌会有Linux的项目 (因为原本在MBR内的Linux的开机管理程序就会被覆盖掉)。 那需要重新安装Linux一次吗?当然不需要,你只要用尽各种方法来处理MBR的内容即可。 例如利用全中文的spfdisk(http://spfdisk.sourceforge.net/)软件来安装认识Windows/Linux的管理程序, 也能够利用Linux的救援模式来挽救MBR即可。

Linux安装模式下,磁盘分区的选择(极重要)

目录树结构(directory tree)

目录树就是以根目录为主,然后向下呈现分支状的目录结构的一种档案架构。所有档案都与目录树有关。

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

挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。也就是说,进入该目录就可以读取该分割槽的意思。这个工作称为挂载,那个进入点的目录称为挂载点。由于整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分割槽的。至于其他目录则可根据用户的需求挂载到不同的分割槽。

判断某个档案在那个partition底下是很简单,透过反向追踪即可。以上图来说, 当我想要知道/home/vbird/test这个档案在那个partition时,由test --> vbird --> home --> /,看那个『进入点』先被查到那就是使用的进入点了。 所以test使用的是/home这个进入点而不是/。

鸟哥的linux私房菜 - 第三章 主机规划与磁盘分区的更多相关文章

  1. 别人的Linux私房菜(3)主机规划与磁盘分区

    磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...

  2. 鸟哥的linux私房菜——第五章学习(Linux的文件权限与目录配置)

    ******************第五章学习****************** 1.[重要的三个概念] 1).文件拥有者(使用者):User,该文件/文件夹只能我来读写: 2).群组:Group, ...

  3. 鸟哥的Linux私房菜——第十一章

    视频链接: 土豆:http://www.tudou.com/programs/view/yT0PfIWU720 B站(推荐): http://www.bilibili.com/video/av9877 ...

  4. 鸟哥的linux私房菜——第七章学习(Linux 磁盘与文件系统管理)

    1.1).文件系统特征 我们称呼一个可被挂载的数据为一个文件系统而不是一个分区! 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data ...

  5. 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

    20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...

  6. 鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理

    视频链接:http://www.bilibili.com/video/av10669732/ 1. Linux 的账号与群组1.1 使用者识别: UID 与 GID1.2 使用者账号:/etc/pas ...

  7. 鸟哥的linux私房菜——第十三章学习(Linux 帐号管理与 ACLL 权限设置)

    第十三章.Linux 帐号管理与 ACLL 权限设置 1.0).使用者识别码: UID 与 GID UID :User ID GID :group ID [root@study ~]# ll -d / ...

  8. 鸟哥的linux私房菜——第六章学习(Linux文件与目录管理)

    ******************第六章学习****************** 1.[文件与目录管理] 在所有目录下面都会存在的两个目录,分别是 "." 与 "..& ...

  9. 鸟哥的linux私房菜——第四章学习

    ******************第四章学习****************** [热键] 1.Tab键:命令补全:文件补全: 2.Ctrl+c:中断目前指令: 3.Ctrl+d:离开当前文本界面: ...

随机推荐

  1. 【SharePoint】K2 for SharePoint 安装笔记【未完工】

    0.安装环境说明 0.1.软件版本 OS : Window Server 2012 标准版 SharePoint : 2013标准版 K2 : 4.6.9 0.2.环境结构 SharePoint 20 ...

  2. vue.js+koa2项目实战(二)创建 HeadBar 组件

    elementUI界面布局 1.创建 HeadBar 组件 HeadBar.vue <template> <el-row> <el-col :span="2&q ...

  3. Exception from HRESULT: 0x80070057 (E_INVALIDARG)

    Exception from HRESULT: 0x80070057 (E_INVALIDARG)异常. 解决方案:清除ASP.NET缓存目录中对应的应用程序目录. ASP.NET缓存目录如下: C: ...

  4. ARM和STM32的区别及ARM公司架构的发展

    ARM和STM32的区别及ARM公司架构的发展 转:https://www.cnblogs.com/kwdeblog/p/5260348.html ARM是英国的芯片设计公司,其最成功的莫过于32位嵌 ...

  5. 17:不重复整数提取NoRepeatNum

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述:输入一个int型整数 输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子: ...

  6. getOutString 输出弹出字符串

    输入字符串长度,字符串,计数m.从前往后计数,当数到m个元素时,第m个元素出列,同时将该元素赋值给m,然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字.输出出队队列. 例如:   ...

  7. deeplearning.net 0.1 document - Multilayer Perceptron

    Multilayer Perceptron 以下我们使用Theano来介绍一下单隐藏层的多层感知机(MLP).MLP能够看成一个logistic回归分类器,它使用一个已经学习的非线性转换器处理输入.这 ...

  8. 设计模式 - 代理模式(proxy pattern) 未使用代理模式 具体解释

    代理模式(proxy pattern) 未使用代理模式 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 部分代码參考: http://blog.csdn. ...

  9. Bootstrap--常用及实例合集

    栅格系统 1. row必须放到container和container-fluid里面        2. 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row ...

  10. 【7.1.1】ELK集群搭建 之 ES集群

    写在前边 昨天晚上就已经完成这篇博客了,就是在测试这块是否正常跑起来,晚上没搞完,上班前把电脑关机带着,结果没保存!基本上昨天写的东西都丢了,好在博客园的图片url还在. 为了让大家都轻松些,我轻松写 ...