[磁盘管理与分区]——关于分区、磁盘分区表、MBR
磁盘连接与设备文件名的关系
1. 如下图所示:
2. 应当注意的是:系统是使用检测到的顺序来决定设备文件名的
关于分区
1. 如何理解分区?
我们知道一块硬盘是存储数据的。分区只是为了对这块硬盘做出更好的管理。
不同的分区机制(MSDOS/GPT)是不同的一些分区理念。
分区之后要进行“格式化”这块硬盘才能真正的存储数据,不同的格式化方法,就是不同的“文件系统”类型。
2. 如何理解分区以柱面为粒度?
分区时要考虑柱面因素,分区总是结束在柱面的最后一个扇区,也就是说分区总是结束在某个柱面的254磁头63扇区。
这就解释了为什么你要求的分区大小和实际分区大小总是有些小小的误差,例如你要分一个区是200M,操作系统在分区时考虑的是这个分区到到哪个柱面结束离你的要求误差最小。这种以柱面为粒度的分区方式肯定会有误差,误差不会超过半个柱面,一个柱面的大小是 255磁头×63扇区×512字节=7.8M
磁盘分区表partition table
1. 分区表中记录着什么?
64bytes中分为四组记录区,每组记录区记录了该区段的起始和结束的柱面号码
2. 主分区、扩展分区、逻辑分区
由于分区表只有64bytes,所以最多只能记录四组分区信息。这四组分区可以称为主分区(Primary)或扩展分区(Extended)。
主分区不能再划分了,但是扩展分区可以再划分,称之为逻辑分区(logical partition)
扩展分区的实质上是使用额外的扇区来记录分区信息
3. 关于分区我们要知道的?
(1)所谓的"分区"实际上就是针对这64bytes的DPT来进行设置
(2)由于分区表的限制,所以主分区和扩展分区总共只能有四个
(3)由于操作系统的限制,所以扩展分区最多只能有一个
(4)逻辑分区的数量不同操作系统不一样,Linux中的SATA硬盘有11个逻辑分区(5号—15号)
(5)主分区和逻辑分区可以被格式化后来存储数据,扩展分区是不能格式化的
(6)关于分区的编号:1号—4号是预留给主分区/扩展分区的,逻辑分区从5号开始
例如:
两种分区机制
1. MSDOS/MBR分区机制
MBR分区机制对分区的数量和分区的大小都有限制(IDE64,SATA16)
(1)主分区:最多只能有4个,且大小不超过2T;主分区下不能再分了
(2)扩展分区:相当于一个特殊的主分区,不能存数据,扩展分区下划分为逻辑分区
(3)逻辑分区:编号无条件从"5"开始
2. GPT分区机制
(1)对分区的数量和分区的大小没有什么限制(所以适用于大型的服务器)
(2)但windows最多只是128GPT分区
MBR
1. 磁盘的第一个扇区(512bytes)记录了什么?
(1)主引导记录MBR:446字节
(2)硬盘分区表DPT:64字节
(3)分区结束标记:2字节
2. 操作系统是一个系统软件,那么计算机是如何找到操作系统软件并执行它的?这个过程当中MBR起到了什么样的作用?
(1)开机时计算机主动执行的第一个程序是BIOS
(2)BIOS会分析计算机里有哪些存储设备,假设我们设置了从硬盘引导启动,BIOS会依据用户的设置去取得开机的硬盘
(3)到这个硬盘里面去读取第一个扇区的MBR,MBR存放着最基本的引导加载程序(Boot loader)
(4)然后通过这个引导加载程序(grub)去加载(load)内核文件
(5)引导加载程序是操作系统在安装在MBR上的,所以它会识别硬盘内的文件系统格式,所以能够读取内核文件
(6)再之后就会开始操作系统的任务
关于Boot Loader
1. boot loader的主要任务:
(1)提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能
(2)载入内核文件:直接指向可开机的程序区段来开始操作系统
(3)转交其他loader:将引导加载功能转交给其他loader来负责
2. 从一个例子去理解多重引导
引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector),这才能造就出"多重引导"的功能。如图所示:
这个硬盘中分成了四个分区,第一、二个分区分别安装了Windows和Linux,整个引导流程是这样的:
(1)在MBR中的引导加载程序提供了两个菜单:
M1——直接加载Windows的内核文件
M2——将引导加载工作转交给第二分区的启动扇区
(2)如果用户选择M1,则直接启动Windows系统
(3)如果用户选择M2,整个引导加载工作就会交给第二分区的启动扇区中的这个引导加载程序
(4)这个引导加载程序加载Linux的内核文件,实现启动Linux系统
3. 由上可总结得:
(1)每个分区都有自己的启动扇区/引导扇区(boot sector)
(2)实际可开机的内核文件是放置到各个分区内的
(3)loader只会认识自己系统分区内的内核文件,和别的分区的loader
(4)loader可直接指向或者间接将引导加载工作转交给另一个loader
[磁盘管理与分区]——关于分区、磁盘分区表、MBR的更多相关文章
- linux 磁盘管理三部曲——(1)磁盘结构,认识分区
最近小编整理了磁盘管理的相关知识,发现还是挺多的,所有就分了三个部分来给大家分享一下: 1.磁盘结构,认识分区 2.管理分区,文件系统格式化 3.mount挂载,/etc/fstab配置文件 这篇就先 ...
- 磁盘管理|df、du|分区 fdisk |格式化
3.磁盘管理 3.1命令df ·用于查看已挂载磁盘的总容量,使用容量,剩余容量等. -i:查看inodes的使用情况 -h:使用合适的单位显示 -k:以KB为单位显示 -m:以MB为单位显示 3.1. ...
- 用Win7自带的磁盘管理工具给硬盘分区
最近新买了一台笔记本,要给硬盘分几个区,心想还是用个工具方便点,于是就上网准备下个“硬盘分区魔术师”,但是看到有一篇文章介绍Win7系统也自带了硬盘分区工具,这我以前倒没听说过,试了一下,还挺方便好用 ...
- 磁盘管理之 raid 文件系统 分区
第1章 RAID 磁盘阵列 1.1 使用raid的目的 1)获得更大的容量 2)让数据更安全 3)读写速度更快 1.2 raid0.raid1.raid5.raid10对比 磁头 0磁道 1扇区 前4 ...
- Linux学习笔记(十三)磁盘管理(一):磁盘分区
一.查看磁盘分区使用状况 df [选项] 其中,-l是默认选项 -a 会显示出包括0字节分区在内的所有文件系统分区 -t 后须跟一个参数,这个参数为文件系统的名字,用来在系统中查找属于该文件系统的分区 ...
- Disk:磁盘管理之LVM和系统磁盘扩容
简介 小伙伴们好,好久不见,今天想给大家介绍一下关于磁盘管理的方法和心得:磁盘管理可谓运维工作中的重要内容,主要包括磁盘的合理规划以及扩缩容 常用的磁盘管理方法为LVM(Logical Volume ...
- 解决装系统选中的磁盘采用的是GPT分区形式
今天给服务器重装系统碰到的问题,记录一下 当时是按正常的操作:到了装系统选盘的时候是找不到盘符的,加载了raid驱动,然后顺利找到盘符,然后格式化了以前的C盘, 结果无法选中格式化后的C盘,无法下一步 ...
- Linux学习之十九-Linux磁盘管理
Linux磁盘管理 1.相关知识 磁盘,是计算机硬件中不可或缺的部分磁盘,是计算机的外部存储器中类似磁带的装置,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失 ...
- Linux中磁盘管理与三剑客之awk初识
昨日内容回顾 1.用两种方法实现 将文件中以 # 开头的行 把 # 去掉 sed -r 's/^ *#//g' /etc/fstab cat /etc/fstab | tr -d '^#' 2.将文件 ...
- linux磁盘管理(全面解析)
目录 一:磁盘管理 1.磁盘管理作用 2.磁盘挂载顺序 3.磁盘分区 4.Linux 磁盘管理常用命令 5.磁盘分区内容 二:linux中分区的意义 三:分区的步骤与顺序 1.添加磁盘 2.查看创建新 ...
随机推荐
- .net框架版本说明
.NET框架 1.0..NET框架 1.1..NET框架 2.0..NET框架 3.0..NET框架 3.5..NET框架 4.00 .netframework3.0Windows Presentat ...
- angular $apply()以及$digest()讲解
重点的东西放上面,说三遍: 记住的最重要的是ng是否能检测到你对于model的修改.如果它不能检测到,那么你就需要手动地调用$apply()! 记住的最重要的是ng是否能检测到你对于model的修改. ...
- linux 文本处理
tr,awk,sed 一:tr 1.大小写转换 cat file | tr [a-z] [A-Z] > new_file(大写 --> 小写) cat file | tr [A-Z] [a ...
- Unable to add App ID because the '10' App ID limit in '7' days has been exceeded.
Unable to add App ID because the '10' App ID limit in '7' days has been exceeded. 官方的原因是对bundle iden ...
- JMeter2.13 连接 sql server
1.安装驱动 http://www.microsoft.com/zh-CN/download/details.aspx?id=11774 下载最新的即可 解压后复制势穷力竭sqljdbc.jar到 “ ...
- javascript oo实现(转)
javascript oo实现 By purplebamboo 7月 13 2014 更新日期:8月 21 2014 文章目录 1. 原始时代最简单的oo实现 2. 石器时代的oo实现 3. 工业时代 ...
- [原]Django慢请求分析工具--dogslow
当你的网站突然变慢了,你怎么办? 先看监控,查看系统的资源消耗,CPU?IO?磁盘? 然后看日志,查看第一个出现慢请求的接口是哪个? 然后看依赖的服务,是第三方服务还是DB瓶颈,还是redis变慢,还 ...
- js动态显示可输入字数并提示还可以输入的字数
动态显示可输入的字数提示还可以输入的字数. 代码: <input name="title" type="text" size="50" ...
- VPN连接失败
连接VPN是总提示 本来我以为是VPN服务器的问题,可是别人就能连接成功,所以只能是我自己机子的问题.后来检查了一下连接属性,终于发现了问题: 这里“允许使用这些协议”应该是处于选中状态,而我的属性里 ...
- 用序列化工具写入xml
标本: <?xml version="1.0" encoding="UTF-8" standalone="true"?> //文 ...