LINUX学习之二磁盘篇
1、Linux系统中,每个设备都被当成一个文件来对待。文件系统的最小单位是区块(Block)
设备 | 设备在Linux中的文件名 |
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
U盘 | /dev/sd[a-p](与SATA相同) |
软驱 | |
打印机 | |
鼠标 | |
当前CD ROM/DVD ROM | |
当前鼠标 | |
磁带机 |
2、磁盘分区
2.1磁盘连接的方式与设备文件名的关系
个人计算机常见的磁盘接口有两种:IDE接口和SATA接口,目前主流是SATA接口。
以IDE接口来说,一个IDE扁平电缆可以连接两个IDE设备(Master主设备和Slave从设备),主机通常提供两个IDE接口(称为IDE1(Primary),IDE2(Secondary)),因此最多可以接到4个IDE设备。(如果已经有一个光盘设备了,那么最多还能再接3块IDE接口磁盘)。
四个设备的文件名如下表:
IDE\Jumper | Master | Slave |
IDE1(Primary) | /dev/hda | /dev/hdb |
IDE2(Slave) | /dev/hdc | /dev/hdd |
SATA/USB接口的磁盘没有固定顺序,只能根据Linux内核检测到磁盘的顺序。
问题:如果磁盘被分区,那么每个分区的设备文件名又是什么呢?先复习下面知识再来解答!
2.2磁盘的组成
磁盘主要由盘片、机械手臂、磁头、主轴马达组成。数据的写入是在盘面上,盘面分扇区(Sector 存储的最小单位)与柱面(Cylinder 分区的最小单位)两种单位,其中每个扇区512bytes。
整块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息,分别是:
(1)主引导分区(Master Boot Record,MBR):可以按照引导加载程序的地方,446bytes。MBR很重要,因为当系统在开机的时候会主动去读取这个区块的内容,这样系统才知道你的程序放在哪里且该如何进行开机。如果你要安装多重引导的系统,MBR的管理就非常重要了!如果MBR物理坏了,硬盘也就无用了。
(2)分区表(Partition Table):记录整块硬盘的分区状况,64bytes。
2.3磁盘分区表
分区的好处:数据的安全性和系统的性能
分区表的64bytes容量中,分为四组记录区,每组记录区记录了该区段的起始与结束柱面的号码。假设上面的硬盘设备文件名为/dev/hda,那么这四个分区的文件名依次是:
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4
第一扇区的64bytes分区表只能记录四条数据,所以最多只有四个主分区与扩展分区(磁盘的限制),扩展分区最多只有一个(操作系统的限制)。
扩展分区的目的是使用额外的扇区来记录分区信息,由扩展分区继续切出来的分区称为逻辑分区(逻辑分区设备名称号码由5开始,前四个号码保留给Primary主分区和Extended扩展分区),扩展分区本身并不能被拿来格式化。能够被格式化后作为数据访问的只有主分区和逻辑分区。
逻辑分区的数量易操作系统而不同,在Linux中,IDE硬盘最多59个逻辑分区(5~63),SATA硬盘有11个逻辑分区(5~15)。
例题:分区的整合?扩展分区的两个逻辑分区整合为一个,需要将两个分区删除,再重新创建一个新分区(不影响其他分区)。
一个主分区和一个逻辑分区不能整合。除非将扩展分区破坏后再重新分区(会导致所有逻辑分区被删除)。
2.4开机流程与主引导分区(MBR)
CMOS是记录各项硬件参数且嵌入在主板上的存储器,BIOS则是一个写入到主板上的韧体(韧体,即写入到硬件上的软件程序)。BIOS就是开机时计算机系统会主动执行的第一个程序。BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR里会放置最基本的引导加载程序(Boot loader),接下来就是MBR内的引导加载程序工作了。引导加载程序的目的是加载(load)内核文件。接下来就是内核文件工作了。之后就是大家所知道的操作系统的任务啦!
简单说来,整个开机流程到操作系统之前的动作是这样的:
(1)BIOS:开机主动执行,认识第一个可开机的设备;
(2)MBR:第一个可开机设备的第一扇区的MBR,内包含引导加载程序;
(3)引导加载程序(Boot loader):一支可读取内核文件来执行的软件
(4)内核文件:开始操作系统的功能。
BIOS和MBR都是硬件本身会支持的功能,Boot loader则是操作系统安装在MBR上的一套软件。Boot loader的主要任务:
(1)提供菜单:用户可选择不同的开机选项,是多重引导的重要功能;
(2)载入内核文件:直接指向可开机的程序区段来开始操作系统;(实际的可开机内核文件是放置到各个分区内的)
(3)转交其他loader:将引导加载功能转交个其他loader负责。(每个loader只认识自己的系统分区内的可开机内核文件以及其他loader)
硬盘只有一个MBR,但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector),每个分区都有自己的启动扇区这个特色造就“多重引导”的功能。
总结:每个分区有一个启动扇区(boot sector),每个启动扇区有一个引导加载程序(boot loader),每个引导加载程序可以载入本区的内核文件启动操作系统或者将控制转交给其他引导加载程序。
LINUX学习之二磁盘篇的更多相关文章
- Linux学习之二-Linux系统的目录结构
Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...
- Linux学习笔记(二) 文件管理
了解 Linux 系统基本的文件管理命令可以帮助我们更好的使用 Linux 系统,以下介绍几个常用的文件管理命令 1.pwd pwd 是 Print Working Directory 的简写,用于显 ...
- Linux学习之路—磁盘分区
1.各硬件设备在Linux中的文件名 在Linux系统中,每个设备都被当做一个文件来对待,同时在Linux系统中,几乎所有的硬件设备文件都在/dev这个目录中. 设备 设备在Linux内的文件名 ID ...
- linux学习(二)——汤哥的推荐书籍
成为一名精通 Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标. 根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows程序员的 1.8 倍.Java 程序员的 2. ...
- Linux学习之二——档案与目录的属性和权限
一.属性和权限的基本概念 Linux一般将档案可存取的身份分为三个类别,分别是 owner/group/others,这三种身份各有 read/write/execute 等权限. 所有的系统上的账号 ...
- Linux学习笔记12—磁盘管理
一.查看磁盘或目录的容量 1. df命令 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 参数: -I : 查看inodes使用状况 -h: 使用合适的 ...
- Linux学习之二十-Linux文件系统
Linux文件系统 文件系统的定义 文件系统是操作系统的必备软件,文件系统是对一个存储设备上的数据(block)和元数据(inode)进行组织的一种机制.文件系统可以帮助用户管理磁盘空间,进行文件的快 ...
- linux学习(二)认识Linux
一.Linux系统的组成 linux内核(linus 团队管理) shell:用户与内核交互的接口 文件系统:ext3.ext4等.windows 有 fat32 .ntfs 第三方应用软件 二.Li ...
- Linux学习日记(二)
在linux上运行.Net程序 并安装Linux网站 一.环境 ubuntu14.10(桌面版 官网下载的最新版) jexus5.6.3 正式版 MonoDevloper (安装完后里面有个Ubunt ...
随机推荐
- 1.2.2 OSI参考模型 上
一.HCNA网络技术学习指南 为了实现网络的互通及各种各样的网络应用,网络设备需要运行各种各样的协议已实现各种各样具体的功能.面对各种各样且数量繁多的功能,我们可以从网络架构的角度,引入功能分层的模型 ...
- selenium-server--chromedriver环境
x 准备环境: 1.selenium-server-standalone-3.8.1.jar 2.chromedriver.exe 一.查看本地电脑chrome浏览器版本信息: 二.访问代理地址:ht ...
- C语言 俄罗斯方块的实现1 全局变量
目录 全局变量 程序的模块化之MVC 关于俄罗斯方块的代码实现要点 使用数组表示背景和方块 方块表示及其初始化 要让游戏动起来 方块自动下落 全局变量 简而言之,定义在函数外的变量,就是全局变量. 所 ...
- nginx反向代理集群配置
#user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...
- PTA(Advanced Level)1046.Shortest Distance
The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t ...
- [转帖]【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
https://www.cnblogs.com/sxdcgaq8080/p/7487369.html 其实不同的 openjdk的版本也不一样. atlassian说AdoptOpenJDK我们测试充 ...
- [转帖]Linux查找文件6个高效工具
Linux查找文件6个高效工具 https://www.linuxrumen.com/rmxx/176.html 需要实操 -inname -type 等等. 1. 前言 我们使用Linux过程中,经 ...
- 什么是云数据库 HBase 版
云数据库 HBase 版(ApsaraDB for HBase)是基于 Hadoop 的一个分布式数据库,支持海量的PB级的大数据存储,适用于高吞吐的随机读写的场景.目前在阿里内部有数百个集群,100 ...
- 新建项目报错'/Users/yanguobin/IdeaProjects/Demo/pom.xml' already exists in VFS
出现该情况的原因:是删除的时候并没有删除干净,点击如下位置会清除Idea的本地代码历史,然后重新创建项目就可以了
- 前端html+css标签简介(可能就我自己看的懂-。-)
标签集合 # html 文字标签:修改样式 -<font></font> -属性:size:大小,范围1-7,大于7时默认7 color:颜色,英文单词或者十六进制(editp ...