磁盘管理
设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘
/dev/sda1 #d固态 #sda1 第一块磁盘 1:分区 /dev/hda1#机械硬盘 /dev/vd#虚拟磁盘
使用磁盘三步:
1、分区——方便管理
3、挂载
1、磁盘结构
物理结构:
名称 | 介绍 |
---|---|
盘片 | 硬盘有多个盘片,每盘片有2面(正反两面) |
磁头 | 每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量 |
数据结构:
名称 | 介绍 |
---|---|
扇区 | 盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大)存放数据的最小单位,512字节 |
磁道 | 同一盘片不同半径的同心圆 |
柱面 | 不同盘片相同半径构成的圆(柱面和磁道数量相同) |
存储容量:
-
硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M
-
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
接口类型:参考于百度百科(https://baike.baidu.com/item/%E7%A1%AC%E7%9B%98%E6%8E%A5%E5%8F%A3%E7%B1%BB%E5%9E%8B/1490829)
有IDE、SATA、SCSI、光纤通道、M2-SATA、M2-Nvme和SAS七种。
-
IDE:133MB/s,并行接口,早期家用电脑
-
SCSI:640MB/s,并行接口,早期服务器
-
SATA:6Gbps,SATA数据端口与电源(长的电源,数据线短的)端口是分开的,即需要两条线,一条数据线,一条电源线
-
SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。
-
M.2:第一是速度方面很快。M.2接口有两种类型:Socket 2(B key——ngff)和Socket 3(M key——nvme),其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E ×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E ×4接口,理论带宽可达4GB/s。第二个是相比于MSATA的固态硬盘,它的体积更小。
-
光纤接口:Fiber Channel,和SCSI接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。
硬盘类型:
(HDD)机械硬盘:Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
(SSD)固态硬盘:Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。
硬盘有两种大小:
LFF:3.5寸,一般见到的那种台式机硬盘的大小。
SFF:Small Form Factor 小形状因数,2.5寸,注意不同于2.5寸的笔记本硬盘L、S分别是大、小的意思,目前服务器或者盘柜采用sff规格的硬盘主要是考内虑增大单位密度内的磁盘容量、增强散热、减小功耗。
2、MBR与磁盘分区
2.1 分区的原因
-
优化读写性能
-
实现磁盘空间配额限制
-
提高修复速度
-
隔离系统和程序
-
安装多个os(operatingsystem,操作系统)
-
采用不同文件系统(文件系统负责管理文件)
分区优点:
-
提高读写性能
-
隔离系统程序
分区缺点:
-
分完区以后就固定了,无法扩容
-
必须是磁盘上连续的空间
2.2 MBR(老)与GPT(新)
MBR只支持,2T以下的硬盘(使用fdisk)
GPT可支持,2T以上的硬盘(使用jdisk)
#分区查询 fdisk -l #查询磁盘情况 fdisk -l #设备名 /dev/sd{a..z}
主引导记录(MBR:master boot bootcord )
是硬盘上第一个扇区,想要读数据,要从次扇区开始
MBR一共512字节:
前446字节,是开机引导程序,操作系统是装在引导程序,引导硬件找到我们的操作系统;
后64字节分区表,硬盘分区表,表面了分区范围,分区从哪里到哪里结束;
最后两字节代表MBR结束位。(55AA 85 187)
分区表有4个分区记录区,每个分区占16个字节
磁盘分区类型 | 特点 | 序号 |
---|---|---|
主分区 | 可直接使用,安装操作系统 | 1-4 |
扩展分区 | 不可用直接使用,需要再划分逻辑分区,让分区超过四个 | 1-4 |
逻辑分区 | 可以直接使用,存储文件 | 5-∞ |
3、文件系统
是操作系统用于明确存储设备或分区上的文件的使用方法和数据结构;即在存储设备上组织使用文件的 方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进 行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的 存取,安全控制,日志,压缩,加密等。
总结:用来管理(增删改查恢复)文件的程序
iso9600是光驱

[root@192 ~]# cat /proc/filesystems //查看当前系统支持的 文件类型 nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev tmpfs nodev devtmpfs nodev debugfs nodev securityfs nodev sockfs nodev pipefs nodev anon_inodefs nodev configfs nodev devpts nodev hugetlbfs nodev autofs nodev pstore nodev mqueue nodev selinuxfs xfs nodev rpc_pipefs nodev nfsd
XFS
XFS:centos7默认的文件系统
ext4是centos6默认的文件系统
-
根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
-
用优化算法,日志记录对整体文件操作影响非常小
-
是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到TB1TB=1024GB
-
而支持单个文件则达到8EB能以接近裸设备I/O的性能存储
SWAP
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。
特点:当内存不足时,将硬盘转换成内存使用,虚拟内存。
FAT16、FAT32
且最大只能支持32GB分区,单个文件也只能支持最大4GB。
NTFS(类似xfs)主流
NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB
EXT4
Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024TB
JFS
主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB
文件系统的修复
修复命令(聊胜于无,简单了解就行)
fsck.FS_TYPE fsck -t FS_TYPE -a 自动修复 -r 交互式修复错误
案例:
#先取消挂载 [root@centos7 ~]#mount /dev/sdb2 /mnt [root@centos7 ~]#cp /etc/fstab /mnt/f1 [root@centos7 ~]#cp /etc/fstab /mnt/f2 [root@centos7 ~]#ls /mnt f1 f2 lost+found [root@centos7 ~]#dd if=/dev/zero of=/dev/sdb1 bs=1M count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s [root@centos7 ~]#ls /mnt [root@centos7 ~]#tune2fs -l /dev/sdb1 #查看文件系统特性,只显示 前部分 tune2fs 1.44.6 (5-Mar-2019) tune2fs: Bad magic number in super-block while trying to open /dev/sdb2 [root@centos7 ~]#df [root@centos7 ~]#umount /mnt [root@centos7 ~]#e2fsck /dev/sdb1 -y [root@centos7 ~]#fsck /dev/sdb1 -y
4、分区工具
分区 fdisk cd /sys/class/scsi_host/ ##刷新背板 echo "- - -" >/sys/class/scsi_host/host0/scan echo "- - -" >/sys/class/scsi_host/host1/scan echo "- - -" >/sys/class/scsi_host/host2/scan lsblk fdisk /dev/sdb partprobe 立即刷新分区
4.1 fdisk
格式:fdisk -l [磁盘设备]
fdisk [磁盘设备]
选项 | 功能 |
---|---|
-m | 打印出菜单 |
-p | 打印出当前分区表 |
-n | 新建一个分区 |
-d | 删除一个分区 |
-t | 改变分区的属性,系统ID |
-w | 保存 |
-q | 不保存退出 |

[root@192 ~]# fdisk -l /dev/sda 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000a8576 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 83886079 40893440 8e Linux LVM Device:分区的设备文件名称。 Boot:是否是引导分区。若是,则有“*”标识。主系统 Start:该分区在硬盘中的起始位置(柱面数)。 End:该分区在硬盘中的结束位置(柱面数)。 Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。 Id:分区对应的系统 ID 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM 逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。 System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的 [root@localhost data]#fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助): 输入 n 后 p 主分区 e扩展分区 1逻辑分区 设置分区:1(范围1-4 ,如按回车代表默认值) 设置分区大小:+20G (指定大小为20G ,回车代表默认使用全部空间) #####创建后分区如果分区未出现可以使用 partprobe 刷新检测分区表。
4.2 blkid
查看块设备UUID,方便永久挂载

[root@192 ~]# blkid /dev/sda1: UUID="dd924c21-db72-4fc2-bb50-a1b807e11707" TYPE="xfs" /dev/sda2: UUID="seCmIX-Qnsm-936E-LFi7-iycT-aW69-170SMy" TYPE="LVM2_member" /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/centos-root: UUID="a186c243-8403-4d1e-826a-668de463529f" TYPE="xfs" /dev/mapper/centos-swap: UUID="ad062e10-f14a-4cd6-ae86-963bbcea5829" TYPE="swap"
4.3 mkfs
创建文件系统(格式化)常用选项
-t {ext2|ext3|ext4|xfs} 指定文件系统类型 -b {1024|2048|4096} 指定块 block 大小 -L ‘LABEL’ 设置卷标 -j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i -i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小 -N # 指定分区中创建多少个inode -I 一个inode记录占用的磁盘空间大小,128---4096 -m # 默认5%,为管理人员预留空间占总空间的百分比 -O FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定

[root@192 ~]# mkfs mkfs -t ext4=mkfs.ext4 mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat #文件系统检测和修复 fsck.FS_TYPE fsck -t FS_TYPE -a 自动修复 -r 交互式修复错误 e2fsck:ext系列文件专用的检测修复工具 xfs_repair:xfs文件系统专用检测修复工具 [root@centos8 ~]#mount /dev/sdb2 /mnt [root@centos8 ~]#cp /etc/fstab /mnt/f1 [root@centos8 ~]#cp /etc/fstab /mnt/f2 [root@centos8 ~]#ls /mnt f1 f2 lost+found [root@centos8 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s [root@centos8 ~]#ls /mnt [root@centos8 ~]#tune2fs -l /dev/sdb2 tune2fs 1.44.6 (5-Mar-2019) tune2fs: Bad magic number in super-block while trying to open /dev/sdb2 [root@centos8 ~]#df [root@centos8 ~]#umount /mnt [root@centos8 ~]#e2fsck /dev/sdb2 [root@centos8 ~]#e2fsck /dev/sdb2 -y
4.4 mkswap
swap 是特殊的分区,和普通分区不同
特殊的文件系统,缓解内存不足,为了个别应为程序加内存有点浪费
添加交换分区的空间
mkswap + 分区
swapon +分区 开启 -a 全部
swapoff +分区 关闭 -a 全部
4.5lsblk
[root@localhost ~]#lsblk -d -o name,rota #查看当前硬盘是什么模式 固态 机械 1 机械 0 固态 NAME ROTA sda 1 sr0 1
4.6文件系统检测和修复
fsck.FS_TYPE fsck -t FS_TYPE -a 自动修复 -r 交互式修复错误 e2fsck:ext系列文件专用的检测修复工具 xfs_repair:xfs文件系统专用检测修复工具 [root@centos8 ~]#mount /dev/sdb2 /mnt [root@centos8 ~]#cp /etc/fstab /mnt/f1 [root@centos8 ~]#cp /etc/fstab /mnt/f2 [root@centos8 ~]#ls /mnt f1 f2 lost+found [root@centos8 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=1 #破坏文件系统 1+0 records in 1+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s [root@centos8 ~]#ls /mnt [root@centos8 ~]#tune2fs -l /dev/sdb2 tune2fs 1.44.6 (5-Mar-2019) tune2fs: Bad magic number in super-block while trying to open /dev/sdb2 [root@centos8 ~]#df [root@centos8 ~]#umount /mnt [root@centos8 ~]#e2fsck /dev/sdb2 [root@centos8 ~]#e2fsck /dev/sdb2 -y
小实验
添加一块新硬盘,因为是第二块,所以显示为“*b”
第一步,分区;
输入:“w”代表写入磁盘并退出;
第二步,格式化,添加文件系统;
第三步,挂载
之后保存就能够永久挂载了,每次开机都会来这里执行一遍,类似永久。
5、挂载与解挂载
5.1mount
mount [ -t 类型 ] 存储设备 挂载点目录 mount -o loop ISO镜像文件 挂载点目录
挂载规则:
-
一个挂载点同一时间只能挂载一个设备
-
一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
-
一个设备可以同时挂载到多个挂载点
-
通常挂载点一般是已存在空的目录
选项 功能 -t(fstype) 指定要挂载的设备上的文件系统类型,如:ext4,xfs -r(readonly) 只读挂载 -w(read and write) 读写挂载,此为默认设置,可省略 -n 不更新/etc/mtab,mount不可见 -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能) -L(LABEL) 以卷标指定挂载设备 -U(UUID) 以UUID指定要挂载的设备 -B(--bind) 绑定目录到另一个目录上 -o(options) (挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全 sync 同步模式,内存更改时,同时写磁盘,安全,但效率低下 atime/noatime 包含目录和文件 diratime/nodiratime 目录的访问时间戳 dev/nodev 是否支持在此文件系统上使用设备文件 acl/noacl 启用此文件系统上的acl功能 loop 使用loop设备 _netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
选项 | 功能 |
---|---|
rw/ro | 是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。 |
async/sync | 此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。 |
dev/nodev | 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。 |
auto/noauto | 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。 |
suid/nosuid | 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。 |
exec/noexec | 设定在文件系统中是否允许执行可执行文件,默认是允许。 |
user/nouser | 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。 |
defaults | 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。 |
remount | 重新挂载已挂载的文件系统,一般用于指定修改特殊权 |
5.2解挂载
umount 设备名|挂载点 卸载时:可使用设备,也可以使用挂载点 fuser -v MOUNT_POINT 查看正在访问指定文件系统的进程 fuser -km MOUNT_POINT 终止所有在正访问指定的文件系统的进程
5.3 df
df [OPTION]... [FILE]

[root@centos8 ~]#df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 887M 0 887M 0% /dev tmpfs tmpfs 903M 0 903M 0% /dev/shm tmpfs tmpfs 903M 8.7M 894M 1% /run tmpfs tmpfs 903M 0 903M 0% /sys/fs/cgroup /dev/sda2 xfs 100G 2.7G 98G 3% / /dev/sda3 xfs 50G 1.4G 49G 3% /data /dev/sda1 ext4 976M 128M 781M 15% /boot tmpfs tmpfs 181M 0 181M 0% /run/user/0 [root@centos8 ~]#lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 5c2216e3-ae34-444e-aa60-83cbaebb47e7 /boot ├─sda2 xfs f7f53add-b184-4ddc-8d2c-5263b84d1e15 / ├─sda3 xfs 9a2293a8-9277-4b18-bae1-498e0b9da145 /data ├─sda4 ├─sda5 swap eebe3bc7-6d52-4ad9-86aa-916f1a123fd4 [SWAP] └─sda6 sdb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了