MBR和GPT原理:
MBR原理:
主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。
通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。主引导扇区由三个部分组成(共占用512个字节):
1.主引导程序即主引导记录(MBR)(占446个字节)
可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。
2.磁盘分区表项(DPT,Disk Partition Table)
由四个分区表项构成(每个16个字节)。
负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。(具体内容略)
3.结束标志(占2个字节)
其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。
因为有4个分区表,所以最多只能识别4个主要分区。想要得到更多分区,只能通过扩展扩展分区。扩展分区是主分区的一种。它与主分区的不同在于理论上可以划分为无数逻辑分区,每一个逻辑分区都有一个和MBR结果类似的扩展引导记录。
在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
在Linux系统中:
硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。 在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT。
在Windows中:
MBR的意思是“主引导记录”,是IBM公司早年间提出的。它是存在于磁盘驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动系统。如果你安装了Windows,其启动信息就放在这一段代码中——如果MBR的信息损坏或误删就不能正常启动Windows,这时候你就需要找一个引导修复软件工具来修复它就可以了。Linux系统中MBR通常会是GRUB加载器。MBR。当一台电脑启动时,它会先启动主板自带的BIOS系统,bios加载MBR,MBR再启动Windows,这就是mbr的启动过程。
GPT原理:
GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
GPT格式支持大于2TB的硬盘。支持128个分区。理论上GPT格式可以无限划分分区(128以上),但是如果划分的过多的话,好像128之后的分区就不能够格式化使用了。
MBR与GPT对比:
类别 | 主引导方式 | 主分区数量 | 主引导方式 | 最大容量 | 分区方法 |
---|---|---|---|---|---|
MBR | BIOS+MBR | 4 | 2T | 32和64 | fdisk |
GPT | UEFI+GPT | 128 | 18EB(1EB=1024PB=1048576TB) | UEFI+GPT | UEFI+GPT |
Parted分区和创建逻辑卷LVM
Parted分区
#查看所有磁盘状态
parted -l
#通过parted工具来创建大于2T的分区
parted /dev/sda
(parted) 输入mklabel #创建创建磁盘标签
New disk labeltype? 输入gpt
(parted) 输入p #查看分区状态
(parted) 输入mkpart
Partition name? []? 输入sda1 #指定分区名称
File system type? [ext2] 输入ext3 #指定分区类型
Start? 输入1 #指定开始位置
End? 输入4096GB #指定结束位置
(parted) 输入P #显示分区信息
(parted) 输入Q #退出
如果多块磁盘,按上面操作每块磁盘创建一个分区,我三块磁盘为sda,sdb,sdc。分别创建了sda1,sdb1,sdc1分区。
创建逻辑卷和挂载
#查看分区
fdiks -l
#创建pv物理卷
pvcreate /dev/sda1
pvcreate /dev/sdb1
pvcreate /dev/sdc1
#创建vg卷组
vgcreate vgdata /dev/sda1
#或者将三个分区创建一个vg卷组(用于多磁盘挂载同一目录)
vgcreate vgdata /dev/sda1 /dev/sdb1 /dev/sdc1
#创建lv逻辑卷
lvcreate -l +100%FREE -n lvdata vgdata
#格式化逻辑卷
mkfs.xfs /dev/mapper/vgdata-lvdata
#创建data文件夹
mkdir /data
#将逻辑卷挂载到/data
mount /dev/mapper/vgdata-lvdata /data
#添加开机挂载
vim /etc/fastab
/dev/mapper/vgdata-lvdata /data xfs defaults 0 0
#检查挂载
mount -a
其他常用命令
#先看宿主的块设备
lsblk
#查看pv
pvdisplay
#激活卷组
vgchange -a y 卷组名
#停用卷组
vachange -a n 卷组名
#查看系统中是否有卷组
vgscan
#查看卷组的详细状态
vgdisplay
#删除卷组
vgremove 卷组名