扇区:每扇区固定的大小是512字节,外圈和里圈存放数据大小一致,都为512字节。
改进的扇区结构:ZBR扇区结构:内圈和外圈密度一致的结构
0磁道:最外圈的磁道称为0磁道,3盘片(有效盘面为6的话即有6个0磁道),有几个磁头就有几个0磁道。
一、磁盘寻址
磁盘寻址大小:
- CHS :24位寻址,最大可描述磁盘空间8GB
- LBA: 48位寻址,最大描述磁盘空间128PBB
CHS
(能描述的硬盘最大容量为8GB)
6-8-10 (24位寻址)
255 heads, 63 sectors/track, 26108 cylinders
6bit -一个磁道里有多少个扇区的个数,用6位来存放这个数值。(用6位二进制数来存,最大能存即2的6次方-64个)
8bit 一个硬盘上有多少个磁头,用一个8bit位来表示(最多即有2的8次方=256个)
10bit 用10bit位来存放磁道数,也等于柱面数。(最多即2的10次方=1024)
磁盘的容量计算:
用上述老的方法来计算就是
512字节(每扇区512)x 63 x 1024 x 255/1024/1024=8GB
LBA (48位寻址)
磁盘的容量当超出8GB用LBA来表示
0磁道0扇区
:存放分区信息512字节
- 前446bytes: boot loader,引导系统启动
- 中64bytes:存放分区表
- 16bytes: 标识一个分区(64字节总共标识了4个分区)
- 后2bytes: 55AA标识位,表示分区标识。
在Linux中如何查看一个磁盘是MBR分区还是GPT分区?
用fdisk -l
基本上,只要能够看到出现逻辑分区,从数字5开始的,就可以确认为MBR分区。因为GPT分区没有逻辑分区这一概念。它全部为主分区。
在CentOS7上,磁盘lable类型为dos则表示为MBR分区(6没有)
2)MBR的分区结构
查看分区的分区表
hexdump -C /dev/sdb -n 512
3)分析分区表-
0磁道0扇区存放信息的中间
64字节
中64bytes
:存放
分区表
- 16bytes: 标识一个分区(64字节总共标识了4个分区)
标识分区的16Bytes中每个Bytes含义?
第一个字节:8bit,引导标志,80表示活动分区,00表示非活动分区
第二个字节:8bit,磁头号,head,分区开始CHS位置
第三个字节:6bit,低六位表示扇区号,2bit,高二位表示柱面号,分区开始CHS位
第四个字节:10bit,与第三个字节高二位表示柱面号,分区开始CHS位置
第五个字节:8bit,分区类型,0表示分区未使用
第六个字节:对应第二个字节,分区结束CHS位置
第七个字节:对应第三个字节,分区结束CHS位置
第八个字节:对应第五个字节,分区结束CHS位置
第9-12个字节:分区开始的LBA地址
第12-16个字节:分区结束的LBA地址
4)备份分区表
由于分区表很重要,即
0磁道0扇区存放信息的
中间的64字节。如果这64字节被破坏了,系统将无法访问
备份“分区表‘方法
由于它不是文件,只是64字节的信息,因此备份不能按常规方法,只能备份这64字节,读二进制的方式,使用dd命令。
最简单的方法,把这512字节全都拿出来给它备份,生成一个文件备份
dd if=/dev/sdb of=/data/mbr_bak bs=1 count=512
查看备份好的文件
hexdump -C /data/mbr_bak
最后再把备份的分区表文件存放到其他共享上去,放到本机则就失去了备份分区表的意义(假如系统无法读取分区表二而无法启动备份了也没用)
备份到第三方目录上