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

1、硬盘分区

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

常见的硬盘类型有两种:SATA和SAS;

由于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下的文件名如下图:

023bcbea8d66

Linux下各硬件的设备名

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

023bcbea8d66

硬盘主要组成部件

023bcbea8d66

磁盘示意图

023bcbea8d66

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主分区、扩展分区与逻辑分区的定义:

主分区与扩展分区最多可以有四个(硬盘的限制);

扩展分区最多只能有一个(操作系统的限制);

逻辑分区是由扩展分区分割出来的分区(只要删除扩展分区,所有的逻辑分区将被删除);

只有主分区和逻辑分区可以被格式化,扩展分区无法被格式化;

逻辑分区的数量在Linux中SATA硬盘可以突破63个以上的分区限制;

/dev/sd[ap]1~4前面这四个号码都是保留给Primary或Extended用的;

逻辑分区的设备名号码从5开始;

MBR分区表限制有如下问题:

操作系统无法识别到2.2T以上的硬盘容量!

MBR仅有一个区块,若被破坏后,经常无法或很难抢救。

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只有一个区块,被干掉就死光光)

023bcbea8d66

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:

GPT分区默认可以提供128笔记录;

目前Linux kernel通过udev等方式的处理,已经没有单个硬盘最多只能分15个分区的限制!

此外,GPT分区已经没有所谓的主、扩展、逻辑分区的概念,即每个分区都可以被格式化!

fdisk这个软件识别不了GPT,需要使用 gdisk 或者 parted 才行!

Linux开机管理程序 grub1 识别不了GPT,需要 grub2 以上版本;

是否能够读写GPT格式与开机的检测程序(即 BIOS 与 UEFI )有关!

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

BIOS搭配MBR/GPT的开机流程

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

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

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

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

Tips:

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

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

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

boot loader主要任务项目如下:

(1)提供选单:使用者可以选择不同的开机项目,这也是多系统的重要功能!

(2)载入核心档案:直接指向可开机的程序区段来开始操作系统;

(3)转交其他loader:将开机管理功能转交给其他loader负责。

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

023bcbea8d66

Windows和Linux双系统图示

上图总结:

每个分区都拥有自己的开机扇区(boot sector);

图中的系统分区为第一和第二分区;

实际可开机的核心文件是放在各分区内的;

Loader只会认识自己的系统分区内的可开机核心文件,以及其他loader而已;

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的区别如下图:

023bcbea8d66

传统BIOS与UEFI的区别

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

Tips:

使用UEFI时建议依旧保留BIOS boot的分区支持;

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

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

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

目录树结构(directory tree)

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

023bcbea8d66

Linux目录树相关性示意图

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

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

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

023bcbea8d66

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

上图中假设当资料放置在 /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

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

重点回顾:

在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备名。

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

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

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

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

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

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

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

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

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

Linux操作系统的文件使用目录树系统,与磁盘的对应需要有『挂载』的动作才行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值