磁盘相关概念

这场易碎的雨季 用节奏轻快的鼓点 在敲打过去

  • 图片1
  • 磁盘结构
    • head:磁头,磁头数量等于盘面数量
    • track:磁道,磁盘的一圈为一条磁道
    • cylinder:柱面,柱面由磁盘的所有同一磁道组成,0磁道组成0柱面,1磁道组成1柱面….
    • secotr:扇区,512bytes
    • 图片1
    • 磁盘与扇区的进化
      • 不同磁道的扇区数是否相同(磁盘的记录方式有两种)
        • 旧式——非分区记录方式(不同磁道扇区数相同)这图是旧的记录方式,越往外面,扇区的面积越大,每个磁道所拥有的扇区数量都是一样的,而且每个扇区所能容纳的数据量是相同的,都是512字节,而数据量需要平均分配在扇区面积的每个角落,所以外面扇区的数据密度低,里面扇区的速度密度高,可以这样理解,同样512个人,全站在篮球场上人口密度变高,但站在足球场上人口密度会变低,这样结果是浪费了外围扇区的大面积,也就是能容纳上千人的足球场只站了512个人,所以有了另外一种解决方案,分区记录方式(ZBR)
        • 图片1
          • 旧式磁盘的容量公式为: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
        • 新式——分区记录方式(不同磁道扇区数不同),现在的硬盘都使用ZBR(ZonedBitRecording分区域记录)技术;新的解决方式认为,既然磁盘越往外面积越大,那就应该划分出更多的扇区,每个扇区的面积都是一样的,容纳的数据量也是一样的
        • 图片1
        • 例:如果有一块空硬盘,写入一个文件,是不是先写满同一个磁道的所有扇区,然后再换一个磁道写入?
          • 是的,而且写入的方式是从外到内,先写满最外的磁道,接着再写里面的磁道,为什么硬盘用久了读写速度会变慢?因为外面的磁道使用完了,开始用里面的磁道,越是里面的磁道读写速度越慢,同样的时间,读写头在外面磁道可以扫过10个扇区的面积,读写10个扇区的数据,但在里面的磁道只能扫过1个扇区的面积,读写1个扇区的数据,所以这时该做磁盘整理或者格式化,这会使外面的磁道得到使用
  • 磁盘分区
    • 在磁盘上以扇区为单位划分,是在磁盘上建立的逻辑边界,可以在每个分区中创建不同的文件系统以前划分分区是按照柱面来划分分区,现在从centos6后就以扇区为单位来划分分区
    • 磁盘分区的划分方式:MBR式,GPT式
      • MBR:82年时候古老的分区方式,用2^32表示扇区数,分区不超过2T
      • GPT:
    • MBR方式划分法:主引导记录(512bytes)在磁盘的0盘面0磁道0扇区(MBR不属于磁盘分区),如果一个操作系统的bootloader已经占据了MBR,要再装入另外的操作系统B,则B的bootloader和分区表可以在前一个操作系统所占据分区的bootblock(bootblock的位置在任何一个分区的第0个块,多系统互存时使用,这个块不能被使用,是引导块)中,但是如果MBR中没有数据,即便是bootblock中有操作系统的bootloader,这个bootblock中的操作系统也启动不起来
      • MBR的三个部分:
        • bootloader引导加载器(446bytes):是grub第一阶段引导程序代码所在位置,可以引导操作系统启动如果有多块硬盘,bootloader只放在第一块磁盘的第一个分区的0号扇区,其他磁盘的第一个分区的0号扇区不存放bootloader,只放分区表,前面446字节不会使用
        • 分区表(64bytes),只存放主分区和扩展分区的信息,不放逻辑分区:
          • 每16bytes标识一个分区的起始位置,结束位置一共只能标识四个分区,所以硬盘上只能划分四个主分区,主分区 + 扩展分区 <= 4
          • 为什么需要扩展分区:如果磁盘200G,四个主分区都是20G,则剩下的空间就无法使用
          • 怎么来实现扩展分区:将其中的16bytes用来存储一个指针,而不存放分区信息,指针指向磁盘的更大的空间,这个更大的空间用来放的额外的分区信息,这样的分区就变成了扩展分区(扩展分区在一个系统上只能有一个)
        • 55AA :Magic number(2bytes),标记MBR是否有效
      • 查看磁盘的MBR:hexdump -C -n 512 /dev/sda
      • 备份MBR:dd if=/dev/sda of=/backup/mbr bs=1 count=512
      • 克隆sda的分区表到另外的磁盘:dd if=/dev/sda of=/dev/sdb bs=1 count=66 skip=446 seek=446
        • 只是将分区表复制到了别的磁盘,系统能够识别被复制磁盘的分区,但没有真正的分区
      • MBR分区方式的结构图:
      • 图片1

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101735

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code