`
loamy
  • 浏览: 323830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

现象和环境:REDHAT FC4,一块36G的SCSI硬盘(/dev/sdc)无法mount,fdisk也看不到分区信息。另外一块该盘重要数据的备份盘(9G SCSI硬盘,/dev/sdb)也是同样的现象。均为独立磁盘,没有RAID设置。(怎么这么巧?数据盘和备份盘同时坏掉了)

整个尝试修复的过程大致如下:

尝试查看分区信息

尽管事先被告知fdisk看不到分区信息,还是固执的尝试了一下:-)

fdiks -l /dev/sdc
cat /proc/partitions

果然什么样都看不到。但是,系统启动的时 候正确的列出了磁盘的相关信息(大小等),而且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。

分享到:
评论

相关推荐

    应到文件 多系统开机启动菜单修复工具

    1. 引导扇区:每个硬盘的主引导记录(Master Boot Record, MBR)或GUID分区表(GPT)的引导扇区存储了引导加载器的信息,如果这部分被破坏或覆盖,可能导致无法正常启动。 2. 引导项:在多系统环境中,引导加载器会...

    多系统引导自动修复工具

    6. **硬盘分区表修复**:如果硬盘分区表受到破坏,修复工具可以尝试从备份中恢复,或者使用特定的算法重建分区信息。例如,FDisk和Diskpart等命令行工具可以用来检查和修复分区表。 7. **系统备份与恢复**:一些...

    DD备份和恢复分区

    `dd`命令是Linux系统中用于数据复制的强大工具,常被用来备份和恢复文件系统。它支持多种输入输出方式,可以用来复制整个磁盘分区,甚至是硬盘的某个部分。 #### 二、备份与恢复磁盘分区 ##### 2.1 查看磁盘挂载...

    linux认证-笔试-基础——简答题、编程和多选题分享.pdf

    * 文件系统受到破坏时,需要使用 fsck 命令对受到破坏的文件系统进行修复。 六、文件系统管理 * i 节点在文件系统中的作用是对一个文件进行索引,包含了描述一个文件所必须的全部信息。 * 符号链接可以建立对于...

    Windows下修复mbr的软件(MbrFix)

    在Windows和Linux双系统环境下,MBR可能会因为各种原因受到破坏或被Linux的GRUB(Grand Unified Bootloader)覆盖,导致无法正常启动Windows。在这种情况下,使用MBR修复工具,如"MbrFix",就显得尤为重要。 ...

    多系统开机启动项修复

    在多系统环境下,如果Windows的启动配置文件被破坏或者因为重装系统导致启动菜单丢失,"NTBOOTautofix"能自动搜索并修复这些问题。它的"傻瓜式"操作界面意味着即使是对计算机不那么熟悉的用户也能轻松上手。 ...

    多系统修复

    常见的分区格式有MBR和GPT,根据不同的操作系统和硬件支持,选择合适的分区表类型。 3. 引导修复:在更新或修改系统后,有时可能会破坏引导,导致无法正常启动。这时可以通过系统修复光盘或USB修复引导加载器配置。...

    linux认证-笔试-基础——简答题、编程和多选题参照.pdf

    成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。使用命令 fsck 对受到破坏的文件系统进行修复。fsck 检查文件系统分为 5 步,每一步检查系统不同部分的连接特性并...

    多系统启动菜单修复工具

    2. **启动**:指电脑开机后,BIOS(基本输入输出系统)会读取硬盘上的MBR(主引导记录)或GPT(全局唯一标识分区表)来决定加载哪个操作系统。启动菜单就是在这一过程中出现,允许用户选择要启动的操作系统。 3. **...

    用Linux巧解硬盘逻辑锁.pdf

    在GParted中,选择“设备”-“检查”来检测硬盘错误,然后通过“分区”菜单进行修复操作,如修复MBR(主引导记录)或GPT(GUID分区表)。 5. **重建分区表**:如果需要,可以通过GParted创建新的分区表,重新分配...

    恢复Linux引导.pdf

    7. 分区表修复:如果分区表损坏,可以使用`gdisk`或`fdisk`等工具进行修复。 在恢复过程中,通常会使用Live CD/DVD或USB启动盘进入救援模式,以便安全地访问系统文件并进行修复。此外,了解备份和恢复策略,如定期...

    系统启动测试及排错红旗Linux授权认证培训.pptx

    此外,【硬盘主引导记录MBR】是硬盘启动的关键部分,它存储了分区表信息,负责引导系统的启动。如果MBR被破坏,可能导致系统无法正常启动。这时,可以利用Linux的救援模式进行修复。救援模式允许系统在不能正常启动...

    LINUX习题简答题

    成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。使用命令 fsck 对受到破坏的文件系统进行修复。fsck 检查文件系统分为 5 步,每一步检查系统不同部分的连接特性并...

    系统引导修复软件

    此外,还有一些第三方工具,如EasyBCD、Bootice等,它们提供了更高级的选项,如自定义引导菜单、修复MBR(主引导记录)或GPT(GUID分区表)等。 修复步骤大致如下: 1. 使用可启动的PE光盘或U盘引导电脑。 2. 进入...

    删除linux后windows无法启动的解决方法:修复MBR

    如果之后你选择卸载Linux系统,可能会导致Windows无法正常启动,因为MBR中的引导信息可能已被破坏或覆盖。 标题中提到的“删除Linux后Windows无法启动的解决方法:修复MBR”是一个常见问题,通常可以通过以下几个...

    linux系统启动故障及常见故障教程

    **主引导记录(Master Boot Record, MBR)**是硬盘上的一段重要代码,位于硬盘的第一个扇区(通常是512字节),负责识别硬盘上的分区表并加载操作系统。在Linux系统中,如果MBR出现问题,可能会导致系统无法正常启动...

    NT系统自动启动修复工具

    2. **MBR修复**:MBR包含了系统启动的信息,如分区表和引导程序。当MBR损坏时,工具可能会重建MBR来恢复启动功能。 3. **BCD修复**:BCD存储了所有可用操作系统的启动信息。如果BCD数据丢失或损坏,工具会尝试修复...

    双系统启动项修复

    2. **磁盘分区表损坏**:硬盘上的MBR(主引导记录)或GPT(GUID分区表)可能因为硬件故障、恶意软件或误操作而损坏,导致无法正确读取启动项。 3. **启动扇区病毒感染**:某些病毒会感染启动扇区,破坏启动项信息。...

    EXT2 3 4分区文件提取

    EXT2、EXT3和EXT4是Linux操作系统中广泛使用的文件系统格式,用于组织和存储数据。这些文件系统具有一定的结构,使得数据恢复成为可能,即使分区出现故障或损坏。以下是对EXT分区文件提取的详细说明: 1. **EXT分区...

Global site tag (gtag.js) - Google Analytics