目录
前言
Linux磁盘管理与文件系统是操作系统中一个非常重要的方面。磁盘管理涉及到如何有效地使用和管理计算机的存储设备,包括硬盘驱动器、固态驱动器和其他可用的存储介质。
在Linux中,磁盘管理涉及到对磁盘进行分区、格式化、挂载和管理文件系统等操作。
一、磁盘基础
1、磁盘的物理结构
部件 | 说明 |
---|---|
盘片 | 硬盘有多个盘片,每盘片有2面(正反两面),盘片由磁性材料,可读写 |
磁头 | 每面一个磁头,并不是只有一个磁头,磁头离盘面有一定的距离,磁头等于盘片数量 |
2、磁盘的数据结构
部件 | 说明 |
---|---|
扇区 | 盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大) 存放数据的最小单位 512字节。 其中8个扇区组成一块,每块为4k,共512×8=4096字节 |
磁道 | 同一盘片不同半径的同心圆 |
柱面 | 不同盘片相同半径构成的圆(柱面和磁道数量相同) |
3、磁盘存储容量
硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
4、硬盘接口类型
IDE、SATA、SCSI、SAS、光纤接口
二、磁盘分区
1、磁盘分区的优缺点
优点 | 缺点 |
---|---|
优化I/O性能(读写) | 无法动态扩容 |
实现磁盘空间配额限制 | |
提高修复速度 | 必须使用连续的空间 |
隔离系统和程序 | |
安装多个OS | 无备份冗余的功能 |
采用不同文件系统 |
2、磁盘两种分区方式
2.1 MBR分区
- MBR(Master Boot Record)是磁盘上的一小段特殊的引导扇区,位于磁盘的第一个扇区(扇区编号为0)
- 只能对磁盘空间2t以上的磁盘进行分区
- MBR中包含的内容
①硬盘的mbr主引导程序,作用是引导硬件找到操作系统,共占用446字节。
②硬盘分区表,作用是记录分区开始和结束的位置,一个分区表占用16字节。
③结束标志位:55AA
- 分区表有4个分区记录区,每个分区记录区占16字节。
- Linux中将硬盘、分区等设备均表示为文件
2.2 MBR的分区三种类型
- 主分区:可直接使用,最少一个主分区最多四个主分区,分区序号为1~4
- 扩展分区(特殊的主分区):不可直接使用,固定磁盘空间为1k,需要再划分逻辑分区,存储了逻辑分区的分区表,只能有一个扩展分区
- 逻辑分区:需要在现有扩展分区的基础上进行划分,序号将始终从5开始,可以有若干个
2.2 GPT分区(了解)
- 可以对磁盘空间为2t以上的磁盘进行分区
- 分区表:GPT使用一个分区表来记录硬盘上的分区信息。这个分区表保存在磁盘的起始扇区,并且具有备份,以提高数据的可靠性。
- 分区类型:GPT支持多种分区类型,包括普通数据分区、EFI系统分区(用于启动和引导操作系统)、保留分区(用于未来扩展)和其他特定用途的分区。
- 分区标识符:每个GPT分区都有一个唯一的分区标识符(GUID),用于标识和引用该分区。这个标识符是一个128位的全局唯一标识符。
- 分区大小:GPT支持更大的分区大小,相较于MBR分区方案。MBR只能支持最大2TB的分区,而GPT可以支持更大的分区容量。
- 兼容性:GPT是一种较新的分区方案,它在现代操作系统和计算机硬件上得到广泛支持。然而,一些旧的操作系统和BIOS可能不支持GPT分区,需要使用传统的MBR分区方案。
总之,GPT分区概念包括分区表、分区类型、分区标识符、分区大小和兼容性等方面,它提供了更大的分区容量和更高的数据可靠性,逐渐取代了传统的MBR分区方案
三、管理磁盘分区的工具
1、fdisk
功能:查询Linux操作系统的磁盘设备、建立磁盘分区
查询Linux操作系统的磁盘设备
通式:fdisk -l 设备名
用法:fdisk -l //查看所有磁盘设备
fdisk -l /etc/sda //只查看sda设备
建立磁盘分区
通式:fdisk /dev/设备名 //进入磁盘的分区界面
2、blkid
功能:可查看块设备属性信息
3、free
功能:查看Linux操作系统的内存
4、mkfs
功能:创建文件系统(格式化)常用选项
通式:mkfs.文件系统类型 磁盘设备名 //将文件系统安装入磁盘
5、mkswap
功能:格式化swap分区
通式:mkswap 设备名 //将swap分区装入磁盘
6、 mount
功能:挂载,将磁盘与Linux系统文件夹作关联
规则:
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录
mount 存储设备 挂载点目录 //挂载磁盘等设备
mount -o loop ISO镜像文件 挂载点目录 //挂载镜像
四、建立磁盘分区的过程步骤
1、添加硬盘
1.1在虚拟机设置里,选择添加硬盘,一直默认选项,下一步下一步即可,最后添加完成后一定要点击确认
1.2磁盘建立完成后,使用以下三条命令刷新新建的磁盘设备,不需要重启
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
2、新建主分区
2.1 新建主分区
fdisk /dev/sdb //进入sdb磁盘设备分区界面
如果分区不能识别时,使用以下命令后,可查看新添加的磁盘主分区
partprobe /dev/sdb
2.2 主分区完成后格式化
mkfs.xfs /etc/sdb1
2.3 挂载+验证
以上就是新建磁盘主分区的步骤,已经建立sdb磁盘设备的主分区的分区,接下来可正常使用该分区
3、新建扩展分区下的逻辑分区
3.1 新建逻辑分区
fdisk /dev/sdb //进入sdb磁盘设备分区界面
3.2 逻辑分区完成后格式化
mkfs.xfs /etc/sdb5
3.3 挂载+验证
以上就是新建磁盘逻辑分区的步骤,已经建立sdb磁盘设备的逻辑分区,接下来可正常使用该分区
五、永久挂载
命令挂载是临时的,系统启动后挂载就会失效,要想永久挂载需要写到/etc/fstab配置文件里,最好使用UUID号进行挂载
1、查看设备的UUID号
2、添加永久挂载到配置文件
vim /etc/fstab //永久挂载需写入/etc/fstab
mount -a //查看/etc/fstab内容是否写错,重新挂载/etc/fstab中的条目
3、如何解决配置文件写错的情况
假如写入设备的UUID号出错,开机也无法检测,也无法正常启动Linux系统
UUID故意删除开头的7,mount命令也查找不到该UUID
重启超时后会显示出下面这个界面,系统会提示你按ctrl +d重新启动。启动失败,是加载fstab文件时出现错误,重启也没用,要进入root用户,进行修改文件
进入/dev/fstab配置文件后,解决方法一是可以把UUID号改正确,二是把出错的一行全删除,三是把错误行开头加#注释掉,解决完退出编辑模式,再输入reboot重启后就可以正常使用Linux系统了
六、建立swap交换分区的步骤
1、swap交换分区的作用
- Swap交换分区是在Unix/Linux系统中用于虚拟内存的一种特殊类型的磁盘分区
- 当系统的物理内存(RAM)不足时,操作系统会将部分暂时不用的内存数据移到swap分区中,以便为当前运行的程序腾出更多的RAM空间
- 如果没有足够的swap空间,系统可能会因为无法分配更多内存而导致应用程序崩溃或系统挂起
2、新建swap分区
fdisk /dev/sdb //进入sdb磁盘设备分区界面
如果分区不能识别时,使用以下命令后,可查看新添加的磁盘swap分区
partprobe /dev/sdb
3、swap分区完成后格式化
mkswap /dev/sdb2 //格式化swap分区
4、开启设备的swap分区
swapon 设备名
5、关闭设备的swap分区
swapoff 设备名 //关闭该设备的swap分区
swapoff -a //关闭全部设备的swap分区
七、文件系统
1、文件系统种类
①XFS文件系统
- 存放文件和目录数据的分区
- 高性能的日志型文件系统
- CentOS7系统中默认使用的文件系统(可进行数据恢复)
②SWAP,交换文件系统
SWAP,交换文件系统
③linux支持的其它文件系统类型
- FAT16、FAT32、NTFS
- EXT4、JFS
2、修复文件系统
2.1 挂载
2.2 移动文件到/mnt
2.3 破坏文件系统
dd if=/dev/zero of=/dev/sdb1 bs=6M count=1 //破坏文件系统
2.4 解挂载
2.5 修复文件系统
fsck /dev/sdb1 -y //修复文件系统