【linux硬件及硬盘分区】关于硬盘的规划和使用细节

ps:期末考试 终于结束了,这下我也终于有时间开始继续经营我的博客。这个学期上的一些课真的非常有用,感觉很多课程细地讲都可以写成非常精致的技术博文,比如流水线技术,数据库的一些技术,大学里的考试考的内容“不痛不痒”真正有价值的一些内容避而不考,但是追很多有的没的的概念很鸡肋。不管如何,这个暑假给自己留了很多本官方技术书籍慢慢去看,我也会在博客里继续补充一些自己的体会和心得。

一. 关于设备在linux中的名字

附:(linux中常见设备和设备在linux中的名字的对照表)

-------------------------------------------------------------

| IDE接口硬盘      |  /dev/hd[a~d]       |

| SCSI/SATA/USB硬盘    |  /dev/sd[a~p]       |

| U盘          |  /dev/sd[a~p]       |

| 软驱           |  /dev/fp[0~1]        |

| 打印机              |   /dev/lp[0~2]        |

| 鼠标           |  /dev/usb/mouse[0~15]  |

|            |  或者 /dev/psaux      |

| 当前CD ROM      |   /dev/cdrom        |

| 当前鼠标        |   /dev/mouse        |

--------------------------------------------------------------

虽说使用linux的fedora distribution有快一年多的时间了,但是其实有很多细节的知识都没有仔细去思考了解,比如硬件设备在linux的/dev目录下的一些命名规则。

首先看看和我们接触最多的硬盘:

现在主流的硬盘按照接口可以分类为两种: IDE接口和SATA接口,其中IDE接口类型的硬盘几乎大部分现在已经被淘汰了,SATA接口比较浅显的一个特征是由两个接口槽组成分别是信号接口和电源接口,每个SATA接口只可以连接一个硬盘,主板上的SATA接口的个数并不是固定的,随着厂商的设定而改变。另外一种硬盘的传输接口为SCSI接口,比较常见于工作站以上的等级的计算机中,SCSI接口硬盘在控制器上含有一块处理器,运行速度快而且不会消耗CPU资源

对于IDE接口硬盘:

一个IDE扁平电缆可以连接两个IDE设备,这个两个电缆接口分别被称为IDE1(primary)和IDE2(secondary),而每条扁平电缆上面的两个设备分别被叫做Master设备和Slave设备,因此有如下名称对应表:

---------------------------------------------------

|  IDE1--Master    |   /dev/hda    |

|  IDE1--Slave      |   /dev/hdb    |

|  IDE2--Master    |   /dev/hdc    |

|  IDE2--Slave      |   /dev/hdd    |

---------------------------------------------------

对于SATA接口硬盘:

由于主板上的SATA接口数量不一致,SATA设备在linux中的命名往往是”先来后到“关系,假如一个主板上有10个SATA接口且SATA0号接口槽和3号接口槽上分别有一个设备并且还有一个USB设备,则命名则为SATA0-->/dev/sda,SATA3-->/dev/sdb,U盘-->/dev/sdc,这里的U盘之所以排在后面是因为BIOS程序往往最后识别USB线上的设备,而且大多数的U盘都是在开机完成之后再插入的所以往往就命名最靠后。

以上为止的硬盘命名都是在为对其进行过分区的前提之下进行的,就是所谓的”一张大饼“没有被切开,在介入分区后的设备命名之前,先了解下关于硬盘分区及系统开机过程的一些知识。

二. 磁盘的分区和系统启动简述

这里所说的硬盘是指传统的由盘片,机械手臂,主轴马达构成的磁盘,我的笔记本上的硬盘的规格就是这个样子5400转/秒,磁盘的构成的具体知识这里不赘述了,对于硬盘来讲在磁道的第一个扇区是非常重要的,它记录了关于磁盘的两个非常重要的信息:

(1)主引导分区(Master Boot Record)安装引导加载程序的地方。占用446B

(2)分区表(Partition Table)记录硬盘分区状态。占用64B

首先看一下分区表:

所谓对磁盘进行的分区有三个比较重要的概念:

(1)主分区(Primary)

(2)扩展分区(Extended)

(3)逻辑分区(Logical)

最直观意义上的磁盘分区就是主分区,主分区就是直接在64B的分区表中记录下来4组分区的情况,由于64B的限制,硬盘默认的分区表最多只可以容纳4组分区信息,那么最直接的假设就是当我们把一个硬盘直接分区为4个主分区时候的命名情况对照表如下所示(假设使用的硬盘为SATA接口类型):

