一、ext4文件系统

ext4:第四代扩展文件系统,是目前Linux发行版比较常用的文件系统。

特点:

上图简单介绍了ext4文件系统的布局:磁盘划分为分区,每个分区又划分为N个块组,在每个块组中,又根据块组的编号有不同的内部结构,Ext4文件系统主要使用块组0中的超级块和块组描述符表,在其他一些特定的块组中有超级块和块组描述符表的冗余备份。如果块组中不含冗余备份,那么块组就以数据块位图开始。当格式化磁盘成为ext4 文件系统的时候,mkfs 将在块组描述符表后面分配预留GDT表数据块(“Reverse GDT blocks”)以用来将来扩展文件系统。紧接在预留GDT表数据块后的是数据块位图与inode表位图,这两个位图分别表示本块组内的数据块与inode表的使用,inode表数据块之后就是存储文件的数据块了。

  • 大容量文件系统

  • 与ext3相比,ext4文件系统可支持最高1EB的分区与最大16TB的文件

  • 拓展了子目录的数量,理论上可以无限个

  • 与ext3相比,引入了块组的概念,提高了存取的效率

  • 预留空间、延迟获取空间,减少了文件的分散

  • 更详细的inodes,提高了系统的性能

  • 可以实现快速的文件系统检查

  • 提供日志校验和,提高了可靠性

参考链接:https://blog.csdn.net/a912952381/article/details/81050672

二、分割与格式化硬盘

1、添加分区

fdisk dev:

#对sda分区
fdisk /dev/sda
  • p、打印分区表
  • n、新建一个新分区
  • d、删除一个分区
  • q、退出不保存
  • w、把分区写进分区表,保存并退出

2、格式化分区

mkfs [-opt] -fstype dev:

  • -t:制定文件系统的类型 mkfs -t ext4 /dev/sda1 等价于 mkfs.ext4 /dev/sda
  • -F:强制格式化

3、挂载分区

mount [-opt] dev mountdir:

  • -t:指定档案系统的类型,通常不必指定。mount 会自动选择正确的类型
#将/dev/sda1以ext4类型挂载到/mnt/disk/disk1
mount -t ext4 /dev/sda1 /mnt/disk/disk1**

参考链接:

https://www.cnblogs.com/rosepotato/p/8177988.html

https://blog.csdn.net/tsz0000/article/details/85719204

https://www.runoob.com/linux/linux-comm-mount.html

三、查看硬盘或目录的容量

df:查看已挂载磁盘的总容量、使用容量与 inode 等等

du:查看档案使用掉的容量有多少

df [-opt]:

  • -i: 使用 i-nodes 显示结果
  • -k: 使用 KBytes 显示结果
  • -m: 使用 MBytes 显示结果

du [-opt] [dirname]:

  • -a :全部的档案与目录都列出来!默认值是只列出当前目录的值!
  • -b :列出的值以 bytes 输出
  • -c :最后加总 total
  • -k :列出的值以 KB 输出
  • -m :列出的值以 MB 输出
  • -s :只列出最后加总的值

四、检查与修复文件系统

fsck [-opt] dev:

  • -t : 给定档案系统的类型
  • -a : 如果检查有错则自动修复
  • -r : 如果检查有错则由使用者回答是否修复
  • -A : 对/etc/fstab 中所有列出来的 partition 做检查

参考链接:https://www.runoob.com/linux/linux-comm-fsck.html

五、自动挂载文件系统

当系统启动的时候,系统会自动地从/etc/fstab这个文件读取文件系统配置信息,并且会自动将此文件中指定的文件系统挂载到指定的目录:

  • : 要挂载的分区或存储设备(设备名称、UUID、label)

  • : 的挂载位置

  • : 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto,设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的

  • :挂载时使用的参数,注意有些mount 参数是特定文件系统才有的

  • :dump 会检查分区内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 ,0 表示忽略, 1 则进行备份

  • : fsck 读取 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1,其它所有需要被检查的设备从2开始向后顺序排列,可以同时并列,则同时检查

参考链接:https://blog.csdn.net/richerg85/article/details/17917129

