分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

原贴:http://linux.bloghome.cn/posts/84832.html

修复被破坏了的linux文件系统分区表

linux系统管理 /linuxman 发表于2007-04-20, 17:10

昨天晚上在信息港的机房里鼓捣到凌晨4点多,帮助朋友修复损坏的硬盘数据。由于当时没有详细的记录,凭回忆先记录下整个过程,也许有错误的地方,请不吝指正!

现象和环境: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/s

mke2fs /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, 73729

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This 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点,这个盘暂时被宣布死缓。

经验教训

  • 系统安装时,一定要记录磁盘分区的相关信息,包括分区情况,所使用的参数(比如块大小)
  • 常规备份是万万不能缺少的。对于系统管理员而言,系统崩溃是迟早要面临的事情,没有侥幸可言。
标签: linux , 分区表

更多»

  • 在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下如何实现秒以下精确定时与休眠   进城农民工

« 笑话 《全站导航》 免费赠送6位qq »
« 妖精一生中的三个朋友 《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文件系统分区表相关推荐

  1. linux 文件系统损坏修复方式

    最近,在使用树莓派时,由于异常掉电,导致树莓派的文件系统遭到破坏,系统启动时提示下面的信息: 由上图的提示信息可知,由于mmcblk0p2分区的文件系统(EXT4)的日志文件加载失败导致系统不能启动. ...

  2. linux检查文件一致性,3.20 fsck(检查并修复Linux 文件系统)

    3.20 fsck(检查并修复Linux 文件系统) (1)频度等级:☆☆ (2)功能说明: 检查文件系统的一致性并且以交互方式修复文件系统.在出现系统故障之后,总是运行fsck 命令.矫正的动作也许 ...

  3. linux 读分区表文件,Linux 磁盘分区表、文件系统查看和操作

    提要:Linux磁盘分区表.文件系统的查看.统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作:但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看:本文只 ...

  4. linux 重建文件系统命令,fsck命令 – 检查并修复Linux文件系统

    fsck命令的英文全称是"filesystem check",即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失. L ...

  5. linux命令中fsck命令 – 检查并修复Linux文件系统

    fsck命令的英文全称是"filesystem check",即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失. L ...

  6. Linux文件系统概览

    一.历史与ext4文件系统 MINIX文件系统 MINIX系统的文件系统 1987年发布(印刷版),教学目的 最多能处理 14 个字符的文件名,并且只能处理 64MB 的存储空间 ext文件系统 19 ...

  7. 深入理解ext4等Linux文件系统

    了解 ext4 的历史,包括其与 ext3 和之前的其它文件系统之间的区别. 目前的大部分 Linux 文件系统都默认采用 ext4 文件系统,正如以前的 Linux 发行版默认使用 ext3.ext ...

  8. linux 文件系统及磁盘管理

    一个新的磁盘盘需要经过分区.格式化(创建文件系统),挂载之后才能正常使用.关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table) ...

  9. Linux文件系统及磁盘分区与格式化(二次排版)

    Linux 的文件系统 磁盘物理组成                磁盘的组成与分区:  由图中可以看到磁盘中存储数据的部件为圆形的盘片(磁盘主要记录数据的部分). 盘片的结构      而磁盘的物理 ...

最新文章

  1. android电源驱动程序,[转]Android虚拟电源管理驱动
  2. HDU 1428 漫步校园
  3. JVM技术周报第2期
  4. axis2开发webservice之编写Axis2模块(Module)
  5. php 验证真实姓名,支付宝转账到支付宝 验证真实姓名
  6. 走捷径拿到大厂25K高级测试Offer,别不服!
  7. 关于web.xml配置中的url-pattern
  8. jquery 使用文档
  9. cv2.cvtColor() 的使用
  10. 自签名证书制作和使用方法
  11. 问卷调查报告html,问卷调查报告格式
  12. linux虚拟机usb网卡驱动,【Vbox】centos虚拟机安装usb网卡驱动
  13. matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
  14. Jenkins+GitLab+Docker持续集成LNMP
  15. SSL双向认证和单向认证原理
  16. html怎么设置seo,简单说明一下html相关的seo设置!
  17. 3.9 编写程序,模拟石头剪刀布游戏。程序随机产生一个数,这个数为2、1或0,分别表示石头剪刀和布。
  18. 2021年5月11日19:50:56 学习 真的很难吗?
  19. Rsync 服务部署与参数详解
  20. Exception in thread “main“ java.lang.Error: Unresolved compilation problem: at second.math_practi

热门文章

  1. 会长得了绝症(转自NGA)
  2. 源特VPS8703 微功率隔离电源专用驱动芯片 6.5-30VIN/30V/0.5A 功率管的功能简介
  3. chinaren校友录的永久xss漏洞
  4. TouchDesigner学习 TOP与CHOP结合制作小应用
  5. office——word内容替换、插入
  6. SiteSucker for macOS + CRACK
  7. 电脑定时关机怎么设置
  8. docker启动mysql实例之后,docker ps命令查询不到
  9. 如何在线编辑html邮件,可轻松编辑HTML邮件
  10. oracle索引实现方式,Oracle之索引的创建方式