磁盘分区方式和文件系统类型

"硬盘介绍"

Posted by yangsir on December 13, 2023

“Yeah It’s on. ”

磁盘分区方式

MBR:

  • 定义:MBR主引导记录器,也叫主启动记录
  • MBR中包含硬盘的主引导程序和磁盘分区表,分区表有四个主分区记录区,每个主分区记录区占16个字节,共64字节,446字节存放主引导程序,2字节校验

BIOS:

  • 基本输入输出系统
  • 硬件加电自检
  • 硬件配置初始化
  • 引导操作系统(BOOT->硬盘->MBR)

image-20231214145023853

硬盘分区结构

  • 硬盘中的主分区数只有4个
  • 因此主分区和扩展分区的序号也就限制在1~4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号始终从5开始

主分区存储数据

主分区更改为扩展分区

扩展分区里面存逻辑分区

逻辑分区里面存数据】

文件系统类型 重新定义硬盘的存储方式

XFS文件系统

  • 存放文件和目录数据
  • centOS系统中默认使用XFS

swap文件系统

  • 为linux系统建立交换分区、虚拟内存(给物理内存缓解压力,防止内存溢出、不能存储普通文件或目录数据)
  • 影响整体运行速度,k8s中不用

xfs文件系统与ext4文件系统的区别

  • 文件大小和文件系统大小:XFS支持的单个文件最大可以达到8EB(Exabyte,即百万TB),文件系统最大可以达到16EB,而Ext4文件系统最大支持16TB的文件,文件系统最大支持1EB。
  • 日志:XFS使用元数据日志,即只记录元数据的变化,而非文件实际内容的变化,这使得XFS在处理大文件时有更高的效率。而Ext4使用全日志,可以记录所有数据的变化。
  • 数据恢复:Ext4有成熟的数据恢复工具,而XFS的数据恢复相对困难。
  • 碎片整理:XFS具有在线碎片整理功能,可以在文件系统运行过程中进行碎片整理,而Ext4需要卸载后才能进行碎片整理。
  • 延迟分配:XFS和Ext4都支持延迟分配,但XFS的延迟分配更为成熟,可以提高磁盘的写入性能。
  • 性能:XFS在处理大文件和并发写入时性能较好,而Ext4在处理小文件和随机写入时性能较好。
  • 兼容性:Ext4对于旧版Linux系统的兼容性更好,而XFS可能需要新版的Linux内核支持。

操作案例

linux虚拟机关机状态下添加一个40G和一个20G的SCSI接口硬盘

image-20231217162641120

编辑虚拟机设置

image-20231217162718733

添加硬盘、一路下一步

image-20231217163238366

可以看到,多了sdb和sdc

不过识别了还用不了

怼硬盘—>分区—>格式化—>挂载

检测并确认新硬盘 fdisk -l 硬盘设备

image-20231217163729863

sdb和sdc没有分区

使用盘 必须先分区

fdisk命令

1、作用:在交互式的操作环境中管理磁盘分区

2、格式:fdisk [磁盘设备]

3、常用选项:

  • m: 查看操作指令的帮助信息
  • p: 列表查看分区信息
  • n:新建分区
  • d: 删除分区
  • t: 变更分区类型
  • w: 保存分区设置并退出
  • q: 放弃分区设置并退出
  • 康楚 + 退格键 :删除输入的错误字符

4、示例

​ 对新增的40G硬盘

  • 划分两个主分区,各5G,剩余空间为扩展分区
  • 在扩展分区中建立两个逻辑分区,第一个为2G,第二个为10G

image-20231217165136277

image-20231217165407600

此时再输入n创建新分区时,因为已创建扩展分区,所以原有的e变成了l

image-20231217165633690

image-20231217165747356

扩展分区只能从5开始,且不限制数量

image-20231217170022101

分区搞完还不能用,格式化

mkfs命令

作用:创建文件系统(格式化)

格式:mkfs -t 文件系统类型 分区设备

常用选项:

  • -t: 指定格式化文件类型
  • -b:指定block大小,单位为字节
  • -I:inode大小
  • -U:设置uuid号
  • -q:执行时不显示任何信息
1
mkfs.xfs /dev/sdb1  #给sdb1设置文件系统类型

至此 就可以挂载硬盘进行使用了

mkswap命令

作用: 创建交换文件系统

格式: mkswap 分区设备

基于分区扩展SWAP分区

image-20231217172433413

