硬盘基础知识及 MBR、GPT分区格式

一,硬盘知识

    硬盘接口类型:

         并行:

            IDE: 133MB/s

            SCSI: 640MB/s

         串口:

            SATA: 6Gbps(字节)

            SAS: 6Gbps

            USB: 480MB/s

    硬盘结构示意图:

        2.JPG

                  3.JPG

    

    硬盘专业术语:  

         rpm: rotations per minute  磁盘转速单位      

         head:磁头 =盘面数量   256个    8字节

         track:磁道 1024个磁道

         cylinder: 柱面  =track *head = 512*63*256=8m

         secotr: 扇区, 512bytes  一圈最多63个扇区

            —》 CHS  柱面磁头扇区寻址方式

        (linux 底层现用 LBA 线性寻址,LBA(Logical Block Addressing)逻辑块寻址模式

            (6以后,底层工作原理按LBA进行,但是表现为CHS 形式,

            LBA中允许将柱面分给多个分区,但是传统的CHS 不支持,

            6中可以精确到以扇区划分来规定分区大小)

    linux中的设备文件:

        磁盘设备的设备文件命名: /dev/DEV_FILE

            IDE:    /dev/hd

            SCSI, SATA, SAS, USB:     /dev/sd

            虚拟化中,为 /dev/vd*

            不同设备: a-z

            eg :    /dev/sda, /dev/sdb, …

            同一设备上的不同分区: 1,2, …

            /dev/sda1, /dev/sda5

            查询可用的磁盘设备

            图形化磁盘管理功能工具:

        点击“应用程序” ->“系统工具” ->“磁盘”或执行命令gnome-disks

            4.JPG

二.磁盘分区格式

     为什么要使用分区?

            • 优化I/O性能

            • 实现磁盘空间配额限制

            • 提高修复速度

            • 隔离系统和程序

            • 安装多个OS

            • 采用不同文件系统

     分区方式:

         两种分区方式: MBR, GPT

          MBR: Master Boot Record(主引导记录), 1982年, 使用32位表示扇区

             数, 分区不超过2T

           如何分区:按柱面

            0磁道0扇区: 共 512bytes(字节)

            前446bytes:         boot loader

            后续64bytes:分区表   ——》 导致只能有4个分区

                (即用于规定每个分区占用的chs信息)

            每16bytes: 标识一个分区

            2bytes: 55AA    –》MBR标识位

            ( 2个字节被填充了2个5A,MBR有效性标记)

            每个磁盘内,可以4个主分区; 3主分区+1扩展(N个逻辑分区)

    MBR分区结构

5.jpg

      mbt 备份示例:

            备份/dev/sda 的mbr    (dd用法见本笔记尾部)

            hexdump -C   以二进制形式查看内容

            6.jpg

      备份分区表:

            eg : 备份 /dev/sda 分区信息表

          7.jpg

      备份MBR有效位标志:

          8.jpg



    

    GPT分区

         GPT:GUID( Globals Unique Identifiers) partition

            table 支持128个分区,使用64位,支持8Z(512Byte/block )

            64Z (4096Byte/block)

            (没有主分区与逻辑分区之分)

         使用128位UUID 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位

         UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动

            (若无UEFI只能把磁盘作为存储,无法引导操作系统)

    GPT分区结构:

硬盘基础知识及 MBR、GPT分区格式    9.jpg

       EFI部分又可以分为4个区域: EFI信息区(GPT头)、分区表、 GPT分区、备份区域

    MBR 与 GPT 分区格式的区别:

        MBR分区表:

        在传统硬盘分区模式中,引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一扇区。它由三个部分组成,

      主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,第二部分是Partition table区(分区表),

      即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

        一个扇区的硬盘主引导记录MBR由4个部分组成。

        •主引导程序(偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序。

        •出错信息数据区,偏移地址0089H–00E1H为出错信息,00E2H–01BDH全为0字节。

        •分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH–01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、

         分区项3、分区项4。

        •结束标志字,偏移地址01FE–01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

        

        GPT分区表:

      GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区

     (Protective MBR)的MBR分区表(此分区并不必要),这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,

     在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。

原创文章,作者:ldt195175108,如若转载,请注明出处:http://www.178linux.com/40771

(1)
ldt195175108ldt195175108
上一篇 2016-09-19
下一篇 2016-09-19

相关推荐

  • grep及正则表达式相关练习

    grep及正则表达式相关练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel/ /home/tuser1 ~]# chmod -R 700 /home/tuser1 ~]# ls -ld /home/tuser1 drwx&#821…

    Linux干货 2016-10-11
  • btrfs管理及应用

    一、btrfs的命令选项     mkfs.btrfs         -L 'LABEL' 指定卷标         -d <type&…

    Linux干货 2016-03-12
  • 字符串处理

      一.字符串处理 v bash 的字符串处理工具: (一)字符串切片: ${#var}: 返回字符串变量var 的长度 例: [root@lxc ~]# a="     " [root@lxc ~]# echo ${#a} 5 [root@lxc ~]# ${var:offse…

    Linux干货 2016-11-24
  • 计算机的组成部分

    运算器:负责数据的运算和逻辑运算。 存储器:实现记忆功能的部件用来存放计算程序及参与运算的各种数据。 控制器:负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问。 输入设备:实现计算程序和原始数据的输入。 输出设备:实现计算结果输出。

    Linux干货 2017-08-19
  • 开源堡垒机-01-JumpServer的安装

    前段时间曾经用过JumpServer帮助一个客户完成了他的关于堡垒机的需求,由于当时赶进度,没来得及将整个过程记录和完善,现在抽时间慢慢整理下。 1)JumpServer的介绍 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 支持常见系统: Cent…

    Linux干货 2016-07-22
  • SHELL中的变量

    SHELL中的变量            运行SHELL脚本中的单个命令自然有用,但这有其自身的限制。通常你会需要在SHELL命令使用其他数据来处理信息。这可以通过变量来实现。变量允许你临时性地将信息存储在SHELL脚本中,以便和脚本中的其他命令一起使用。 1 环境变量…

    Linux干货 2017-04-16