Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)
前言
- 磁盘(disk)是指利用磁记录技术存储数据的存储器
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢
早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘) - 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
一、磁盘基础
硬盘一般指电脑硬盘,是计算机最主要的存储设备(Hare Disk Drive,简称HDD)
1.磁盘结构
1.1 硬盘的物理结构
- 盘片:硬盘有多个盘片,每盘片2面
- 磁头:每面一个磁头
1.2 硬盘的数据结构
- 扇片:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
- 磁道:当磁盘旋转时,磁头若保持在一个位置,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道
- 柱面:在有多个盘片构成盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的圆柱面
1.3 硬盘的储存容量
- 硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数(512字节
) - 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
1.4 硬盘的接口类型
名称 | 解释 |
---|---|
ATA(IDE) | 并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代 |
SATA(Serial ATA) | 抗干扰性强,支持热插拔等功能,速度快,纠错能力强 |
SCSI | 小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等 |
SAS(Serial Attached SCSI) | 是新一代的scSI技术,和sATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s |
2.MBR与磁盘分区表示
2.1 MBR-主引导记录
- MBR是主引导记录(MBR:Master Boot Record),位于硬盘的第一个物理扇区处
- MBR中包含硬盘的主引导程序和硬盘分区表
- 分区表有4个分区记录区,每个分区记录区占16字节
- 主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区
或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区 - Linux中将硬盘、分区等设备均表示为文件
2.2 磁盘分区结构
- 磁盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1~4
- 扩展分区再分为逻辑分区
- 逻辑分区的序号将始终从5开始
3.文件系统类型
- 文件系统类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件类型
- 在windows操作系统中,经常使用的文件系统类型包括FAT32、NTFS(查看你的C盘属性可以找到这个)等格式
- 而在Linux系统中,最常用的文件系统主要包括以下几种格式:
3.1 XFS文件系统
- 存放文件和目录数据的分区
- 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
- 即使宕机也不怕数据遭到破坏,可以根据日志记录在短时间内进行数据恢复
- CentOS 7系统中默认使用的文件系统
3.2 SWAP交换文件系统
- 为Linux系统建立交换分区(相当于虚拟内存,一定程度上缓解物理内存不足的问题)
- 一般设置为物理内存的1.5~2倍
- 交换分区不用于直接存储用户的文件和目录等数据
3.3 Linux支持的其他文件系统类型
- 广泛支持其他各种类型的文件系统
- EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统
- FAT32、NTFS、LVM…
二、检测并确定新硬盘
- 在Linux服务器中,当现有硬盘的分区规划不能满足要求(例如,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间
- 实现上述操作需要用到fdisk磁盘及分区管理工具,fdisk是大多数Linux系统中自带的基本工具之一
1.faisk命令-查看或管理磁盘分区
-
格式:
- fdisk -l [磁盘设备]
- 列出当前系统中所有硬盘设备设备及其分区的信息
或
fdisk [磁盘设备]
-
解释
- Device(设备):分区的设备文件名词
- Boot:是否是引导分区
若是,则有"*"标识 - Start:该分区在硬盘中的起始位置(柱面数)
- End:该分区在硬盘中的结束位置(柱面数)
- Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节
- ID:分区对应的系统 ID 号
例,83表示Linux中的XFS分区或EXT4分区、8e表示LWM逻辑卷 - System:分区类型
2.管理磁盘分区
- fdisk /dev/sda
- 常用命令
- m:获取帮助菜单(很详细)
- n: 新建分区
- p:查看分区情况
- d:删除分区
- t:变更分区的类型
- w:保存分区操作并退出
- q:不保存分区操作并退出
三、创建文件系统
- 在Linux系统中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中指定的目录,然后才能用于存储文件、目录等数据,接下来将学习如何格式化并挂载分区
- 创建文件系统的过程也即格式化分区的过程,在Linux系统中使用mkfs(Make Filesystem,创建文件系统)命令格式可以格式化XFS , EXT4 ,FAT等不同类型的分区,而使用mkswap命令可以格式化Swap交换分区
1.mkfs命令-创建文件系统(格式化)
- 格式:
mkfs -t 文件系统类型 分区设备
2.mkswap命令-创建交换文件系统
- 格式:
mkswap 分区设备
四、挂载、卸载文件系统
- 在Linux系统中,对各种存储设备中的资源访问(如读取,保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源
- 当然,在安装Linux操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”分区,“boot”分区等
然而对于后来新增加的硬盘分区,光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统
挂载一个分区时,必须为其制定一个目录作为挂靠点(或称为挂载点),用户通过这个目录访问设备中 的文件,目录数据
1.mount命令-挂载文件系统、ISO镜像到指定文件夹
- 格式
- mount [-t 类型] 储存设备 挂载点目录
- mount -o loop ISO镜像文件 挂载点目录
- -t:用于指定文件系统类型,通常可以省略,由系统自动识别
- -o:挂载参数列表,以英文逗号分隔;或用来描述特殊设备,用loop指定
2.umount命令-卸载已挂载的文件系统
- 格式
- umount [-lf] 存储设备目录或者挂载点目录
- 选项
- -l 表示解除正在繁忙的文件系统
- -f 表示强制执行
3.设置文件系统的自动挂载
- 系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据,Linux系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统
- 默认的fstab文件中包括了根分区,/boot分区,交换分区及proc,tmpfs等伪文件系统的挂载配置
- /etc/fstab配置文件
- 包含需要开机后自动挂载的文件系统记录
- 包含需要开机后自动挂载的文件系统记录
- 在/etc/fstab文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段,含义如下:
字段 | 解释 |
---|---|
第1字段 | 设备名或设备卷标名 |
第2字段 | 文件系统的挂载点目录的位置 |
第3字段 | 文件系统类型,如 xfs、swap 等 |
第4字段 | 挂载参数,即mount命令"-o"选项后可使用的参数;例如,defaults(默认参数)、rw(可读写)、ro(只读)、noexe c(禁用执行程序) |
第5字段 | 表示文件是否需要 dump 备份(dump是一个备份工具);一般设为1时表示需要,设为0时将被dump忽略 |
第6字段 | 该数字决定在系统启动时进行磁盘检查的顺序。0表示未进行检查,1表示优先检置,2表示其次检查。根分区可设为1,其他分区设为2 |
4.df命令-查看磁盘使用情况
- 不带选项和参数的mount命令可以显示分区的挂载情况,若要了解系统中已经挂载各文件系统的磁盘使用情况(如剩余磁盘空间等),可以使用df命令
- df命令使用文件或者设备作为命令参数
常用选项:- “-h”:用于显示更容易读的容量单位
- “-T”:用于显示对应文件系统的类型
- “-i”:用于用于显示分区的inode号码数量