Linux下恢复EXT3 Superblock的正确方法
浏览:28日期:2022-07-29
;Linux Ext3文件系统超级块(Superblock)错误问题. .... bad superblock on /dev/hda4 一个同事做的恢复, 结果把数据都抹掉了. 后来想想, 当时的直接 fsck 的恢复方法不对. 正确的方法应该是这样的: 1 获取错误的出错磁盘(或者设备)块的大小. 有很多种方法可以得到. 比如, # tune2fs -l /dev/hda4其实大多数情况下是 1 K. 2 对当前的出错磁盘备份. 恢复超级块(Superblock)的过程其实也是一个有风险的过程.能做备份就做好备份. 如果有其他空闲设备, 用 dd 命令把该设备上的内容备份起来. 3 一般来说, 超级块错基本上也就是主超级块错, 在 Ext2/Ext3 文件系统创建的时候, 会同时在屏幕上提示我们在已经在几个地方备份了超级块.那么怎么发现这些超级块在什么地方呢? 我们看看帮助信息: -b superblockInstead of using the normal superblock, use an alternativesuperblock specified by superblock. This option is normallyused when the primary superblock has been corrupted. The loca-tion of the backup superblock is dependent on the filesystem'sblocksize. For filesystems with 1k blocksizes, a backupsuperblock can be found at block 8193; for filesystems with 2kblocksizes, at block 16384; and for 4k blocksizes, at block32768.Additional backup superblocks can be determined by using themke2fs program using the -n option to print out where thesuperblocks were created. The -b option to mke2fs, which spec-ifies blocksize of the filesystem must be specified in order forthe superblock locations that are printed out to be accurate.If an alternative superblock is specified and the filesystem isnot opened read-only, e2fsck will make sure that the primarysuperblock is updated appropriately upon completion of thefilesystem check.4 开始恢复.如果文件系统块大小为1K, 则我们可以用如下命令恢复: # /sbin/fsck.ext3 -b 8193 /dev/hda4 如果这个备用块(8193)也有问题,那么 可以尝试 24577(8192*3+1) ,或者是 40961 (8192*5+1). 可能您也会看出来,超级块的保存位置是按照 1,3,5,7 这样的规律的. 具体的位置在 BlockSize(8192)*N+1. 在超过 500M 的空间上是这样的规律.小于 500M 的我不知道.那位知道告诉我一下,谢谢。
标签:
Linux系统
相关文章:1. AMD RX 6000系列支持光线追踪 私有API的除外2. 英特尔12代酷睿Alder Lake现身:16 核24线程3. 联想小新Air14 2021酷睿版价格4699元 明日开售4. 苹果macbook笔记本键盘专利曝光 单个按键可重新配置5. Wine 6.1正式版更新内容:支持VKD3D 1.2 优化内存布局6. 苹果修复新iMac显示白线 解决无法自动连接Wi-Fi问题7. 英伟达RTX 3080 Ti、RTX 3070 Ti 等显卡规格信息曝光8. NVIDIA封杀RTX 3060挖矿性能 其他显卡躲过一劫9. AMD RX 6900 XT显卡规格曝光 对比RTX 3080怎么样10. rtx 3060显卡什么级别 rtx 3060冰龙与你直面地狱咆哮