-------------------------------------------------

| 主分区1    |   /dev/sda1      |

| 主分区2    |   /dev/sda2      |

| 主分区3    |   /dev/sda3      |

| 主分区4    |   /dev/sda4      |

-------------------------------------------------

其中分区的最小单位为 柱面(cylinder)

然而在实际中我们使用的硬盘却会分区为大于4个甚至10个以上的分区,这里是如何实现的呢?其实使用的就是扩展分区的功能,扩展分区在这里更像是一个广义表,里面记录了更下一级的分区情况,这就是逻辑分区。如下图所示:

那么对上图来讲在linux中的命名对照表如下所示:

---------------------------------------------------------------------------------

| 主分区1            |    /dev/sda1             |

| 扩展分区--------D        |    /dev/sda5              |

|     --------E       |    /dev/sda6            |    

|     --------F       |    /dev/sda7            |

---------------------------------------------------------------------------------

这里要注意逻辑分区的数标命名是从5开始的,因为1~4的命名只能留给主分区/扩展分区使用,除了以上的概念之外有几点需要注意:

1.对于一块硬盘只能有0~1个扩展分区,可以有1~3个主分区,也就是说  |主分区|+|扩展分区|<=4

2.能够作为数据进行访问的分区只有主分区和逻辑分区,扩展分区无法格式化!

3.linux中IDE硬盘最多有59个逻辑分区,SATA硬盘最多有11个逻辑分区

4.所谓的分区过程只是在对分区表内的那64B内容进行修改。

接下来通过第一个扇区中MBR(Master Boot Record)看一下计算机启动的主要过程:

1.系统加点自检,通过CMOS和BIOS主动执行开机。CMOS主要存储有关开机启动的一些参数,BIOS的功能这里就不赘述啦。

2.通过MBR执行bootloader程序,bootloader提供不同的开机选项,载入内核文件或者将引导加载功能转交给其他的loader负责。

(以下是随便唠叨两句,若已经了解推荐跳过)

既然说到了loader的转交,就不得不提多操作系统的实现,当今最主流的多操系统引导程序莫过于grub,grub就是被写进了mbr中的,正常的操作系统启动比如windows启动的时候,在mbr中的引导程序执行的时候会直接把计算机的控制权交给windows内核,然而grub在这里做的事情就是实现了一个”菜单“,不同的选项会把产生分支引导不同的操作系统引导程序,这些引导程序是卸载不同的分区之中的,每个分区都会有一个启动扇区,其功能和MBR一致。引导程序只认识在自己分区内的内核文件,这样一来就是实现了操作系统之间的隔离,但是由于是在同一个硬盘之中的不同分区完成的,所以分区情况对于用户还是不透明的,比如你可以在linux上明显看到windows内核文件所在的分区(嗯,打不开!)

三. linux文件系统和磁盘分区

