2、Linux主机规划和硬盘分区

1、硬盘分区

1.1 硬盘设备名与主要组成部件

常见的硬盘类型有两种:SATASAS

由于SATA/USB/SAS等硬盘都是使用SCSI模组来驱动的,因此这些界面的硬盘设备文件名都是/dev/sd[ap]的格式。
硬盘设备名以Linux核心检测到的硬盘顺序来排序;(比如主板有6个SATA接口,SATA1接了一个硬盘,SATA5接了一个硬盘,USB接口接了一个U盘,那它们的设备名分别是:SATA1上的设备名为:/dev/sda、SATA5上的设备名为:/dev/sdb(而不是/dev/sde)、U盘的设备名为:/dev/sdc(开机后才会被系统识别到));

各类硬件在Linux下的文件名如下图:
Linux下各硬件的设备名

硬盘的组成主要有磁盘、机械手臂、磁盘读取头与主轴马达所组成,资料是写入在磁盘上面。磁盘上面又可细分出扇区(Sector)与磁道(Track)两种单位,其中扇区的物理量设计有两种大小,分别是512bytes与4Kbytes。最小存储单位是扇区(Sector);扇区组成的圆称为磁道(Track),所有硬盘上面的同一个磁道可以组成一个柱面(Cylinder),柱面是分割硬盘时的最小单位。


硬盘主要组成部件
磁盘示意图

SATA速度对比
Tips:

硬盘的第一个扇区记录了整个硬盘的重要信息!如传统的MBR(Master Boot Record),以及GPT(GUID Partition Table)这两种分区格式。

1.2 MBR与GPT硬盘分区表

  • MBR分区表格式与限制

MBR(Master Boot Record,主要开机记录区);
硬盘的第一个扇区存放着开机管理程序记录区和分区表;这个扇区通常是512bytes的大小,有以下两个资料:
(1)主要开机记录区(Master Boot Record,MBR):可以安装开机管理程序的地方,有446 bytes;
(2)分区表(partition table):记录整个硬盘分区的状态,有64 bytes;

最多只能有四个分区记录,即每个分区表仅为16bytes,每个分区表记录了该区段的启始与结束的柱面号码。

MBR主分区、扩展分区与逻辑分区的定义:
  1. 主分区与扩展分区最多可以有四个(硬盘的限制);
  2. 扩展分区最多只能有一个(操作系统的限制);
  3. 逻辑分区是由扩展分区分割出来的分区(只要删除扩展分区,所有的逻辑分区将被删除);
  4. 只有主分区和逻辑分区可以被格式化,扩展分区无法被格式化;
  5. 逻辑分区的数量在Linux中SATA硬盘可以突破63个以上的分区限制;
  6. /dev/sd[ap]1~4前面这四个号码都是保留给Primary或Extended用的;
  7. 逻辑分区的设备名号码从5开始;
MBR分区表限制有如下问题:
  1. 操作系统无法识别到2.2T以上的硬盘容量!
  2. MBR仅有一个区块,若被破坏后,经常无法或很难抢救。
  3. MBR存放开机管理程序的区块仅446bytes,无法容纳较多的程序码。
  • GUID partition table,GPT硬盘分区

过去的扇区大小是512bytes,目前有4K的扇区设计。为了兼容所有的硬盘,会使用逻辑区块地址(Logbical Block Address,LBA)来处理。GPT将硬盘所有区块以此LBA(默认为512bytes)来规划,而第一个LBA称为LBA0。

与MBR仅使用第一个512bytes区块来纪录不同,GPT使用了34个LBA区块来纪录分区信息。GPT除了前面34个LBA之外,整个磁盘的最后33个LBA也拿来作为另一个备份!(MBR只有一个区块,被干掉就死光光)


GPT分区表的结构示意图
上述图示说明如下:

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

• LBA1 (GPT 表头纪录)
这个部份纪录了分区表本身的位置与大小及备份用的GPT 分区的位置(最后34个LBA区块),同时放置了分区表的检验机制码(CRC32 ),操作系统可以根据这个检验码来判断GPT 是否正确。若有错误,还可以通过这个纪录区来获取备份的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;

