linux磁盘分区(MBR和GPT,基于centos7)实验

linux磁盘分区(MBR和GPT,基于centos7)实验

为什么分区

1.优化I/O性能
2.实现磁盘空间配额限制
3.提高修复速度
4.隔离系统和程序
5.安装多个OS
6.采用不同文件系统

MBR的分区结构

MBR:Master Boot Record
一块硬盘分为一个0扇区和最多4个主分区或者3个主分区+一个扩展分区
以下为MBR的分区结构图
linux磁盘分区(MBR和GPT,基于centos7)实验_第1张图片
0号扇区:系统引导程序+主分区表+0x55aa
系统引导程序:占446字节,负责存放系统启动时的二进制程序
主分区表:16字节*4,每个主分区或者扩展分区占16个字节,16个字节中以硬盘标记(柱面、磁盘、盘片)记录了该分区的起始地址和结束地址,来表示分区占用空间的大小。其中分区的前两位表示为该分区是否为系统启动的引导分区(根分区,80为是,00为不是)。
0x55aa:结束位标记

扩展分区ERB:结构与主分区相似,其中每个逻辑分区前512字节的前446字节为空不使用,后64字节的前16个字节指向当前ERB分区的起始地址,17-32字节表示下一个ERB逻辑分区的起始地址,以此表示当前逻辑分区的大小,后64字节未使用。

GPT的分区结构

GPT:GUID(Globals Unique Identifiers) partition table
一块硬盘最多支持128个主分区,详细可划分为EFI信息区(GPT头)、分区表、GPT分区、备份区域,以扇区作为单位(每个扇区512位)。
linux磁盘分区(MBR和GPT,基于centos7)实验_第2张图片
第LBA0扇区:MBR保护扇区,记录了与MRB相同的信息,与MBR做兼容,反之个别程序无法适应GPT
第LBA1-33扇区:记录的每个分区的起始地址、结束地址、UUID等信息
第LBA34-~:每个GPT分区的数据
最后33个LBA:备份的GPT扇区数据,如果GPT扇区参数有误,则自动从备份扇区中同步以解决问题。

MBR与GPT的分区

主要有3个步骤:创建分区、制作文件系统和挂载

MBR创建分区命令fdisk

fdisk 设备名称:对磁盘进行MBR分区,分区结果直接保存至硬盘
输入m可以查看详细操作指令,常用选项为n:new,创建新分区;d,delete,删除分区;t,change,修改分区类型;w,write,写入保存并退出;p,print,打印当前分区信息
linux磁盘分区(MBR和GPT,基于centos7)实验_第3张图片
创建主分区:输入n并回车,p表示promary主分区,e表示extend扩展分区,回车默认主分区,再回车默认为1扇区,再回车默认起始地址,输入+2G,表示从起始地址增加2G的空间作为此分区的大小,还可以使用M或者K作为单位。
linux磁盘分区(MBR和GPT,基于centos7)实验_第4张图片
创建扩展分区:输入n并回车,输入e,选择4回车作为扩展分区,+3G作为扩展分区的总大小,输入p查看,可以观察到当前已经创建了一个主分区和一个扩展分区。输入w保存退出。

注,红框内表示当前分区类型,dos表示MBR,gpt就是GPT啦。
linux磁盘分区(MBR和GPT,基于centos7)实验_第5张图片
创建逻辑分区:输入n并回车,此时分区时有l选项,l表示logic逻辑分区的意思,输入l,回车,并指定第一个逻辑分区的大小,w保存退出。
linux磁盘分区(MBR和GPT,基于centos7)实验_第6张图片
输入lsblk命令可以查看当前的分区的情况,
注:如果创建或者删除分区后没有显示,需输入partprobe命令将分区信息更新至内存
linux磁盘分区(MBR和GPT,基于centos7)实验_第7张图片

GPT创建分区命令gdisk

使用GPT分区和MBR分区时的命令与操作基本一致,我们添加新的硬盘,添加新硬盘后需对新的硬盘进行扫描,否则系统无法识别显示。
命令为:echo "- - -" > /sys/class/scsi_host/host$/scan,$表示在当前目录下的所有host目录
在这里插入图片描述
使用gdisk 设备名称 进行GPT分区
输入?显示操作菜单,菜单如下
linux磁盘分区(MBR和GPT,基于centos7)实验_第8张图片
输入n,创建新的分区,后续操作与MBR一致,多了一步选择GUID的选项,MBR中默认为83,表示为linux文件系统,而GPT中支持在创建分区时直接指定GUID,此时默认即可。(如有需要了解可百度。)

linux磁盘分区(MBR和GPT,基于centos7)实验_第9张图片
依旧使用lsblk命令查看分区情况,此时使用MRB和GPT的分区已经完成,下一步就是创建文件系统。
linux磁盘分区(MBR和GPT,基于centos7)实验_第10张图片

非交互式直接创建分区

fdisk和gdisk命令均可以使用非交互式的方式来创建分区
如:echo -e "n\np\n\n\n+2G\nw\n" |fdisk /dev/sdc
“\n”:表示回车
“n”:new,新增
“p”:primary,选择为主分区
“+2G”:设置分区大小
“w”:保存退出
注:MBR分区使用非交互试创建时,需确认当前是否有足够的主分区数和扩展分区是否创建,否则容易出现问题,而GPT所有分区均为主分区,所以没有这个问题。
linux磁盘分区(MBR和GPT,基于centos7)实验_第11张图片

创建文件系统

