zoukankan      html  css  js  c++  java
  • linux磁盘分区笔记

    磁盘基本概念:

    硬盘结构:盘片+磁头(盘片可以有多个),工作时盘片高速运转,磁头读取数据

    U盘、SSD固态硬盘是用闪存来制作的设备,没有盘片和磁头

    Linux磁盘文件名:

    Linux所有设备都抽象为文件保存在 /dev 目录下

    早期的IDE接口的磁盘在linux中的文件名为 /dev/hd[a-z]

    SATA/USB/SAS 等磁盘接口都是使用SCSI模块来驱动,因此这些接口的磁盘装置文件都为:/dev/sd[a-z],

    不过近年来大部分linux发行版本已经将IDE界面的磁盘文件名也仿真成SATA一样了,所以不必再关心不同接口磁盘装置文件名问题了,不过还有虚拟磁盘;

    虚拟磁盘的文件名为:/dev/vd[a-p]

    如果你的电脑上插了多个磁盘,这时就要根据Linux核心侦测到磁盘的顺序来决定他的装置文件名了。(跟实际插槽代号无关)

    磁盘分区机制:

    主流的磁盘分区机制有两种:

    MBR(Master Boot Record)格式和 GPT(GUID partition table)格式;

    分区是软件概念;

    MBR的分区格式:

    早期的Linux系统为了兼容Windows的磁盘,使用的是支持Windows的MBR的方式来处理开机管理程序与分区表;

    开机管理记录和分区表通通放在磁盘的第一个扇区,这个扇区通常是512bytes大小,里面保存了这两个数据:

    1、主要启动记录区:可以安装开机管理程序的地方,有446bytes

    2、分区表:记录整颗分区的状态,有64bytes

    其实所谓的 分区 只是针对那个64bytes的分区表进行设定而已

    MBR支持的分区数量有限:四个分区记录(主分区或扩展分区);

    MBR分区机制大多使用在BIOS的PC设备;

    MBR支持32bit和64bit;

    MBR只能分区2.2T的硬盘,超过2T的硬盘将只能使用2.2T空间(有第三方工具可以解决);

    将硬盘分区超过四个分区槽:

     在上图中,硬盘的四个分区记录只适用了两个,P1为主分区(Primary),P2为扩展分区(Extended),然后在扩展分区内继续做分区的记录,

    这五个由扩展分区继续切出来的分区,称为逻辑分区(Logical partition)

    注意:

    扩展分区是不能被格式化的(它是不能用的),它的作用就是占用一个主分区,然后区分成多个逻辑分区

    上图的分区槽在linux系统中的装置文件名分别如下:

    P1:/dev/sda1

    P2:/dev/sda2

    L1:/dev/sda5

    L2:/dev/sda6

    L3:/dev/sda7

    L4:/dev/sda8

    L5:/dev/sda9

    为什么没有 /dev/sda3 和 /dev/sda4 呢?

    因为前面四个号码都是保留给主分区或扩展分区用的!逻辑分区的装置名称号码都是由5号开始

    由于硬盘的第一个扇区所记录的是分区表和MBR,而且只要读取硬盘都会先由这个扇区读起,所以如果硬盘的第一个扇区物理实体坏掉了,那这个硬盘就没用了

    GPT分区格式:

    过去一个扇区大小是512bytes,现在已经有4k的扇区设计出现。为了兼容所有的硬盘,在扇区的定义上,大多会使用逻辑区块地址(Logical Block Address,LBA)来处理,GPT将硬盘所有区块以此LBA来规划,第一个LBA称为LBA0(从0开始编号)

    GPT使用了34个LBA区块来记录分区!同时与过去MBR仅有一的区块,被干掉就死光光的情况不同, GPT除了前面34个LBA之外,整个硬盘的最后33个LBA也拿来作为另一个备份

    LBA0 (MBR 相容区块)

    与MBR模式相似的,这个相容区块也分为两个部份,一个就是跟之前446 bytes相似的区块,储存了第一阶段的开机管理程式而在原本的分区表的记录区内,这个相容模式仅放入一个特殊标志的分割,用来表示此硬盘为GPT格式之意。

    LBA1 (GPT 表头纪录)

    这个部份记录了分区表本身的位置与大小,同时纪录了备份用的GPT分割,, 同时放置了分区表的检验机制码(CRC32 ),作业系统可以根据这个检验码来判断GPT 是否正确。若有错误,还可以通过这个记录区来取得备份的GPT

    LBA2-33 (实际记录分区数据处)

    从LBA2区块开始,每个LBA都可以记录4笔分割记录,所以在预设的情况下,总共可以有4*32 = 128笔分割记录喔因为每个LBA有512bytes,因此每笔记录用到128 bytes的空间,除了每笔记录所需要的识别码与相关的记录之外,GPT在每笔记录中分别提供了64bits来记载开始/结束的磁区号码,因此,GPT分割表对于单一分割槽来说,他的最大容量限制就会在『 2 64 * 512bytes = 2 63 * 1Kbytes = 2 33 *TB = 8 ZB 』,要注意1ZB = 2 30 TB

    GPT 分区已经没有所谓的主分区、扩展分区、逻辑分区的概念,每一个分区都可以拿来格式化使用

    GPT向后兼容MBR

    必须使用64位

    GPT必须在支持UEFI的硬盘上才能使用

    FDISK分区工具:

    fdisk是一个基于MBR的分区工具,它是无法使用GPT格式分区的

  • 相关阅读:
    22、闭包与继承
    合并两个有序链表
    7. 整数反转
    Linux grep命令
    认识与学习BASH
    微信支付-H5网页支付开通流程
    解决 Qt5 报错 This application failed to start because it could not find or load the Qt platform plugin
    Linux 创建交换分区扩展虚拟内存
    Linux 逻辑卷管理LVM
    Linux的文件权限
  • 原文地址:https://www.cnblogs.com/nicece/p/9958125.html
Copyright © 2011-2022 走看看