/proc/meminfo
  1. MemTotal:系统总共的物理内存大小。
  2. MemFree:系统当前的可用物理内存大小。
  3. MemAvailable:系统当前的可用内存大小,包括所有可回收的Slab内存。
  4. Buffers:用于缓存文件系统元数据的内存大小。
  5. Cached:用于页面缓存(如文件读写)的内存大小。
  6. SwapCached:被交换出去的内存,但仍然被缓存的大小。
  7. Active:当前正在使用或者最近被使用过的内存大小。
  8. Inactive:当前不活跃的内存大小。
  9. Active(anon):匿名活动内存,即不与任何文件关联的内存。
  10. Inactive(anon):匿名非活动内存。
  11. Active(file):文件活动内存,即与文件关联的内存。
  12. Inactive(file):文件非活动内存。
  13. Unevictable:不可回收的内存,比如mlock()锁定的内存页。
  14. Mlocked:被mlock()锁定的内存大小。
  15. SwapTotal:系统总的交换空间大小。
  16. SwapFree:当前空闲的交换空间大小。
  17. Dirty:等待被写回到磁盘的内存大小。
  18. Writeback:正在被写回到磁盘的内存大小。
  19. AnonPages:未映射到文件的页面大小。
  20. Mapped:映射到文件的页面大小。
  21. Shmem:共享内存大小。
  22. Slab:内核数据结构缓存的大小。
  23. SReclaimable:可回收的Slab内存大小。
  24. SUnreclaim:不可回收的Slab内存大小。
  25. KernelStack:内核栈的大小。
  26. PageTables:管理页面映射的表格的大小。
  27. NFS_Unstable:不稳定的网络文件系统页面大小。
  28. Bounce:用于块设备的bounce buffer页面大小。
  29. WritebackTmp:临时文件的写回大小。
  30. CommitLimit:基于内存和交换空间大小的系统提交限制。
  31. Committed_AS:估计的系统为达到CommitLimit所需的内存或交换空间大小。
  32. VmallocTotal:可用于VMALLOC分配器的总大小。
  33. VmallocUsed:已经被VMALLOC分配器使用的大小。
  34. VmallocChunk:最大连续的、可用于VMALLOC分配器的内存块大小。
  35. Percpu:每CPU的内存大小。
  36. HardwareCorrupted:硬件损坏的内存大小。
  37. AnonHugePages:匿名大页面的内存大小。
  38. CmaTotal:可用于内存管理的总内存大小。
  39. CmaFree:可用于内存管理的空闲内存大小。
  40. HugePages_Total:系统中总的大页面数量。
  41. HugePages_Free:系统中空闲的大页面数量。
  42. HugePages_Rsvd:已经被保留,但还没使用的大页面数量。
  43. HugePages_Surp:超过了cpool参数所设定的大页面数量。
  44. Hugepagesize:大页面的大小。
  45. DirectMap4k:直接映射的4K内存大小。
  46. DirectMap2M:直接映射的2M内存大小。
  47. DirectMap1G:直接映射的1G内存大小。

基于文件扩展SWAP分区

1
 dd if = /dev/zero of =/swapfile bs=1m count=200
1
mkswap /swapfile

mount命令

1、作用:挂载文件系统、ISO镜像

2、格式:

1
mount [-t 类型] 存储设备 挂载点目录    #[-t]没什么用
1
mount [-o loop] ISO镜像文件 挂载点目录
1
mount    #查看当前的挂载
1
mount -a 挂载 /ect/fatab中已记录的所有挂载

注意:重启之后,mount挂载信息都会失效,需要重新挂载,在这,就用到了/ect/fstab文件

/ect/fstab各字段含义 (了解即可)

  1. 文件系统(File System): 文件系统的标识,可以是UUID、LABEL或设备名(如/dev/sda1)。
  2. 挂载点(Mount Point): 文件系统挂载的位置,比如/、/home等。
  3. 类型(Type): 文件系统的类型,如ext4、ext3、ntfs、swap等。
  4. 选项(Options): 挂载选项,用来设置文件系统的挂载属性,比如defaults、auto、noauto、ro、rw等。
    • auto: 表示系统启动时自动挂载。
    • noauto: 表示系统启动时不自动挂载,通常需要手动挂载。
    • ro: 表示以只读方式挂载文件系统。
    • rw: 表示以读写方式挂载文件系统。
  5. Dump:这个字段用于dump备份程序。如果设置为0,dump将不会备份文件系统。通常我们设置为0。
  6. Pass:这个字段用于fsck(文件系统检查)程序。根文件系统应该设置为1,其他文件系统设置为2。如果设置为0,fsck将不会检查该文件系统。

df命令

1、作用:查看磁盘使用情况

2、格式:df [选项] …[文件系统]

3、常用选项:

  • -h: 显示更易读的容量单位
  • -T: 显示对应文件系统的类型
  • -i: 显示inode数量

4、常用命令:

1
df -Th

扩展:inode数量用来限制文件数量,inode 文件的表示,下奥做文件时,可以用inode号代替文件名

1
stat 文件名 #可以查看inode号

blkid命令

作用:查看分区uuid号

1、uuid号:分区必须格式化后才会有UUID号

2、格式:blkid 分区设备

image-20231218133842145

parted命令

通常划分分区工具用的较多的是fdisk命令,但是fdisk工具只能划分小于2T的磁盘,parted划分的是GPT格式的磁盘,其没有四个主分区的限制,最多可达到128个主分区。

用法:parted 选项 …[设备 [命令 [参数]…]…]

操作命令:

  • help 打印通用求助信息
  • mklabel 标签类型 创建新的磁盘标签(必须先打标签(gpt或msdos))
  • mkpart 分区类型 [文件系统类型] 起始点 终止点 创建一个分区
  • print [MINOR] 打印分区表,或者分区
  • quit 退出程序
  • resure 起始点 终止点 挽救临近 “起始点”、“终止点”的遗失的分区
  • rm MINOR 删除编号为MINOR的分区
  • select 设备 选择要编辑的设备