磁盘管理与文件系统
一.磁盘基础
二.MBP与磁盘分区表示
三.检测并确认新硬盘
四.创建文件系统
五.挂载.卸载文件系统
六.总结
一.磁盘结构
1.硬盘的物理结构
盘片:硬盘有多个盘片,每盘片2面
磁头:每面一个磁头
2.硬盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大),硬盘的最小存储单位
磁道:同意盘片不同半径的同心圆
柱面:不同盘片相同半径构成的圆柱面(柱面和磁道数量相同)
3.硬盘存储容量
=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
可以用柱面/磁头/扇区来唯一定位磁盘你上每一个区域
磁盘接口类型 IDE SATA SCSI SAS 光纤通道
4.硬盘接口类:
IDE:133MB/s,并行接口,早期家用电脑
SCSI:640MB/,并行接口,早期服务器
SATA:6Gbps,SATA数据端口与电源端口是分开的,即需要两条线,一条数据线,一条电源线
SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。
光纤接口
机械与固态
机械硬盘(HDD): Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几干转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精密设备,进入硬盘的空气必须过滤。
固态硬盘(SSD): Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元( FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺す上也与普通硬盘一致相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD的2倍相较于SSD,HDD在价格、容量占有绝对优势硬盘有价,数据无价,目前SSD不能完全取代HHD。
机械硬盘相对于固态硬盘 可以恢复数据
为什么分区
优化I/O性能
实现磁盘空间配额限制
提高修复速度
隔离系统和程序
安装多个OS
采用不同文件系统
硬盘分区
常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情況下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据MBR: Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T。
二.MBP与磁盘分区表示
主引导记录(MBP:Master Boot Record)
MBP位于硬盘第一个物理扇区处
MBP中包含硬盘的主引导程序和硬盘分区表
分区表有4个分区记录区,每个分区占16个字节
Linux中将硬盘.分区等设备均表示文件
/dev/hd/a5
/dev(硬件设备文件所在的目录)
/hd(hd表示IDE设备sd表示scsi设备)
a(硬盘的顺序号,以字母a.b.c......表示)
5(分区的顺序号,以数字1.2.3......表示)
磁盘分区结构
硬盘中的主分区数目只有4个
主分区和扩展分区的序号限制在1~4
扩展分区在分为逻辑分区
逻辑分区的序号将始终从5开始
文件系统类型
XFS文件系统
存放文件和目录数据的分区
高性能的日志型文件系统
CentOS7系统中默认使用的文件系统
SWAP交换文件系统
为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍。例如,对于拥有512MB物理内存的主机,其交换分区的大小建议设置为1024MB。如果服务器的物理内存足够大(如8GB以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(Centos7默认使用xfs)。EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
Linux支持的其他文件系统类型
FAT16 FAT32 NIFS
EXT4 JFS
三.检测并确认新硬盘
Fdisk命令
查看或管理磁盘分区
fdisk -l [磁盘设备]
或
fdisk [磁盘设备]
fdisk-l查看硬盘的整体情况和分区情况:
Device:分区的设备文件名称。
Boot:是否是引导分区。若是,则有*标识
Start:该分区在硬盘中的起始位置(柱面数)
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为1024字节。
Id:分区对应的系统ID号。83表示 Linux中的XFS分区或EXT4分区、8e表示LVM逻辑卷。LVM是 Linux。
操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。
System:分区类型。识别到新的硬盆设各后,就可以在该硬中建立新的分区了。在 Linux操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
交互模式中的常用指令
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) 特殊功能,不建议初学者使用
四.创建文件系统
Mkfs命令
Make filesystem 创建文件系统(格式化)
Mkfs -t 文件系统类型 分区设备
示例
[root@localhost~]# ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.cramfs /sbin/mkfs.ext3 /sbin/mkfs.minix
/sbin/mkfs.btrfs /sbin/mkfs.ext2 /sbin/mkfs.ext4 /sbin/mkfs.xfs
[root@localhoet~]# mkfs -t xfs /dev/sdb1和mkfs.xfs /dev/sdb1
在vim /etc/fstab
文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符号分隔),各部分的含义如下所述。
/dev/sdb1/ /home/ky17 xfs defaults 0 0
第一字段(/dev/sdb1):设备名或设备卷标名
第二字段(/home/ky17):文件心痛的挂载点目录的位置。
第三字段(xfs):文件系统类型,如XFS.Swap等。
第四字段(defaults):挂载参数,即mount命令“-o”选项后可使用的参数。例如,defaults.rw.ro.noexec 分别表示默认参数.可写.只读.禁用执行程序。
第五字段(0):表示文件系统是否需要dump备份(dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略。
第六字段(0):该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2。
通过在/etc/fstab 文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。例如,执行以后操作将添加自动挂载分区/dev/sdb1的配置记录。
SWAP创建系统文件
mkswap /dev/sdb5 创建分区
swapon 是开启swap 注:/dev/sdb2(swap分区)
Swapof 是关闭swap 注:/dev/sdb2(swap分区)
swap on -s 查看每个分区的swap状态信息
free -m 查看总的swap状态信息
lsblk 查看树形目录
blkid /dev/sdb1 查看UUID
五.挂载.卸载文件系统操作
硬盘分区挂载.卸载,光盘设备挂载.卸载,ISO镜像文件挂载示例,卸载文件系统
1.查看磁盘使用情况
df命令 df[选项][文件]
示例
[root@localhost~]# df -hT |
||||||
文件系统 |
类型 |
容量 |
已用 |
可用 |
已用% |
挂载点 |
/dev/mapper/VolGroup-Lv_root |
ext4 |
6.7G |
4.1G |
2.3G |
65% |
/ |
/dev/sda1 |
ext4 |
99M |
11M |
83M |
12% |
/boot |
tmpfs |
tmpfs |
252M |
0 |
252M |
0% |
/dev/shm |
/dev/sdb1 |
ext4 |
19G |
173M |
18G |
1% |
/mailbox |
df命令 扩充
作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户
df 格式[options]
命令 |
功能 |
-s |
对每个names参数只给出占用的数据块总数 |
-a |
递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示name中的每一个目录及其中的各子目录所占的磁盘块数。 |
-k |
以1024字节为单位列出磁盘空间使用情况 |
-x |
跳过在不同文件系统上的目录不予统计。 |
-l |
计算所有的文件大小,对硬连接文件则计算多次 |
-i |
显示inode信息而非块使用量 |
-h |
以容易理解的格式印出文件系统大小,例如136KB.24MB.21GB |
-p |
使用posix输出格式 |
-T |
显示文件系统类型 |
2.挂载.卸载文件系统
mount命令
挂载文件系统.ISO镜像到指定文件夹
mount[-t类型]存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
umount命令
卸载已挂载的文件系统
umout 存储设备位置
umount挂载点目录
补充:超出2TB的分盘方式
1.gdisk命令交互模式中的指令
2.parted 命令
基础命令
命令 |
功能 |
b |
将GPT数据备份到一个文件 |
c |
更改分区名称 |
d |
删除一个分区 |
i |
显示分区详细信息 |
l |
列出已知分区类型。此处8200是Linux swap,8300是Linux xfs,8e00是LinuxLVM |
n |
增加一个新的分区 |
o |
创建一个新的空白的GPT分区表 |
p |
显示当前磁盘的分区表 |
q |
退出gdisk程序,不保存任何修改 |
r |
恢复和转换选项 |
s |
排序分区 |
t |
改变分区的类型 |
v |
验证磁盘分区表 |
w |
将分区表写入裁判并退出(保存并退出) |
x |
额外功能 |
? |
显示帮助信息 |
六.总结
- 管理磁盘和分区,磁盘分区的模式有fdisk .gdisk和parted。其中fdisk适用于2TB以内的磁盘分区,gdisk和parted 适用于2TB以上的磁盘分区。
- 创建文件系统 文件类型包括:xfs swap ext4
- 文件的挂载.卸载系统:临时挂载mount 卸载umount 永久挂载vim内/etc/fstad
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了