linux 文件系统损坏修复方式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 最近,在使用树莓派时,由于异常掉电,导致树莓派的文件系统遭到破坏,系统启动时提示下面的信息:

最近,在使用树莓派时,由于异常掉电,导致树莓派的文件系统遭到破坏,系统启动时提示下面的信息:


网络异常,图片无法展示
|


由上图的提示信息可知,由于mmcblk0p2分区的文件系统(EXT4)的日志文件加载失败导致系统不能启动。Linux系统对于文件系统修复是有专门的工具,那就是fsck,它是用来检查和修复Linux文件系统的工具。下面fsck的基本用法:


fsck,来自 util-linux 2.31.1
fsck.ext4: 不适用的选项 -- h
用法:fsck.ext4 [-panyrcdfktvDFV] [-b 超级块] [-B 块大小]
    [-l|-L 坏块文件] [-C fd] [-j 外部日志]
    [-E 扩展选项]  [-z 撤销文件] 设备
重要提示:
 -p                   自动修复(不询问)
 -n                   不对文件系统做任何更改
 -y                   对所有询问都回答“是”
 -c                   检查可能的坏块,并将它们加入坏块列表
 -f                   强制进行检查,即使文件系统被标记为“没有问题”
 -v                   显示更多信息
 -b superblock        使用备选超级块
 -B blocksize         使用指定块大小来查找超级块
 -j external_journal  指定外部日志的位置
 -l bad_blocks_file   添加到指定的坏块列表(文件)
 -L bad_blocks_file   指定坏块列表(文件)
 -z undo_file         创建一个撤销文件


但是,树莓派initramfs中的busybox没有fsck这个工具,那该如何修复呢?


办法就是,取出树莓派的系统SD卡,找一台装有Linux系统的电脑,在电脑上识别出sd卡,然后,按照如下步骤操作:


查看sd分区信息,找到受损的分区


$ sudo fdisk -l
设备       启动   起点      末尾      扇区  大小 Id 类型
/dev/sdc1         2048    409599    407552  199M  c W95 FAT32 (LBA)
/dev/sdc2       409600 121651166 121241567 57.8G 83 Linux


其中,sdc2就是mmcblk0p2分区。


使用fsck进行修复


sudo fsck  /dev/sdc2
fsck,来自 util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
writable:正在修复日志
在 writable 中发现日志校验值错误
writable 未被彻底卸载,强制进行检查。
第 1 步:检查inode、块和大小
发现了可能属于损坏的孤立链接表的inode。  处理<y>? 是
Inode 390310 位于孤立的inode列表中。  已处理.
Inode 390320 位于孤立的inode列表中。  已处理.
Inode 390381 位于孤立的inode列表中。  已处理.
Inode 390385 位于孤立的inode列表中。  已处理.
Inode 390391 位于孤立的inode列表中。  已处理.
Inode 390758 位于孤立的inode列表中。  已处理.
Inode 390980 位于孤立的inode列表中。  已处理.
Inode 390982 位于孤立的inode列表中。  已处理.
Inode 391223 位于孤立的inode列表中。  已处理.
Inode 391225 位于孤立的inode列表中。  已处理.
Inode 391228 位于孤立的inode列表中。  已处理.
Inode 391230 位于孤立的inode列表中。  已处理.
Inode 391239 位于孤立的inode列表中。  已处理.
Inode 391240 位于孤立的inode列表中。  已处理.
Inode 391245 位于孤立的inode列表中。  已处理.
第 2 步:检查目录结构
/var/log/journal/3ee6df9e1aa048efbefea1d2f060ddab(174717)中的项 “system.journal”含有删除或未使用的@ 138360。  清除<y>? 是
第 3 步:检查目录连接性
/lost+found未找到。  创建<y>? 是
第 4 步:检查引用计数
第 5 步:检查组概要信息
块位图的差异:  -859648
处理<y>? 是
Inode位图的差异:  -138360
处理<y>? 是
writable:***** 文件系统已修改 *****
writable:149791/3763264 文件(0.2% 为非连续的), 1609362/15155195 块


修复过程中会请求如何处理问题,一般选择“是”,可以指定-a选项,自动修复。修复完成之后,重新将sd卡插入树莓派,系统可以正常启动。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
47 7
|
2天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
20 7
|
23天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
87 8
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
55 7
|
2月前
|
存储 安全 Linux
|
3月前
|
存储 缓存 Linux
Linux文件系统的功能规划
【9月更文挑战第12天】本文通过类比图书馆,形象地解释了文件系统的组织形式和管理方法。首先,文件系统需按块存储文件,并设有索引区方便查找。其次,热点文件应有缓存层提高效率,文件需分类存储以便管理。最后,Linux内核需记录文件使用情况,通过文件描述符区分不同文件,确保文件操作准确无误。
|
7月前
|
存储 监控 安全
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
74 1
|
4月前
|
存储 监控 Linux
|
7月前
|
Unix Linux
Linux 常用命令汇总(六):磁盘与文件系统命令
Linux 常用命令汇总(六):磁盘与文件系统命令