修复被破坏了的linux文件系统分区表
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
修复被破坏了的linux文件系统分区表
现象和环境:REDHAT FC4,一块36G的SCSI硬盘(/dev/sdc)无法mount,fdisk也看不到分区信息。另外一块该盘重要数据的备份盘(9G SCSI硬盘,/dev/sdb)也是同样的现象。均为独立磁盘,没有RAID设置。(怎么这么巧?数据盘和备份盘同时坏掉了)
整个尝试修复的过程大致如下:
尝试查看分区信息
尽管事先被告知fdisk看不到分区信息,还是固执的尝试了一下:-)
fdiks -l /dev/sdc
果然什么样都看不到。但是,系统启动的时候正确的列出了磁盘的相关信息(大小等),而且fdisk也能够列出磁盘大小等相关物理信息,只是没有分区信息。因此初步判断,是磁盘的分区表丢失,不一定是磁盘物理损坏。
尝试使用parted查看和恢复分区信息
parted /dev/sdc
print自然也列不出分区信息,好在管理员还有一块分区完全一致的硬盘(是早先通过dd完全复制的),于是挂上这块clone盘,获得了sdc的分区信息,记录下来(注:这里可以有更好的处理方法,见下面的gpart部分),尝试使用parted恢复分区信息:
rescue
start? 0
end ? 4G
上面是parted尝试根据给出起始尺寸和结束尺寸,在这个范围内寻找分区标志符,以决定是否重新写入分区表。可是奇怪的是,总共6个分区,parted只能按照这个办法找回一个分区,其他的都宣告一个提示,大致的意思是“分区结束符位于开始符之前”。
也尝试使用parted的mkpart重新创建分区表,但是失败,提示不能创建更多的主分区(难道分区信息没有丢失吗?为什么不允许创建分区信息呢?)
使用gpart尝试找回分区信息
parted没有成功的找回分区信息,于是转而尝试gpart:
gpart /dev/sdc
可喜的是,gpart经过一段时间的搜寻,列出了看起来有道理的分区信息!但是,按照管理员提供的clone盘,应该是找到6个分区(包括swap)才对,但是gpart只找到了4个。经过分析发现, gpart原来只是找到了主分区分析,扩展分区和逻辑分区没有找到。
尝试通过
gpart -W /dev/sdc /dev/sdc
将分区信息重新写入到损坏盘中。虽然fdisk, parted可以列出分区信息,但是还是无法mount。于是怀疑文件系统也遭到了损坏。
使用reiserfsck/e2fsck修复文件系统
管理员告知,/dev/sdc的文件系统应该是reiserfs,于是尝试使用reiserfsck检查和修复文件系统(事后证明,这是一个严重的错误!)
reiserfsck --check /dev/sdc1
reiserfsck --fix-fixable /dev/sdc1
reiserfsck --rebuild-sb /dev/sdc1
reiserfsck --rebuild-tree /dev/sdc1
但是,一番修复之后,发现仍然无法mount!对比clone盘(早就应该比对了,失策!),才发现原来文件系统是ext3!这一番使用reiserfsck的折腾,估计/dev/sdc1是彻底完蛋了。好在知道/dev/sdc1是一个没有重要数据的分区,可以把用来试验。
于是,又使用e2fsck(fsck.ext3)尝试修复数据:
fsck.ext3 /dev/sdc1
告知找不到superblock,于是:
fsck.ext3 -b 8193 /dev/sdc1
尝试找回superblock,但是失败!于是在另外几个保存superblock的地方继续尝试:
fsck.ext3 -b 24577 /dev/sdc1
fsck.ext3 -b 40961 /dev/sdc1
fsck.ext3 -b 57345 /dev/sdc1
fsck.ext3 -b 73729 /dev/sdc1
但是,均告失败!没有找回superblock,极度失望!
小技巧:如何知道superblock存储的位置?
dd if=/dev/zero of=/tmp/test bs=1024 count=160000
160000+0 records in
160000+0 records out
163840000 bytes (164 MB) copied, 4.35857 seconds, 37.6 MB/smke2fs /tmp/test
/tmp/test is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
40000 inodes, 160000 blocks
8000 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
20 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729Writing inode tables: done
Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
尝试live cd
万般无奈,下载knoppix live cd,启动起来,居然认出并成功加载了/dev/sdb (备份盘)!于是把备份数据先弄下来再说。
但是,knoppix没有认出/dev/sdc,时间已经临近凌晨4点,这个盘暂时被宣布死缓。
经验教训
- 系统安装时,一定要记录磁盘分区的相关信息,包括分区情况,所使用的参数(比如块大小)
- 常规备份是万万不能缺少的。对于系统管理员而言,系统崩溃是迟早要面临的事情,没有侥幸可言。
更多»
- 在Debian lenny上面安装virtualbox linuxman
- 检测iowait的脚本 linuxman
- apache进程数只增不减的秘密 linuxman
- 讲解dns的好文章 linuxman
- 各种cache系统的性能比较 linuxman
相关日志更多»
- 在Debian lenny上面安装virtualbox linuxman
- 究竟哪个平台更有价值 -- Windows 和 Linux 、UNIX 的比较 lxbs
- 检测iowait的脚本 linuxman
- linux下转换文字编码 Jerry
- Linux下如何实现秒以下精确定时与休眠 进城农民工
« 妖精一生中的三个朋友 《IT·互联网》 奇迹世界 龙骑士加点 »
回复列表
1楼 zongfeng 说到:恭喜您的
祝贺您,您的日志已经被推送到了精彩推荐频道的系统管理分类下(点击查看),继续努力哦!
2007-04-21, 08:31
2楼 qiangren 说到:博源网上有很多好的学习资源,值得一看ht
博源网上有很多好的学习资源,值得一看http://www.boyuan114.com
2008-01-09, 19:40
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
修复被破坏了的linux文件系统分区表相关推荐
- linux 文件系统损坏修复方式
最近,在使用树莓派时,由于异常掉电,导致树莓派的文件系统遭到破坏,系统启动时提示下面的信息: 由上图的提示信息可知,由于mmcblk0p2分区的文件系统(EXT4)的日志文件加载失败导致系统不能启动. ...
- linux检查文件一致性,3.20 fsck(检查并修复Linux 文件系统)
3.20 fsck(检查并修复Linux 文件系统) (1)频度等级:☆☆ (2)功能说明: 检查文件系统的一致性并且以交互方式修复文件系统.在出现系统故障之后,总是运行fsck 命令.矫正的动作也许 ...
- linux 读分区表文件,Linux 磁盘分区表、文件系统查看和操作
提要:Linux磁盘分区表.文件系统的查看.统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作:但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看:本文只 ...
- linux 重建文件系统命令,fsck命令 – 检查并修复Linux文件系统
fsck命令的英文全称是"filesystem check",即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失. L ...
- linux命令中fsck命令 – 检查并修复Linux文件系统
fsck命令的英文全称是"filesystem check",即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失. L ...
- Linux文件系统概览
一.历史与ext4文件系统 MINIX文件系统 MINIX系统的文件系统 1987年发布(印刷版),教学目的 最多能处理 14 个字符的文件名,并且只能处理 64MB 的存储空间 ext文件系统 19 ...
- 深入理解ext4等Linux文件系统
了解 ext4 的历史,包括其与 ext3 和之前的其它文件系统之间的区别. 目前的大部分 Linux 文件系统都默认采用 ext4 文件系统,正如以前的 Linux 发行版默认使用 ext3.ext ...
- linux 文件系统及磁盘管理
一个新的磁盘盘需要经过分区.格式化(创建文件系统),挂载之后才能正常使用.关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table) ...
- Linux文件系统及磁盘分区与格式化(二次排版)
Linux 的文件系统 磁盘物理组成 磁盘的组成与分区: 由图中可以看到磁盘中存储数据的部件为圆形的盘片(磁盘主要记录数据的部分). 盘片的结构 而磁盘的物理 ...
最新文章
- android电源驱动程序,[转]Android虚拟电源管理驱动
- HDU 1428 漫步校园
- JVM技术周报第2期
- axis2开发webservice之编写Axis2模块(Module)
- php 验证真实姓名,支付宝转账到支付宝 验证真实姓名
- 走捷径拿到大厂25K高级测试Offer,别不服!
- 关于web.xml配置中的url-pattern
- jquery 使用文档
- cv2.cvtColor() 的使用
- 自签名证书制作和使用方法
- 问卷调查报告html,问卷调查报告格式
- linux虚拟机usb网卡驱动,【Vbox】centos虚拟机安装usb网卡驱动
- matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
- Jenkins+GitLab+Docker持续集成LNMP
- SSL双向认证和单向认证原理
- html怎么设置seo,简单说明一下html相关的seo设置!
- 3.9 编写程序,模拟石头剪刀布游戏。程序随机产生一个数,这个数为2、1或0,分别表示石头剪刀和布。
- 2021年5月11日19:50:56 学习 真的很难吗?
- Rsync 服务部署与参数详解
- Exception in thread “main“ java.lang.Error: Unresolved compilation problem: at second.math_practi
热门文章
- 会长得了绝症(转自NGA)
- 源特VPS8703 微功率隔离电源专用驱动芯片 6.5-30VIN/30V/0.5A 功率管的功能简介
- chinaren校友录的永久xss漏洞
- TouchDesigner学习 TOP与CHOP结合制作小应用
- office——word内容替换、插入
- SiteSucker for macOS + CRACK
- 电脑定时关机怎么设置
- docker启动mysql实例之后,docker ps命令查询不到
- 如何在线编辑html邮件,可轻松编辑HTML邮件
- oracle索引实现方式,Oracle之索引的创建方式