六、同步内存和磁盘的文件

sync:强制将内存中的数据回写到硬盘中

七、坏块检测与修复

badblocks [-svw] [-b <区块大小>] [-o <输出文件>] [磁盘装置] [磁盘区块数] [结束区块数] [开始区块数]

#将坏块检测结果写入badblocks.txt文件中
badblocks -s -v /dev/sda1 > badblocks.txt

参数说明:

  • -b<区块大小> 指定磁盘的区块大小,单位为字节
  • -o<输出文件> 将检查的结果写入指定的输出文件
  • -s 在检查时显示进度
  • -v 执行时显示详细的信息
  • -w 在检查时,执行写入测试
  • [磁盘装置] 指定要检查的磁盘装置
  • [磁盘区块数] 指定磁盘装置的区块总数
  • [启始区块] 指定要从哪个区块开始检查

坏块的修复:

硬盘在使用时不能修复,否则可能存在写并发的问题,所以修复前需要umount对应分区(若为系统所在分区就没办法在线修复了,因为无法umount):

经过上面的扫描,我們得到了一个文件badblocks.txt:

16435904

sda1有1个坏块16435904,先用dd备份坏块:

dd if=/dev/sda1 bs=4096 skip=16435904 of=/tmp/15435904.dat count=1

用badblocks的写测试功能,对这些坏块进行重写(注意:-w写测试会覆盖数据,所以一定要备份):

badblocks -s -w /dev/sda1 16435904 16435904

对修复后的坏块重新检查:

badblocks -s -v /dev/sda1 16435904 16435904

如果前面的操作有成功的备份/tmp/15435904.dat,就把它写回(可选):

dd if=/tmp/15435904.dat of=/dev/sda1 seek=15435904 bs=4096 count=1

对分区重新检查:

badblocks -s -v /dev/sda1 > badblock.txt

若没有坏道说明修复已完成,若有坏道可以尝试重复以上方法

完成后重新mount分区:

mount -t ext4 /dev/sda1 xxx

参考链接:https://www.runoob.com/linux/linux-comm-badblocks.html

八、磁盘检测与分析(smartctl)

SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及,每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来。这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。硬盘运行了几千小时后,很多内在的物理参数都会发生变化,某一参数超过报警阈值,则说明硬盘接近损坏,此时硬盘依然在工作,如果用户不理睬这个报警继续使用,那么硬盘将变得非常不可靠,随时可能故障。

smartctl [option] device:

  • -i 指定设备
  • -d 指定设备类型,例如:ata, scsi, marvell, sat, 3ware,N
  • -a 或A 显示所有信息
  • -l 指定日志的类型,例如:TYPE: error, selftest, selective, directory,background, scttemp[sts,hist]
  • -H 查看硬盘健康状态
  • -t short 后台检测硬盘,消耗时间短
  • -t long 后台检测硬盘,消耗时间长
  • -C -t short 前台检测硬盘,消耗时间短
  • -C -t long 前台检测硬盘,消耗时间长
  • -X 中断后台检测硬盘
  • -l selftest 显示硬盘检测日志

参考链接:https://blog.csdn.net/u011065164/article/details/77099225

