磁盘与文件系统管理1
- 物理机磁盘文件名
/dev/sd[a-p]
- 虚拟机
/dev/vd[a-p]
(加速作用) - 磁盘第一个扇区(512字节)包括:
MBR(master boot record)
:主引导记录 446字节
分区表:记录硬盘分区状态,64字节
磁盘有效标志2字节
分区最小单位: 同一磁道
划分信息称为:primary
主要分区和extended
扩展分区
- 扩展分区最多只能有一个
- 扩展分区不能格式化
- 扩展分区目的是使用额外信息来记录分区,继续划分的分区称为逻辑分区
- 但是逻辑分区的设备名称从5开始
/dev/sda5
,前4个留给主要分区,主要分区和逻辑分区不能整合在一起
GPT(GUID partition table) 磁盘分区表
解决了操作系统使用磁盘的容量问题
- BIOS(basic input output system):是一个写入到主板上的固件.是操作系统启动后的第一个程序
- 固件:嵌入在硬件设备中的软件
- 根据用户配置去读取硬盘
MBR
位置的启动引导程序(boot loader) - 启动引导程序的目的是加载(load)内核文件
- 通过内核文件启动操作系统
boot loader
是BIOS
上的一个软件(主要任务):
- 提供不同的启动选项(多重引导)
- 加载内核文件
- 转交给其他启动引导程序
- 转交给其他启动引导程序:硬盘不止一个
MBR
,它还可以安装在每个分区的启动扇区(boot sector),这是多重引导功能的原因
BIOS总结
- 每个分区都拥有自己的启动扇区(
boot sector
) - 实际可启动的内核文件是放在各分区中
- 启动引导程序只认识自己分区的内核文件
- 启动引导程序可以将工作交个下一个分区的启动引导程序
Linux下所有数据都是以文件的形式来展现
- Linux系统使用:
directory tree
目录树架构,但文件数据放在磁盘分区.
- 挂载就是结合了目录树的架构与磁盘内的数据
- 挂载:将目录作为磁盘分区的进入点,也就是:进入该目录就能访问到磁盘数据 进入点目录称为挂载点
- 目录根据自己需求挂载到不同的分区,重要数据单独挂载到别的分区
- 个人理解:挂载是目录依托在磁盘上
- 交换分区:用硬盘来模拟内存,加快速度
简单分区:
/ + swap + 预留磁盘空间
centos
中容量大且读写频繁的目录:1
2
3
4
5/boot
/
/home
/var
swap
window
:FAT
文件系统Linux
:ext2 (Linux second extended file system)
- 文件系统将数据存放到不同的区块中
inode
:记录文件属性,一个文件一个inode
,以及记录文件数据所在区块号码- 数据区块:文件实际内容
super block
:记录文件系统整体信息,inode
与数据区块的总量及消耗
dumpe2fs -h /dev/sda1
//查看ext文件系统superbolck信息
blkid
//显示被格式化的设备
inode
存放所有数据区块的号码能让系统一次性读取出来- 而
FAT
文件系统,每个区块号码都在上一个区块,相当于链式读取数据,导致文件读取速度慢,且数据碎片多 - 碎片整理:区块过于离散,**整理碎片:**将同一个文件的所属区块都集合在一起
ext2文件系统(inode)
Boot sector
:每个分区的引导程序,剩下的就是文件系统ext2
格式化的时候区分为多个区块群组(block group)
rwx
owner
group
- 修改时间,特性标识
- 所指向的
block
- 当文件太大时,一个
inode
记录不下所有的block
的号码,就会间接的将所指block
来存储其他block
的号码.间接指向所有block
inode bitmap
和block bitmap
,记录已经使用的inode
号码/block
的号码,以及未使用的
ls -l /lib/modules/$(uname -r)/kernel/fs
查看linux支持的文件系统
cat /proc/filesystems
查看系统目前加载到内存中支持的文件系统
df
:列出文件系统的整体磁盘使用量
df
读取的是super block
中信息,速度快1
2-a 列出所有文件系统
-h 自动调整格式/proc
: Linux系统加载系统需要的系统数据挂载在内存中,所以磁盘占用为0/dev/shm
:利用内存虚拟出来的磁盘空间,占物理内存的一半,访问速度快
du
:到文件系统查所有的文件数据.列出所有文件的容量,但是只显示目录的容量,
1 |
|
文件访问顺序: ls -l /etc/passwd
- 先访问
/
的inode
后,通过权限了在访问其block
- 得到
/etc
的inode
,通过权限后再 访问其block
- 得到
passwd
的inode
,根据权限判断是否能访问
日志式文件系统的功能
- 判断目录权限,然后创建文件.
- 根据
inode
对照表找到没使用的inode
号码,并来写入文件权限 - 根据区块对照表找到未使用的
区块号码
,写入实际数据到区块中,更新inode
指向的区块
- 专门记录写入或修改文件时的步骤
- 当断电时,系统检查日志来修复文件系统,而不是对整个文件系统进行检查
文件系统运行
- 数据都要加载到内存经由CPU处理,由于磁盘与内存速度差距.不能同时处理
- linux中异步处理方式:
- 内存区段中文件未修改设置为
clean
,被修改设置为dirty
,系统定时将内存中设置为dirty
的数据写回到磁盘中.(此时所有操作还在内存中)
VFS(virtual filesystem switch
) 虚拟文件系统交换
- 每个目录都可能作为文件系统(磁盘分区)的挂载点,所以系统上运行着多种文件系统,
- 每个文件系统都有独立的
inode
,区块,超级区块,要挂载到目录上才能使用 Linux 内核
通过VFS
管理这些文件系统- 当我们切换到不同目录下,可能属于不同的文件系统,此时由
VFS
帮助我们调用不同文件系统模块
XFS文件系统(日志文件系统)
centos 7
将此日志文件系统作为默认文件系统,被用于高容量磁盘的文件系统ext4
缺点:格式化慢,ext4 一开始就将inode
与数据区块 给 固定好了XFS
:格式化块,inode
和数据区块都是动态分配
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!