磁盘的物理结构
盘片:硬盘有多个盘片,每盘片2面
磁头:每面一个磁头
硬盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
磁道:同一盘片不同半径的同心圆
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数每扇区字节数
可以用 柱面 /磁头 /扇区 来唯一定位磁盘上每一个区域
磁盘接口类型:
IDE:133MB/s,并行接口,早期家用电脑
SATA:640MB/s,并行接口,早期服务器
SCSI:6Gbps,SATA数据端口与电源端口是分开的,即需要两条线,一条数据线,一条电源线
SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可以兼容,SATA硬盘可以插入SAS主板上,反之不行
光纤通道:光纤接口
常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。
主分区一般用来安装操作系统,扩展分区则多用来存储文件数据
MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
为什么分区(分区的好处是什么?):
优化I/O性能
实现磁盘空间配额限制
提高修复速度
隔离系统和程序
安装多个OS
采用不同文件系统
主引导记录(MBR: Master Boot Record)
MBR位于硬盘第一个物理扇区处
MBR中包含硬盘的主引导程序和硬盘分区表
分区表有4个分区记录区,每个分区记录区占16个字节
Linux中将硬盘、分区等设备均表示为文件
硬盘中的主分区数目只有4个
主分区和扩展分区的序号限制在1~4
口扩展分区再分为逻辑分区
逻辑分区的序号将始终从5开始
XFS文件系统
1.存放文件和目录数据的分区
2.高性能的日志型文件系统
3.CentOS 7系统中默认使用的文件系统
SWAP,交换文件系统
为 Linux 系统建立交换分区
Linux支持的其它文件系统类型
1.FAT16、FAT32、NTFS
2.EXT4、JFS…
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复
SWAP:交换文件系统,用于为 Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2倍。
例如,对于拥有512MB物理内存的主机,其交换分区的大小建议设置为1024NB。如果服务器的物理内存足够大〈如8GB 以上)
EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(Centos 7 默认使用XFS)。
EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色
Linux系统还广泛支持其他各种类型的文件系统,
如JFS、FAT16、FAT32、NTES 等。
JFS 文件系统多用于商业版本的UNIX操作系统中,具有出色的性能表现。由于NTFS是微软公司的专有文件系统,Linux系统默认只支持从 NTFS 分区读取文件,如果需要向 NTFS 分区中写入文件数据,需要结合其他辅助软件(如NTFS-3G)
fdsik命令
查看或管理磁盘分区
fdisk -l [磁盘设备]
或
fdisk [磁盘设备]
交互模式中的常用指令
m、p、n、d、t、w、q
fdisk指令参数说明
Command(m for help):m ###输入m指令
a toggle a bootable flag ###设置可引导标记
b edit bsd disklabel ###修改bsd的磁盘标签
c toggle the dos compatibility flag ###设置DOS操作系统兼容标记
d delete a partition ###删除一个分区
l list known partition types ###显示已知的分区类型,其中82为Linux swap分区,83为Linux分区
m print this menu ###显示帮助菜单
n add a new partition ###增加一个新的分区
o create a new empty Dos partition table #创建一个新的空白的DOS分区表
p print the partition table ###显示磁盘当前的分区表
q quit without saving changes ###退出fdisk程序,不保存任何修改
s create a new empty sun disklabel ###创建一个新的空白的Sun磁盘标签
t change a partition's system id ###改变一个分区的系统号码
u change display/entry units ###改变显示记录单位
v verify the partition table ###对磁盘分区表进行验证
w write table to disk and exit ###保存修改结果并退出fdisk程序
x extra functionality (experts only) ###特殊功能,不建议初学者使用
fdisk -l查看硬盘的整体情况和分区情况
Device:分区的设备文件名称
Boot:是否是引导分区。若是,则有 " *" 标识
start:该分区在硬盘中的起始位置(柱面数)
End:该分区在硬盘中的结束位置(柱面数)
Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节
Id:分区对应的系统ID号。83表示 Linux中的 XES分区或EXT4分区、8e表示LVM逻辑卷
LVM是Linux操作系统中对磁盘分区进行管理的一种逻辑机制,
System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了,在Linux操作系统中,分区和格式化的过程是相对独立的
不重启加载新建的硬盘
磁盘添加完成,进入系统,使用下面命令扫描SCSI总线
echo "- - -" > /sys/class/scsi_host/host0/scan
mkfs命令
Make Filesystem,创建文件系统(格式化)
mkfs -t 文件系统类型 分区设备
示例
[root@localhost ~]# ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.vfat
/sbin/mkfs.btrfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.xfs
/sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos
[root@localhost ~]# mkfs -t xfs /dev/sdb1
[root@localhost ~]# mkfs.xfs /dev/sdb1
SWAP创建系统文件
mkswap /dev/sdb2 ###创建分区
swapon 是开启swap 注: /dev/sdb2(swap分区)
swapoff 是关闭swap 注: /dev/sdb2(swap分区)
swapon -s ###查看每个分区的swap状态信息
free -m ###查看总的swap状态信息
FAT32创建系统文件
[root@localhost ~]# mkfs -t vfat -F 32 /dev/sdb6
[root@localhost ~]# mkfs.vfat -F 32 /dev/sdb6
挂载文件系统、ISO镜像到指定文件夹
mount [-t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
查看UUID
[root@localhost ~]# blkid /dev/sda1
/dev/sda1: UUID="0f991461-4b96-47a6-a8d6-35dc081bce37" TYPE="xfs"
UUID=30f32202-3cbf-4094-b738-300efd196d5e / xfs defaults 0 0
/etc/fstab 配置文件
包含需要开机后自动挂载的文件系统记录
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Dec 21 01:15:17 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=30f32202-3cbf-4094-b738-300efd196d5e / xfs defaults 0 0
UUID=0f991461-4b96-47a6-a8d6-35dc081bce37 /boot xfs defaults 0 0
UUID=88b3203e-a11c-410d-bab3-c48c87f29279 swap swap defaults 0 0
在/etc/fstab
文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔)
/dev/sdb1/ xfs defaults 0 0
第1字段:设备名或设备卷标名
第2字段:文件系统的挂载点目录的位置
第3字段:文件系统类型,如xFs、Swap等
第4字段:挂载参数,即mount命令"-o"选项后可使用的参数
例如,defaults、rw,noexec分别表示默认参数、可写、只读、禁用执行程序
第5字段:表示文件系统是否需要dump备份(dump是一个备份工具)一般设为1时表示需要,设为 0 时将被 dump 忽略
第6字段:该数字决定在系统启动时进行磁盘检查的顺序 0 表示不进行检查,1 表示优先检查,2 表示其次检查。根分区应设为 1,其他分区设为 2
通过在 /etc/fstab文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。
例如,执行以下操作将添加自动挂载分区/dev/sdb1的配置记录
挂载分区的UUID /dev/sdb1(挂载点的目录位置) 文件系统类型 defaults 0 0
df命令
作用:用来检查文件系统的磁盘空间占用情况,使用权限是所有用户
df [选项] [文件]
常用参数
-s: 对每个Names参数只给出占用的数据块总数
-a: 递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定一a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数
-k:以1024字节为单位列出磁盘空间使用情况
-x:跳过在不同文件系统上的目录不予统计
-l:计算所有的文件大小,对硬链接文件则计算多次
-i:显示inode信息而非块使用量
-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB
-P:使用POSIX输出格式
-T:显示文件系统类型
1.管理磁盘和分区
2.检测并确认新硬盘
3.创建文件系统
4.挂载、卸载文件系统