文章目录
引言
磁盘和文件系统的管理是运维人员的重要工作内容之一,本文对磁盘和文件系统的一些概念和命令做了详细解释。
一、磁盘基础
1、磁盘结构
-
硬盘的物理结构
- 盘片:硬盘有多个盘片,每盘片2面
- 磁头:每面一个磁头
-
硬盘的数据结构
- 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
- 磁道:同一盘片不同半径的同心圆
- 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
-
硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数
-
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
-
磁头接口类型
- IDE、SATA、SCSI、SAS、光纤通道
2、MBR与磁盘分区表示
- 主引导记录(MBR:Master Boot Record)
- MBR位于硬盘第一个物理扇区处
- MBR中包含硬盘的主引导程序和硬盘分区表
- 分区表有4个分区记录区,每个分区记录区占16个字节
- Linux中将硬盘、分区等设备均表示为文件
二、磁盘分区
1、磁盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1~4,其中1-3是主分区,4是扩展分区
- 扩展分区再分为逻辑分区
- 逻辑分区的序号将始终从5开始
2、文件类型系统
- XFS文件系统
- 存放文件和目录数据的分区
- 高性能的日志型文件系统
- CentOS7系统中默认使用的文件系统(可进行数据恢复) - SWAP,交换文件系统
- SWAP,交换文件系统 - linux支持的其它文件系统类型
- FAT16、FAT32、NTFS
- EXT4、JFS
主启动记录(MBR)磁盘分区
MBR是主引导记录,位于硬盘第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表。MBR总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。分区表有4个分区记录区,每个分区记录区占16字节。
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩"展分区里面分多个逻辑分区)。
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。
SWAP:交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍。例如,对于拥有512MB物理内存的主机,其交换分区的大小建议设置为1024MB。如果服务器的物理内存足够大(加8GB以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(Centos7默认使用XFS)。EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
三、检查并确认新硬盘
1、fdisk命令(最大支持2.2T)
fdisk -l [磁盘设备] 查看硬盘的整体情况和分区情况
或
fdisk [磁盘设备]
- Device:分区的设备文件名称。
- Boot:是否是引导分区。若是,则有""标识。
- Start:该分区在硬盘中的起始位置(柱面数)
- End:该分区在硬盘中的结束位置(柱面数)。
- Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节
- Id:分区对应的系统ID号。83表示Linux中的XFS 分区或EXT4分区、8e表示LVM逻辑卷。LVM是Linux操作系统中对磁盘分区进行管理的一种逻辑机制。
- System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在Linux
操作系统中,分区和格式化的过程是相对独立的
交互模式中的常用指令
Command (m for help) : m #输入m指令
d #删除一个分区
l #显示己知的分区类型,其中82为Linux swap分区,83为Linux分区
m #最示帮助菜单I
n #增加一个新的分区
p #显示磁盘当前的分区表
q #退出fdisk程序,不保存任何修改
s #创建一个新的空白的sun磁盘标签
t #改变一个分区的系统号码
u #改变显示记录单位
v #对磁盘分区表进行验证
w #保存修改结果并退出fdisk程序复制
a #设置可引导标记
b #修改bsd的磁盘标签
c #设置DOS操作系统兼容标记
o #创建一个新的空白的Dos分区表
x #特殊功能,不建议初学者使用
示例:
2、df命令
df [选项] [文件]
df命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
常用指令:
-T:显示文件系统类型。
-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-s:对每个Names参数只给出占用的数据块总数。
示例:
3、lsblk命令
lsblk以树形查看磁盘分区
4、blkid命令
blkid 查看磁盘的UUID(唯一)
- blkid /dev/sdb1 //查看磁盘分区的UUID
示例:
四、创建文件系统mkfs
mkfs命令:Make Filesystem,创建文件系统(格式化)
mkfs -t 文件系统类型 分区设备
或
mkfs.xfs 分区设备
示例:
五、挂载、卸载文件系统
1、挂载mount
挂载文件系统、ISO镜像到指定文件夹
mount [ -t类型] 存储设备 挂载点目录
#用于指定文件系统类型,通常可以省略,由系统自动识别
mount -o loop iso镜像文件 挂载点目录
#挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定
loop:用来把一个文件当成硬盘分区挂接上系统
示例:
2、umount命令
umount命令:卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
示例:
3、永久挂载
在**/etc/fstab**文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。
/dev/sdb1 /mailbox xfs defaults 0 0
- 第1字段:设备名或设备卷标名
- 第2字段:文件系统的挂载点目录的位置
- 第3字段:文件系统类型,如xfs、swap等
- 第4字段:挂载参数,即mount命令"-o"选项后可使用的参数。例如,defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行程序
- 第5字段:表示文件系统是否需要dump备份(dump是一个备份工具)。一般设为1时表示需要,设为o时将被dump忽略
- 第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2
示例:
输入vim /etc/fstab进入编辑器,添加相应的挂载配置,可以实现开机后自动挂载指定的分区。
如图,给ky18和ky19创建永久挂载,ky18挂载sdb2,ky19挂载sdb1
六、gdisk命令
gdisk 磁盘分区工具
- gdisk主要是用来划分容量大于2T的硬盘,大于2T fdisk搞不定两种类型的分区表:GPT和MBR
- MBR不支持4T以上
- GPT分区:GPT,全局唯一标识分区表(GUIDPartition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区
gdisk命令交互模式中的指令
b 将GPT数据备份到一个文件
c 更改分区名称
d 删除一个分区
i 显示分区详细信息
l 列出已知分区类型。此处8200是Linux swap,8300是Linuxfilesystem (对应fdisk的82和83)。还有一个8e00是Linux LVM
n 增加一个新的分区
o 创建一个新的空白的GPT分区表p显示当前磁盘的分区表
g 退出gdisk程序,不保存任何修改r恢复和转换选项(仅限专家)
s 排序分区
t 改变分区的类型v验证磁盘分区表
w 将分区表写入裁判并退出(保存并退出)
x 额外功能(仅限专家)
? 显示帮助信息
七、总结
- 管理磁盘和分区
- 创建文件系统
- 挂载、卸载文件系统