Tips:
  1. GPT分区默认可以提供128笔记录;
  2. 目前Linux kernel通过udev等方式的处理,已经没有单个硬盘最多只能分15个分区的限制!
  3. 此外,GPT分区已经没有所谓的主、扩展、逻辑分区的概念,即每个分区都可以被格式化!
  4. fdisk这个软件识别不了GPT,需要使用 gdisk 或者 parted 才行!
  5. Linux开机管理程序 grub1 识别不了GPT,需要 grub2 以上版本;
  6. 是否能够读写GPT格式与开机的检测程序(即 BIOS 与 UEFI )有关!

1.3 开机流程中的BIOS与UEFI开机检测程序

  • BIOS搭配MBR/GPT的开机流程

CMOS是记录各项硬件参数且嵌入在主板上面的储存器(在主板上使用一颗纽扣电池单独供电),BIOS则是一个写入到主板上的一个固件(再次说明,固件就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候,电脑系统会主动执行的第一个程序!

从开机到操作系统之前的简要流程:

POST开机自检> BIOS分析电脑存在哪些存储设备>> 依据使用者的设置获取可以正常开机的硬盘>>> 读取硬盘的第一个扇区的MBR位置>>>> 接下来的工作交给MBR内的开机程序>>>>> 载入核心文件。

这个开机管理程序的目的是载入(load)核心文件(开机管理程序由操作系统安装时提供)。

Tips:
  1. LBA0仅提供第一阶段的开机管理程序,如果使用grub的开机管理程序的话,需要额外分出一个BIOS boot分区。在CentOS中,这个分区通常占用2MB左右。

  2. BIOS也能够从LBA0的MBR兼容区块读取第一阶段的开机管理程序,只要开机管理程序能够识别GPT,那么使用BIOS同样可以读取正确的操作系统核心。

  3. BIOS与MBR是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR上面的一套软件。

  4. boot loader主要任务项目如下:
    (1)提供选单:使用者可以选择不同的开机项目,这也是多系统的重要功能!
    (2)载入核心档案:直接指向可开机的程序区段来开始操作系统;
    (3)转交其他loader:将开机管理功能转交给其他loader负责。

硬盘只有一个MBR,但是开机管理程序除了可以安装在MBR之外,还可以安装在每个分区的开机扇区(boot sector)!这个特色才能造就『多系统』的功能。


Windows和Linux双系统图示
上图总结:
  1. 每个分区都拥有自己的开机扇区(boot sector);
  2. 图中的系统分区为第一和第二分区;
  3. 实际可开机的核心文件是放在各分区内的;
  4. Loader只会认识自己的系统分区内的可开机核心文件,以及其他loader而已;
  5. Loader可直接指向或者是间接将管理权转交给另一个管理程序。
Tips:

如果要安装Windows+Linux双系统,最好先安装Windows再安装Linux。因为Linux在安装的时候,你可以选择将开机管理程序安装在MBR或者其它分区的开机扇区,而且loader可以手动设置选单,所以可以在Linux的boot sector里面加入Windows的开机选项;Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在的分区的开机扇区,没有选择的机会,也没有选单功能。

  • UEFI BIOS搭配GPT开机的流程

    UEFI (Unified Extensible Firmware Interface) 统一可扩展固件接口,使用C语言编写;(传统的BIOS使用的是组合语言编写)
    传统BIOS与UEFI的区别如下图:
    传统BIOS与UEFI的区别

    由于过去cracker经常借由BIOS开机阶段来破坏系统,并取得系统的控制权,因此UEFI加入了一个所谓的安全启动(secure boot)机制,这个机制代表着即将开机的作业系统必须要被UEFI所验证,否则就无法顺利开机!微软用了很多这样的机制来管理硬件。加入这个机制后,许多的操作系统,包括Linux可能无法顺利开机。此时,需要关闭UEFI的secure boot功能,才能进入Linux。
Tips:
  1. 使用UEFI时建议依旧保留BIOS boot的分区支持;

  2. 为了与Windows兼容,并且提供给其它厂商使用的UEFI应用程序存储空间,必须要格式化一个vfat的文件系统,大约提供512M到1G左右的容量,以便让其他UEFI执行。

  3. 开机管理程序与核心放置在硬盘开始前的2TB位置即可!/boot目录的设备名变成/dev/sda3之后,不再是/dev/sda1。

1.4 Linux安装模式下,硬盘分区的选择(极重要)

  • 目录树结构(directory tree)

目录树结构是以根目录为主,然后向下呈现分支状的目录结构的一种档案架构。整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线『 / 』。

Linux目录树相关性示意图

比如想要获取到mydata这个文件,就必须从根目录开始找:/ >home >dmtsai >mydata;最终的文件名为:/home/dmtsai/mydata

  • 文件系统与目录树的关系(挂载)

所谓的『挂载』就是利用一个目录当成进入点,将硬盘分区的资料放置在该目录下;也就是说,进入该目录就可以读取该分区的意思。那个进入点的目录我们称为『挂载点』。根目录一定要挂载到某个分区,其它目录则按需求挂载。

目录树与分区之间的相关性

上图中假设当资料放置在 /home 目录时,资料是放置到partition2的。

判断某个文件在那个partition可透过反向追踪。如上图/home/vbird/test,由test--> vbird--> home--> /,看那个『进入点』先被查到那就是使用的进入点了。

初次接触Linux只要分『 / 』及『swap』即可,并预留备硬盘容量;

1.5 主机服务规划与硬件的关系

  • NAT(达成IP分享器的功能):
    Linux NAT可以额外的安装很多分析软件,可以用来分析用户端的连线,或者是用来控制带宽与流量,达到更公平的带宽使用。需要较好的网卡。

  • SAMBA(加入windows网上邻居):
    Windows邻居只能连接十个用户,使用SAMBA服务器可以将Linux加入Windows邻居,且不限连接数。可将 /home 独立出来。对网卡和硬盘容量有要求。

  • Mail(邮件服务器):
    可将/var独立出来。也是对网卡和硬盘容量有要求。

  • Web(WWW服务器):
    CentOS使用Apache这套软件来达成WWW网站的功能。CPU等级不能太低,最重要的是RAM!

  • DHCP(提供用户端自动获取IP的功能):

  • FTP
    对网卡和硬盘容量有要求。

重点回顾:
  1. 在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备名。

  2. 硬盘设备名通常分为两种,实际SATA/USB设备名为/dev/sd[ap],而虚拟机的设备可能为/dev/vd[ap];

  3. 硬盘的第一个扇区主要记录了两个重要的信息,分别是: (1)主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 bytes (1)分区表(partition table):记录整个硬盘分区的状态,有64 bytes;

  4. 硬盘的MBR 分区方式中,主要与扩展分割最多可以有四个,逻辑分区的设备名号码,一定由5号开始;

  5. 如果磁盘容量大于2TB 以上时,系统会自动使用GPT 分区方式来处理磁盘分区。

  6. GPT 分区已经没有扩展与逻辑分区的概念,你可以想像成所有的分区都是主分区!

  7. 某些操作系统要使用GPT 分区时,必须要搭配UEFI 的新型BIOS 格式才可安装使用。

  8. 开机的流程:BIOS-->MBR-->-->boot loader-->核心文件;

  9. boot loader的功能主要有:提供选单、载入核心、转交控制权给其他loader;

10.boot loader可以安装的地方有两个,分别是MBR 与boot sector;

  1. Linux操作系统的文件使用目录树系统,与磁盘的对应需要有『挂载』的动作才行;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,907评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,546评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,705评论 0 238
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,624评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,940评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,371评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,672评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,396评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,069评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,350评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,876评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,243评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,847评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,004评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,755评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,378评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,266评论 2 259

推荐阅读更多精彩内容