一、磁盘结构
1.1设备文件
设备号码:主设备号(标示设备类型)和次设备号(标示同一类型下的不同设备)
设备类型:块设备(块)字符设备(字符)
二.管理存储
使用磁盘空间的过程:
1.设立分区
2.创建文件系统
3.挂载新的文件系统
2.1磁盘分区
分区优点:
1.优化I/O性能
2.实现磁盘空间配额的限制
3.提高修复速度
4.隔离系统和程序
5.安装多个OS
6.采用不同文件系统
2.1.2分区方式
方式:MBR和GPT
MBR分区方式
1.MBR分区中一块硬盘最多只能有四个主分区,也可以是三个主分区加一个扩展分区(扩展分区可以划分n个逻辑分区)
2.主分区和扩展分区对应的是1---4,逻辑分区是从5开始的
GPT分区方式
GPT:1.GUID支持128个分区
2.使用128UUID表示磁盘和分区GPT分区自动备份在头和尾两份,并有CRC校验位
GPT分区结构:
(1)GPT头
(2)分区表
(3)GPT分区
(4)备份表
2.1.3管理分区
列出块设备
lsblk
创建分区命令
fdisk 管理MBR分区
gdisk 管理GPT分区
子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除新分区
v 校验新分区
u 转换单位
w 保存并退出
q 不保存并退出
查看分区
fdisk -l
查看内核是否已经识别新的分区
cat /proc/partations
Centos7/8同步分区表
partprobe
2.2文件系统
概念:是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
常用的文件系统:
ext2:适用于分区容量不太大,更新不频繁的情况,如:/boot分区
ext3:是ext2的改进版,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳。创建和使用巨型文件、最大1EB的文件系统,以及速度的提升
xfs:SGI,支持最大8EB的文件系统
swap
iso996光盘
2.2.3文件系统的组成部分
1、内核模块:ext4、xfs、vfat
2、Linux的虚拟文件系统:VFS
3、用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
2.2.4文件系统选择管理
2.2.4.1创建文件系统
创建文件管理工具
mkfs命令:
(1)mkfs.FS_TYPE /dev/DEVICE
DEVICE:ext4、xfs、btrfs、vfat
(2)mkfs -t FS_TYPE /dev/DEVICE
mke2fs:ext系列文件系统专用管理工具
2.2.4.2查看和管理分区信息
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息:super block
-L 修改卷标
-m 预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用
-o 调整文件系统的默认挂载选项
-U uuid 修改UUID号
dumpe2fs:显示ext文件系统信息,将磁盘块分组管理
-h:查看超级块信息,不显示分组信息
例如:查看ext文件系统的元数据和块组信息
[root@qiang ~]#dumpe2fs /dev/sda1
2.3挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件访问入口 的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount point
注意:挂载点下的原有文件在挂载完成后会被临时隐藏,因此,挂载点目录一般为空,进程正在使用中的设备无法被卸载
2.3.1挂载文件系统mount
mount 挂载的设备 挂载点(必须事先存在)
-t 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r 只读挂载
-w 读写挂载
-a 自动挂载所有支持自动挂载的设备(定义在/etc/fstab文件中)
注意:挂载规则
(1)一个挂载点同一时间只能挂载一个设备
(2)一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其他设备上的数据将被隐藏
(3)一个设备可以同时挂载多个挂载点
(4)通常挂载点一般是已存在空目录
2.3.2卸载文件系统umount
卸载时:可使用设备,也可使用挂载点
umount 设备名|挂载点
2.3.3查看挂载情况
查看挂载
通过查看/etc/mtab文件显示当前已挂载的所有设备
mount
查看内核追踪到的已挂载的所有设备
cat /proc/mounts
查看挂载点情况
findmnt 挂载点|device
2.3.4持久挂载
将挂载保存到/etc/fstab中可以下次开机时,自动启用挂载
每行定义一个要挂载的文件系统,,其中包括共 6 项
要挂载的设备或伪文件系统
设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc, sysfs
挂载点:必须是事先存在的目录
文件系统类型:ext4,xfs,iso9660,nfs,none
挂载选项:defaults ,acl,bind
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
fsck检查的文件系统的顺序:允许的数字是0 1 2
0:不自检 ,1:首先自检;一般只有rootfs才用 2:非rootfs使用
添加新的挂载项,需要执行 mount -a 命令后才能生效
2.4处理交换文件和分区
概念:是系统RAM的补充,swap分区支持虚拟内存。当没有足够的RAM保存RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空间时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄露
注意:为优化性能,可以将swap分布存放,或高性能磁盘存放
2.5磁盘常见工具
文件系统空间实际真正占用等信息的查看工具df
-h 显示单位
-T 文件系统类型
查看某目录总体空间实际占用状态du
-h 显示单位
-T 文件系统类型
工具dd
格式:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
常用选项:
conv=conversion[,conversion...] 用指定的参数转换文件
if=file
of=file
ibs=size
obs=size从所命名文件读取而不是从标准输入
写到所命名的文件而不是到标准输出
一次读size个byte
一次写size个bytebs=size block size, 指定块大小(既是是ibs也是obs) cbs=size
skip=blocks
seek=blocks
count=n一次转化size个byte
从开头忽略blocks个ibs大小的块
从开头忽略blocks个obs大小的块
复制n个bs