目录
一、磁盘结构
磁盘物理结构是由磁头和盘片构成,数据结构分为扇区、磁道和柱面。每个扇区存放512字节的数据,是硬盘的最小存储单位。文件存取的单位为块,一个块由8个扇区连续的扇区组成,大小为4K(即4096字节)。
硬盘接口的类型有:SATA M.2 SCSI IDE
二、磁盘分区
1. MBR的概念
MBR主引导记录,用于linux系统启动时引导加载内核、镜像文件等,位于第一个硬盘的第一个物理扇区,由硬盘的主引导程序和硬盘分区表组成,前446字节为主引导程序,MBR分区表保存在第447-516字节(64个字节)。分区表分为4个分区记录区,每个分区占16个字节,每个分区最大2.2TB。
linux中将硬盘、分区等设备均表现为文件。硬盘设备分区文件的表示形式为,其中sd表示设备类型/dev/sdb、/dev/sdb1等,sd为SCSI设备,hd为IDE为IDE设备。硬盘序号以字母a b c ...顺次表示,分区号为数字1 2 3...顺次表示。主分区号为1-4,逻辑分区始终从5开始。
2. 硬盘分区结构
若磁盘小于2TB时,MBR做磁盘分区时可使用fdisk /dev/sdb 进行分区。当最大卷大于2.2TB时,我们使用GPT做磁盘分区,可用gdisk或parted /dev/sdb 进行分区。GPT允许每个磁盘有多达128个分区,支持高达18EB(千兆兆字节)的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余。
三、文件系统类型
1. XFS文件系统
- 存放文件和目录数据的分区
- 高性能的日志执行文件系统,处理大文件,可支持上百万TB的存储空间
- centOS7中默认的文件系统
2. SWAP交换文件系统
为了解决内存不足的情况,用硬盘临时存储那些没有被使用的内存数据。这只用于紧急方案,保证内存数据不丢失,经常用会导致内存读取速度变慢。swap是linux必须的分区!
3.linux支持的其他文件系统
EX4/3、FAT32、NTFS、LVM
四、linux系统添加并使用新硬盘
1. 插入新的磁盘设备并刷新识别
fdisk -l #查看磁盘设备信息
补充
添加完磁盘可通过关机重启或者以下命令在线刷新出来:
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
2.fdisk进行分区
若磁盘小于2TB,可用fdisk /dev/sdb 进行分区,即MBR 分区格式;若磁盘大于2TB,可用parted /dev/sdb 进行分区,即GPT分区格式。这里我们主要讲的是fdisk分区方式。
fdisk /dev/sdb,sdb为新的磁盘设备,这里我把sdb分区类型设为LVM:8e
fdisk /dev/sdc,sdc为新的磁盘设备,这里我把sdc分区类型设为swap:82
n——添加新的分区
p——主分区(p为主分区,e为扩展分区,l为逻辑分区)
1——设置分区号,主分区/扩展分区1-4,逻辑分区从5开始
起始扇区位置一般都为默认值
结束扇区位置,一般设置为空间大小,+xxG/M/K
t——修改分区类型(Linux默认83,LVM为8e,RAID为fd,SWAP为82)
p——查看当前分区情况
w——保存退出(w为保存退出 / q为不保存退出 / d为删除分区)
3.格式化
方法一:mkfs格式化xfs类型的文件
mkfs -t xfs /dev/sdb1
mkfs -t xfs /dev/sdc1
方法二:mkswap格式化
mkswap /dev/sdc1 #格式化操作
注意:格式化只针对主分区和逻辑分区,扩展分区用于创建多个逻辑分区的,做不了格式化。
4.挂载使用
①mount umount 针对格式化方法一的挂载/解挂载方法
挂载:
mkdir /opt/class101 #新建一个空目录
mount [-t] /dev/sdb1 /opt/class101 #将/dev/sdb1挂载到/opt/class101目录下
df -hT #查看挂载状态以及文件类型,并以人性化形式展示
----------------------------------------------------------------------------------
解挂:
umount /dev/sdb1 #根据设备文件解挂
umount /opt/class101 #根据挂载点目录
df -hT #查看挂载状态以及文件类型,并以人性化形式展示
补充mount的用法:
①mount -o usrquota,grpquota /dev/sdb1 /class101
-o 指定参数挂载(ursquota,grpquota为举例的参数,第七章中做解释)
②光盘的作用是将镜像文件挂载到系统中,当服务器没有光驱光盘时,即/dev/sdb1光盘不存在。此时如果我们还想使用光盘里的文件,就可以通过winSCP等软件将文件传到服务器中,然后使用mount -o loop CentOS-7-x86_68-DVD-2207-02.iso /mnt 指定镜像文件挂载到/mnt上。
②swapon/swapoff 针对格式化方法二的挂载/解挂载方法
cat /proc/meminfo #查看swap总量
free -h #查看当前系统中swap总量和可用swap总量,以人性化方式。-m表示以M为单位
swapon /dev/sdc1 #启用sdc1这个swap,加载使用等同于挂载作用
swapon -s #查看启用后的swap总量和可用swap总量
--------------------------------------------------------------------------------------
swapoff /dev/sdc1 #禁用sdc1这个swap
swapoff -a #禁用所有swap,等同于解挂载作用
挂载完成后即可进入目录进行数据的读写编辑。
查看挂载情况有两种命令
df -hT
lsblk -f
③开机自动挂载
基于Linux系统机制的配置方法:
cd /etc/rc.d/
vim rc.local
·mount /dev/sdb1 /opt/class
·wq保存退出
chmod +x /etc/rc.d.rc.local #增加执行权限
基于mount原生的自动挂载配置文件的修改方法:
blkid #查看设备对应的UUID识别号,根据设备名或者UUID修改
vim /etc/fstab
·/dev/sdb1 /opt/class xfs defaults 0 0
·UUID=xxxxx.. /opt/class xfs defaults 0 0
设备名/UUID 挂载点目录 文件类型 默认挂载参数,usrquota等 开机是否备份 开机是否检测磁盘
0不检测 1优先 2其次
如何验证自动挂载配置是否正确呢?
首先退出挂载点目录,再使用umount <设备名>解挂载。
我们可以把这些设备解挂后,配合使用mount -a根据/etc/cr.d/rc.local自动挂载,验证以上配置是否正确。(umount -lf暴力解挂慎重使用,会导致数据丢失。)
数据跟着磁盘走,设备挂载到挂载点目录后,文件数据都会存入磁盘设备中,挂载点目录从A换成B,则数据也会从A转移到B目录;解挂则找不到文件数据。写入数据时,先检查当前目录是否挂载磁盘,逐层检查,找不到该目录的挂载点则默认挂载到根目录的磁盘设备。
补充内容
5.补充命令
badblocks -sv /dev/sda1 # 检查磁盘是否损坏
umount /dev/sdX # 修复文件系统
xfs_repair /dev/sdX # 修复文件系统
fsck -t etx4 -a /devsdX # 修复文件系统