第二章、主机规划与磁盘分区

  • 磁盘分区

    • 磁盘连接的方式与装置文件名的关系

      • 正常的实体机器大概使用的都是 /dev/sd[a-] 的磁盘文件名,至于虚拟机环境底下,为了加速,可能就会使
        用 /dev/vd[a-p] 这种装置文件名

      • SATA/USB 接口的磁盘根本就没有一定的顺序,那如何决定他的装置文件名呢?
        根据 Linux 核心侦测到磁盘的顺序来决定文件名,这里鸟哥举了一个例题,“两个SATA硬盘和一个U盘插在主板上,SATA硬盘分别插在SATA1、SATA5上,问三个磁盘在linux中的文件名”,答“和插槽号没有关系,根据 Linux 核心侦测到磁盘的顺序来决定文件名,所以分别是/dev/sda、/dev/sdb、/dev/sdc(开机完成后才被捕捉到)”

      • 磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位, 其中扇区的物理量设计有两种大小,分别是 512bytes 与 4Kbytes。

    • MSDOS(MBR) 与 GPT 磁盘分区表(partition table)

      • 早期为了兼容windows磁盘使用的是支持windows的MBR(master boot record)来处理开机管理程序和分区表,开机管理程序和分区表通通放在第一个扇区,扇区通常是512bytes大小,所以第一个扇区会有以下两个数据:
        主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有 446 bytes
        分区表(partition table):记录整颗硬盘分区的状态,有 64 bytes

      • 分区表所在区块只有64bytes,所以最多分四组记录区(16字节一个),每组记录区记录了该区段的起始于结束的磁柱号码


        (这张图真的是生动形象,鸟哥大赞)
        假设上图中的硬盘文件名为/dev/sda1时,那么这四个分区在linux系统中的文件名为(档名后会再接一个数字,这个数字与分区的位置是有关的,真的很有意思
        P1:/dev/sda1
        P2:/dev/sda2
        P3:/dev/sda3
        P4:/dev/sda4

      • 由上得到几点重要启示
         1.其实所谓的『分区』只是针对那个 64 bytes 的分区表进行设定而已!
         2.硬盘默认的分区表仅能写入四组分区信息
         3.这四组分区信息我们称为主要(Primary)或延伸(Extended)分区槽
         4.分区槽的最小单位『通常』为磁柱(cylinder)
         5.当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区槽进行数据的处理

      • 分区的意义
        1.数据的安全性
        2.系统的效能考虑 (我要读取xx数据,只需要读取该分区的磁柱区间即可)

      • 延伸分区
        1.延伸分区的目的是使用额外的扇区来记录分区信息,延伸分区本身并不能被拿来格式化
        2.逻辑分区槽(延伸分区继续切出来的分区槽)的名称号码由5号开始(eg:P1:/dev/sda1,P2:/dev/sda2,L1:/dev/sda5)这是因为前四个号码都保留给主分区或者扩展分区了

      • MBR、主要分区、延伸分区、逻辑分区特性的简单定义
        1.主要分区与延伸分区最多可以有4笔(硬盘限制)
        2.延伸分区最多只能有一个(操作系统的限制)
        3.逻辑分区是由延伸分区持续切割出的分区槽
        4.能够被格式化后,作为数据存取的分区槽为主要分区与逻辑分区,延伸分区无法被格式化
        5.逻辑分区的数量因操作系统而不同

      • MBR的局限
        1.操作系统无法抓取到2.2T以上的内容
        2.MBR仅有一个区块,如损坏后无法或很难救援
        3.MBR内存放开机管理程序的区块仅446bytes,无法容纳较多的程序代码
        补充说明,为什么无法抓取到2.2T以上的磁盘容量呢,首先16个字节的分区信息中都有什么呢,16个字节的分区信息保存有分区活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容。这里最重要的是:分区的起始扇区位置与分区的总扇区数,都是用4个字节表示的,而这一分区最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示

    • GUID partition table,GPT磁盘分区表

      • 为了兼容所有的磁盘,在扇区的定义上,大多使用LBA(Logical Block Address 逻辑区块地址)来处理,GPT将磁盘所有区块以此LBA(预设为512bytes)来规划,由LBA0开始编号

      • MBR仅使用第一个512bytes去开来记录,GPT使用了34个LBA区块来记录分区信息


      • LBA0(MBR相容区块)
        分为两部分
        1.446bytes储存第一阶段的开机管理程序
        2.原本分区表的记录区内,这个兼容模式仅放入一个特殊标志的分区(表示老子这个磁盘是GPT格式,不认识GPT分区表的磁盘管理程序请走开)

      • LBA1(GPT 表头记录)
        1.记录了分区表本身的位置与大小
        2.记录了备份用GPT分区的位置
        3.放置了分区表的检验机制码,操作系统以此来判断GPT正确性,若错误,则透过此记录区取得备份的GPT回复GPT 的正常运作

      • LBA2-33(实际记录分区信息处)
        从LBA2开始,每个LBA可记录4比分区记录,默认情况下可有4*32比分区记录,每笔记录中分别提供64bits来记录开始/结束扇区号码

      • 注意
        1.磁盘管理工具fdisk不认识GPT,需使用gdisk或parted指令
        2.grub第一版不认识GPT,grub2后认识

    • 开机流程中的BIOS与UFFI开机检测程序

      • 大致开机流程
        1.BIOS:开机主动执行的程序(根据设定取得能够开机的硬盘,并到该硬盘读取第一个扇区的MBR位置)
        2.MBR:主要启动记录区块,内含开机管理程序
        3.开机管理程序(boot loader):一个可读取核心文件来执行软件
        4.核心文件,开始操作系统的功能...

      • LBA0仅提供第一阶段开机管理程序代码,如果使用类似grub的的开机管理程序,需额外分出一个BIOS boot的分区槽防止其他开机过程中的其他代码,CentOS中通常占用2MB

      • boot loader的主要任务
        1.提供选项:用户可选择不同的开机项目,这也是多重引导的重要功能
        2.载入核心文件:直接指向可开机的程序区段开始操作系统
        3.转交其他loader:将开机管理功能转交给其他loader(开机管理程序除了可以安装在MBR,还可以安装再每个分区槽的启动扇区(boot sector))--造就了多重引导功能

      • 多重引导工作的总结
        1.每个分区槽都拥有自己的启动扇区(boot sector)
        2.实际可开机的核心文件是放置到各分区槽的
        3.loader只认识自己系统槽内的可开机核心文件以及其他loader
        4.loader可直接指向或者是间接将管理权移交给另一个管理程序
        5.多重引导为什么先安装windows再安装linux呢,因为windows安装程序会主动覆盖MBR及自己所在分区槽的启动扇区,并没有提供给我们选择的功能

      • UFFI BIOS搭配GPT开机流程(用到再说)


    • linux安装模式下,磁盘分区的选择

      • 文件系统与目录树的关系
        1.挂载:利用一个目录当作进入点,将磁盘分区槽内的数据放置再该目录下,这个动作即为挂载,这个进入点即为挂载点

  • 安装Linux前的规划

    (没什么笔记,按需定制)

  • 重点回顾

    • 磁盘文件通常分为两种,实际SATA/USB文件名为/dev/sd[a-p],虚拟机中的文件名可能为/dev/vd[a-p]
    • 磁盘的第一个扇区主要记录两个重要信息
      1.主要启动记录区(MBR),446字节,可安装开机管理程序的地方
      2.分区表(partition table),64字节,记录整颗硬盘分区的状态
    • 磁盘的MBR分区方式中,主分区和扩展分区最多可以有4个,逻辑分区的文件名号码一定由5开始
    • 磁盘容量大于2TB时,系统会自动使用GPT分区方式来处理磁盘分区
    • GPT分区无扩展分区与逻辑分区的概念,可假设所有分区都是主分区
    • 开机的流程:BIOS-->MBR-->boot loader-->核心文件
    • boot loader可以安装的地点有两个,MBR和boot sector
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 1 概述 本文通过对讲解了磁盘的基本概念,分区,创建文件系统,挂载,卸载等步骤进行讲解。使得用户能够创建基本的磁盘...
    ghbsunny阅读 1,507评论 0 0
  • 导读目录 硬盘的组成 硬盘的物理结构主要针对的是机械硬盘及其内部的结构加以介绍,以下内容可能不是硬盘内部全部的部件...
    香吉矢阅读 4,061评论 0 12
  • 磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成,而数据的写入其实是在磁盘盘上面。 磁盘盘上面又可细分...
    ywhu阅读 814评论 1 0
  • 1、Linux 与硬件搭配 在安装Linux之前,你最好了解你的Linux预计是想达成什么任务,这样在选购硬件的时...
    Zhang21阅读 1,056评论 0 1
  • 需求:项目制定了一个theme theme中有一个item为"bottomcolor" 我们需要在java代码中得...
    CarlWu_S阅读 384评论 0 0