fsck命令功能与主超级块修复

简介:

 fsck 命令用于检查和维护文件系统,该命令类似于windows下的chkdsk命令。

通常当意外关闭了电源,或者电源异常中断而导致系统意外关闭,一般会造成数据丢失,严重的会破坏文件系统的完整性,这时就需要用fsck命令检查文件系统的一致性,同时修复被破坏的文件系统。
在运行fsck命令之前,一定要保证文件系统处于非挂起状态,也就是说只能在文件系统被卸载后才能使用fsck命令。使用fsck命令时,必须保证文件系统对应的逻辑卷能够访问。如果文件系统没有问题,是完整的,使用fsck命令时仅仅报告这个文件系统中的文件数,已使用的块数,以及空闲的块数。如果文件系统出现了问题,那么将报告相应的问题信息,同时提示是否进行修复。如果文件系统损坏严重,无法修复时,只能恢复该文件系统的备份。
 
fsck 命令的常用参数:
-f :要求执行一个快速的检查。
-n –y :用于回答fsck命令想用户提出的问题。-y 通常用于修复一个严重被破坏的文件系统,用-y 参数时,fsck命令也会删除一些严重被破坏的文件。
-p :不显示fsck命令检查的小问题的信息。
-v :指出被检查的文件系统的类型,默认jfs ,用那个后要检查jfs2 类型的文件系统,就要指定-v jfs2参数。
 
直接执行这个命令会检查/etc/filesystems文件中check=true的文件系统。通常新建的文件系统不执行默认的检查,因此,如果需要执行默认检查的话,需要在etc/filesystems文件中该文件系统小节添加check =true 选项。
 
fsck 与超级块( superblock) 的修复
1、  jfs 系统 :当执行mount命令挂载jfs文件系统,如果出现如下错误,则很有可能是由于超级块损坏所造成的。
# mount /testjfs
 mount: 0506-324 Cannot mount /dev/lv00 on /testjfs: A system call received a parameter that is not valid.
# fsck /testjfs --执行fsck命令进行修复时提示信息如下:
 Not a recognized filesystem type. (TERMINATED)
# od -x -N 100 /dev/lv00 0x1000 --查看超级块的内容,-x 标志显示十六进制格式的输出而 -N 标志指示系统只从偏移参数(+)格式化 64 个输入字节,这指定了文件中开始文件输出的点。
fsck命令功能与主超级块修复
 0x1000(3030 3130)处破坏的幻值。如果创建文件系统时接受了所有缺省值,则幻数应该为 (4321 8765)。如果覆盖了任何缺省值,则幻数应该为 (6587 2143)。对比当前幻数的第二个超级块( secondary superblock jfs secondary superblock 的地址固定为 block 31
fsck命令功能与主超级块修复
注意 0x1f000 处的正确幻值。下面将第二个超级块复制到主超级块。
# dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00 --还原备份到主超级块。
# fsck /dev/lv00 –检查文件系统
fsck命令功能与主超级块修复
# mount /testjfs     --挂载文件系统成功。
 
2、  jfs2  系统:当执行mount命令挂载jfs2文件系统,如果出现如下错误,则很有可能是由于超级块损坏所造成的。
# mount /test    --/test是逻辑分区/dev/fslv02的挂载点,为jfs2文件系统。
mount: 0506-324 Cannot mount /dev/fslv02 on /test: The media is not formatted or the format is not correct.
 
JFS2 系统超级块有所不同,其默认偏移量为 32 ,可用 fsck 命令可自动备份超级块来修复主超级块。
# fsck /dev/fslv02 -- fsck 命令检查 /dev/fslv02 分区。
fsck命令功能与主超级块修复
由于主超级块(superblock)被破坏,可以从备份超级块中恢复数据,因此fsck命令提示是否要修复主超级块,修复过程中有可能会删除一些破损严重的文件。在这里输入y还原主超级块数据。
# mount /test --挂载/test .
 

   转载自:http://sm.xfy.cn/html/201117/87.html

本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/647942如需转载请自行联系原作者

daibaiyang119


相关文章
|
网络协议 关系型数据库 MySQL
如何使用宝塔面板搭建MySQL数据库并实现无公网IP远程访问
如何使用宝塔面板搭建MySQL数据库并实现无公网IP远程访问
1914 3
|
9月前
|
自然语言处理 API 数据安全/隐私保护
手把手教你搭建 cssbuy 淘宝代购系统
随着全球电商的兴起,淘宝成为海外用户青睐的购物平台,但语言、支付和物流等问题限制了其直接使用。CSSBuy 等淘宝代购系统应运而生,为海外用户提供便捷的购物体验。本文详细解析如何搭建类似系统,涵盖需求分析与功能模块设计。目标用户包括海外华人、留学生及外国消费者,核心功能涉及商品搜索、代购下单、支付集成、物流管理、客服售后及多语言支持等。系统模块包括用户管理、商品管理、购物车、订单管理、支付管理、物流管理、客服售后和多语言模块,全面满足海外用户的购物需求。
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
11月前
|
JSON 前端开发 数据安全/隐私保护
一文看懂mitmdump加密对抗
一文读懂mitmdump上下游代理实现对抗前端加解密
|
定位技术
高德的一次性定位不返回结果问题
高德的一次性定位不返回结果问题
476 0
|
存储 Linux 编译器
Linux用户空间和内核空间所有15种内存分配方法
Linux用户空间和内核空间所有15种内存分配方法
556 1
|
SQL 网络协议 网络安全
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
672 0
|
存储 机器学习/深度学习 算法
图论基础:从数学原理到C/C++实现
图论基础:从数学原理到C/C++实现
419 0
|
SQL 关系型数据库 MySQL
“震撼揭秘!Flink CDC如何轻松实现SQL Server到MySQL的实时数据同步?一招在手,数据无忧!”
【8月更文挑战第7天】随着大数据技术的发展,实时数据同步变得至关重要。Apache Flink作为高性能流处理框架,在实时数据处理领域扮演着核心角色。Flink CDC(Change Data Capture)组件的加入,使得数据同步更为高效。本文介绍如何使用Flink CDC实现从SQL Server到MySQL的实时数据同步,并提供示例代码。首先确保SQL Server启用了CDC功能,接着在Flink环境中引入相关连接器。通过定义源表与目标表,并执行简单的`INSERT INTO SELECT`语句,即可完成数据同步。
1548 1
|
运维 安全 Linux
Linux|编译最新版的openssh-server-9.3的rpm包(一)
Linux|编译最新版的openssh-server-9.3的rpm包(一)
893 0