系统篇: ext4 文件系统相关推荐

  1. Linux系统篇-文件系统虚拟文件系统

    看了之前的关于Linux内存管理和进程调度的文章,相比读者们应该对Linux有了大致的了解,本文的主题是Linux虚拟文件系统.闲话少说,开始! 1.软链接和硬链接的区别 我们知道文件都有文件名与数据 ...

  2. Linux开发篇 | Linux下制作EXT4文件系统镜像

    一.创建文件系统镜像挂载目录 $ sudo mkdir fs 二.创建初始大小的镜像文件 此处以创建4G大小为例,其中4G=bs×count: $ sudo dd if=/dev/zero of=fs ...

  3. Linux内核学习:EXT4 文件系统在 Linux 内核系统中的读写过程

    目录 1 概述 2 虚拟文件系统 与 Ext4 文件系统 2.1 sys_write( ) 代码跟踪 2.2 sys_write( ) 过程分析 2.3 sys_write( ) 的核心部分 vfs_ ...

  4. linux系统fsck.ext4,linux – 如何在fsck之后恢复损坏的ext4文件系统?

    我在软件raid5上有一个ext4文件系统.当我开始耗尽空间时,文件系统运行"好了"好几年了.我在6x2T硬盘上有9T的音量.我开始通过执行mdadm失败,删除,添加,重建,重复过 ...

  5. Ext4文件系统架构分析(一)

    本文描述Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3和Ext2文件系统,除了它们不支持的Ext4的特性外.整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等 ...

  6. ext4文件系统的delalloc选项造成单次写延迟增加的分析

    最近我们的服务进程遇到kill -15后处于Z的状态,变为了僵尸进程,经过/proc/{thread_id}/stack查看其上线程的栈,发现是卡在了fwrite的过程中,而我们的系统中所有文件系统挂 ...

  7. 【linux】循序渐进学运维-基础篇-修复文件系统实战

    文章目录 前言: 实验环境 解决方案 1) 系统出现只读的情况的解决方案 2) 系统文件受损,可以使用fsck命令 a. 创建一个1G的分区 b. 对分区进行格式化 c. 破坏文件系统并重新挂载 d. ...

  8. 系统性学习Ext4文件系统(图例解析)

    Ext4文件系统布局综述 一个的Ext4文件系统被分成一系列块组.为减少磁盘碎片产生的性能瓶颈,块分配器尽量保持每个文件的数据块都在同一个块组中,从而减少寻道时间.以4KB的数据块为例,一个块组可以包 ...

  9. EXT4文件系统学习(二)dumpe2fs查看ext4文件系统超级块信息数据

    编译dumpe2fs工具 Linux系统有此工具软件可直接使用, 如果没有可选择自己手动编译,下面介绍编译ARM开发板的dumpe2fs工具: 下载 git clone git://git.kerne ...

  10. I.MX6ULL_Linux_系统篇(20) kernel分析-menuconfig

    linux内核的功能非常丰富,大多功能可以通过menuconfig图形界面来选择配置,但是我们面对众多的功能,往往不能快速确定配置项位置或无法理解配置项功能,本篇将对配置项做一下简要解析!(作者不建议 ...

最新文章

  1. 使用C++基于Socket编程实现文件下载(改进-封装成类)
  2. 第二课.进一步熟悉Linux
  3. 【算法】双指针算法 ( 有效回文串 II )
  4. android 从相册或相机获取图片并且裁剪 支持android 7.0
  5. 如何在SAP Spartacus里捕捉感兴趣的事件
  6. 硬盘序列号示例_序列化代理模式示例
  7. ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...
  8. WebHelper类
  9. PHPStrom 使用技巧以及基本设置教程【更新完结】
  10. python绘图库seaborn_python绘图库——Matplotlib及Seaborn使用(入门篇2)
  11. [抄]外部奖励对内在动机的侵蚀
  12. Sqlserver 以前我在学校T-sql建ATM取款机的sql语句
  13. Scala学习(一、环境配置和基础)
  14. paip.提升用户体验-----c++ 宏的使用...替换从在的地张儿复制过来的代码.
  15. Centos7环境启动mongod报polkit服务启动失败
  16. 面试被问到平衡二叉树如何平衡?
  17. 计算机的数字音乐,论数字音乐作曲
  18. 2022年lazada跨境店 新,马,泰,菲等4个国家正式开放食品类目招商
  19. 机器人操作系统入门(一)ROS简介
  20. python实现炫酷字母雨

热门文章

  1. 计算机传真,电脑收发传真
  2. wepe重装win10用U盘安装系统
  3. Zemax操作24--高斯光束的聚焦和传播
  4. python blp模型 估计_随机系数Logit模型及Stata实现
  5. Android 腾讯信鸽集成
  6. npm/cnpm install 报错 platform unsupported
  7. kuangbin 简单搜索 A 棋盘问题
  8. 代理记账公司能够为企业客户提供哪些服务
  9. 移动硬盘无法在Mac上装载如何修复?
  10. 专用于个人简历的latex模板