Linux文件系统(具体详情百度):
ext2(Extended file system):适用于那些分区容量不是太大,更新也不频繁的情况,
例如 /boot 分区
ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常
中恢复。它通常被用作通用的文件系统
ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和
使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
xfs:SGI,支持最大8EB的文件系统
btrfs(Oracle), reiserfs, jfs(AIX), swap
 光盘:iso9660
 Windows:FAT32, NTFS,exFAT
 Unix:FFS(fast), UFS(unix), JFS2
 网络文件系统:NFS, CIFS
 集群文件系统:GFS2, OCFS2(oracle)
 分布式文件系统:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
 RAW:未经处理或者未经格式化产生的文件系统
根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
查前支持的文件系统:cat /proc/filesystems

创建文件系统的命令为:
mkfs.fs_type 设备名称支持以下文件系统
在这里插入图片描述
mkfs -t ext$,仅支持ext系列文件系统
-L LABEL 可以指定卷标(别名)

mke2fs:ext系列文件系统专用管理工具

-b {1024|2048|4096} 指定块大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3
 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性

对MGR(sdc1)创建ext4的文件系统,对GPT(sde1)创建xfs的文件系统
linux磁盘分区(MBR和GPT,基于centos7)实验_第12张图片
linux磁盘分区(MBR和GPT,基于centos7)实验_第13张图片
使用blkid [设备名称(可选)]查看当前创建文件系统的分区情况,指定设备名称则只显示指定设备名称的文件系统。下图表示分区的文件系统已经创建成功。
linux磁盘分区(MBR和GPT,基于centos7)实验_第14张图片

文件系统的块信息(如有需要可以百度深入了解)

文件系统是有大小相同的块组合而成,每个块大小都一致,不满块大小的文件默认都需要占用一个块的空间,由若干块组合而成称之为块组,分区是又若干个块组组合而成,每个块组中包含了当前块组的超级快、块组的大小,各个数据的元数据信息,位图使用情况以及数据。
linux磁盘分区(MBR和GPT,基于centos7)实验_第15张图片
使用tune2fs -l 设备名,查看指定文件系统超级块信息;super block

tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL’ 修改卷标
-m # 修预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用, –O ^has_journal
-o 调整文件系统的默认挂载选项,–o ^acl
-U UUID 修改UUID号
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019102022140698.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Rob21hc19DWVE=,size_16,color_FFFFFF,t_70)
还可以使用`dumpe2fs `查看超级快信息

linux磁盘分区(MBR和GPT,基于centos7)实验_第16张图片

挂载和mount命令

将创建文件系统的磁盘设备挂载至目录即可
先创建目录
mkdir /mnt/gpt
mkdir /mnt/mbr
后使用
mount 设备名 目录名 进行挂载,就可以进入目录创建文件使用(临时挂载)
在这里插入图片描述

mount命令

挂载方法:mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备,挂载目标默认只能是块设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L ‘LABEL’, 例如 -L ‘MYDATA’
(3) UUID, -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-
85c0-a126711d406e’
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在,建议使用空目录
进程正在使用中的设备无法被卸载
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件
中,且挂载选项中有auto功能)
-L ‘LABEL’ 以卷标指定挂载设备
-U ‘UUID’ 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
查看内核追踪到的已挂载的所有设备
cat /proc/mounts
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式 sync 同步模式,内存更改时,同时写磁盘
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持自动挂载,是否支持-a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro 只读 rw 读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw, suid, dev, exec, auto, nouser, async

挂载目录

创建两个空目录dirtest和dirmount,并在dirtest目录中创建多个文件,直接挂载时会提示错误,挂载失败
需要加上-B 或者–bind选项才能挂载。
在这里插入图片描述
linux磁盘分区(MBR和GPT,基于centos7)实验_第17张图片

挂载文件(包括镜像和普通文件)

挂载普通文件和ISO镜像文件
使用dd命令创建一个100M的空文件,使用mke2fs对文件创建文件系统,使用
mount -o loop filetest filemount将普通文件挂载至目录,镜像文件不需要创建文件系统,直接挂载即可。
linux磁盘分区(MBR和GPT,基于centos7)实验_第18张图片

swap交换分区

swap可以临时使用硬盘充当内存使用,但是效率不高,只能起到应急作用
针对MBR创建swap,创建完分区后输入t键修改分区类型,82表示swap交换分区(GPT用8200表示),w保存退出
linux磁盘分区(MBR和GPT,基于centos7)实验_第19张图片
创建swap文件系统,使用mkswap命令创建即可
linux磁盘分区(MBR和GPT,基于centos7)实验_第20张图片
使用swapon device命令使swap分区生效,在通过free名查看内存使用情况以观察 swap是否生效
在这里插入图片描述

持久化挂载

上述的挂载均为临时挂载,系统关机重启后挂载消失,需要将挂载信息写入到/etc/fstab文件中,如图所示。
文件内字段解释:
/etc/fstab每行定义一个要挂载的文件系统
 1、要挂载的设备或伪文件系统
设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc, sysfs
 2、挂载点
 3、文件系统类型:ext4,xfs,iso9660,nfs,none
 4、挂载选项:defaults ,acl,bind
 5、转储频率:0:不做备份 1:每天转储 2:每隔一天转储
 6、fsck检查的文件系统的顺序:允许的数字是0 1 2
0:不自检
1:首先自检;一般只有rootfs才用
2:非rootfs使用
注:磁盘挂载使用UUID挂载防止逻辑分区删除后分区标记自动变化
linux磁盘分区(MBR和GPT,基于centos7)实验_第21张图片

总结:磁盘分区主要步骤为三部:划分分区,创建文件系统和挂载。划分分区需选择合适的分区方式,文件系统中针对ext系列和xfs文件系统命令不同,需要区分记忆,对已有分区做修改时,需取消挂载设备,包括磁盘文件和交换分区,否则会引起许多问题。

你可能感兴趣的:(linux磁盘分区(MBR和GPT,基于centos7)实验)