(对于linux文件系统架构原理没有初步了解的朋友,请看我之前的博文:http://www.cnblogs.com/guguli/p/4556445.html

首先,还是那句老话,linux下的一切设备都是以文件形式进行管理,这个形式归功于linux的虚文件系统VFS对功能模块进行的分离做到的。然而linux中的文件都是以树结构进行管理的,这种向下分支的结构和磁盘的分区有着很大的联系:

在VFS的管理下,同一个磁盘的不同分区或者不同的磁盘之间的关系都是一致的,都是文件系统中的节点。假设我们的SATA硬盘被分为了两个主分区sda1和sda2,在抽象为vfsmount完成了像文件系统目录的挂载之中,假设sda1被挂载到了“/”根目录,sda2被挂载到了“/test”目录,那么比如我对/test/file1进行的读写操作自然就会被写入磁盘的第二个主分区,过程细化来讲就是:首先从file1文件的目录向上回溯,依次看各个目录节点是否是文件系统的挂载点(参见super_block结构体),这里向上回溯到/test目录发现这是一个挂载点,然后找到原来这是sda硬盘的第二个主分区,再通过sda硬盘的第一个扇区中的分区表找到属于第二个主分区的柱面范围,然后按地址进行读写。

时间: 2024-10-25 22:22:16

【linux硬件及硬盘分区】关于硬盘的规划和使用细节的相关文章

linux下的交换分区swap

linux下的交换空间 交换分区的作用: 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行 的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被 临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中.这样,系 统总是在物理内存不够时,才进行Swap交换. ========================================================================

Linux 入门记录:六、Linux 硬件相关概念(硬盘、磁盘、磁道、柱面、磁头、扇区、分区、MBR、GPT)

一.硬盘 硬盘的功能相当简单但很重要,它负责记录系统所需要的各种数据.硬盘记录数据有两个方面,一个是硬件方面的存储原理和结构,另外一方面则是软件方面的数据和文件系统.硬盘的主要行为就是数据的存放和取出. 构成硬盘的基本元件,主要可以分为实际存储数据用的磁盘(Plat Platter).读取数据用的磁头(Head).帮助磁头搜寻读取位置的马达等等,这些元件构成一个能够在不同磁盘上的任意位置读取数据的结构体. 二.磁盘(Plat Platter) 磁盘是硬盘中真正用来存储信息的部分,外观上如同圆盘一

linux 硬盘分区,分区,删除分区,格式化,挂载,卸载笔记

Linux 虽然一直都有在玩,但是对硬盘操作确实不是很熟悉今天有空,就整理了下. 1, 创建分区 先查看下是否有磁盘没有分区 [html] view plaincopy fdisk -l 其中第一个框和第二个框,是已经分好区的磁盘,第三个硬盘没有分区. 开始分区 [html] view plaincopy fdisk /dev/sdc 输入m,可以查看有哪些操作 输入p 查看当前硬盘分区,目前没有分区. 输入n新建一个分区,输入p 建立分区,输入分区编号 1 然后会让你设置开始扇区(不知道是否这

Day 7 Linux之系统监控、硬盘分区等

Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果.  1.第一行是任务队列信息 14:54:36 当前时间 up 3:42 系统运行时间(时:分) 3 users 当前登录用户数 load average:0.03 0.05 0.10

linux硬盘分区格式化及挂载

linux硬盘分区格式化及挂载 1.硬盘的接口类型 硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为主板上面一般有两个IDE插槽,一个IDE插槽可以接两个硬盘,而光驱是接着IDE的第二个插槽上面的第一个接口上面.其他诸如SCSI,SAS,SATA,USB等接口的设备在linux识别为/dev/sd[a-z]. 2.linux硬盘的分区 磁盘的分区分为: primar

企业生产场景下如何对Linux硬盘分区

生产环境: 硬件:华硕PC机,4 Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz,内存4G: 任务:生产场景下如何对Linux硬盘分区,安装CentOS6.9版本,搭建公网环境: 技巧:U盘安装.生产场景分区 1.背景   添加一台新电脑,目前该主机是裸机,没有安装任何操作系统.在安装操作系统之前,先要分区,在这里作者是按企业生产场景环境来分区的,对硬盘分区之前,我们先梳理磁盘分区的相关知识. 2.磁盘分区知识:    为什么硬盘要分区,因为我们要告诉操作系统,从

Linux基础——硬盘分区、格式化及文件系统的管理

1. 硬件设备与文件名的对应关系 掌握在Linux系统中,每个设备都被当初一个文件来对待. 设备 设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p](与 SCSI 硬盘.样) CDROM /dev/srO 2. 硬盘的结构及硬盘分区 1) 为什么要进行硬盘分区: l  更容易管理和控制系统,因为相关的文件和目录都放在一个分区中. l  系统效率更高. l  可以限制用户使用硬盘的份额(磁盘空间的大小). l 

linux系统下使用分区、格式化、挂载命令添加新硬盘

一.硬盘的接口类型 从整体的角度上,硬盘接口分为IDE.SATA.SCSI.光纤通道和SAS五种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵.SATA是种新生的硬盘接口类型,还正处于市场普及阶段,在家用市场中有着广泛的前景. 二.linux的硬盘分区 linux磁盘的分区分为: primary(主分区).extended(扩展分区).Logical (逻辑分区)且主分区加上扩展分区的个数小于等于4个.且扩展分

(转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己的电脑上随意操作了! 1 主分区 我们知道硬盘的第一个扇区也就是第0扇区是用来存放主引导记录(MBR)的,因此也称MBR扇区. 一个扇区是512字节,因此MBR的大小也是512字节,其具体数据结构是:446个字节的引导代码.64个字节的分区表及2个字节的签名值"55AA". 由于MBR的分