硬盘 mount (挂载)出现 superblock (超级块) 作者: 萧禹 时间: 2017-04-22 分类: Ubuntu,Linux,疑难杂症 访问: 3,782 次 本文介绍了当 linux 系统下硬盘挂在出现 superblock 错误的解决方法 ## 现象 `$sudo mount -t ext4 /dev/sdb1 /mnt/media` mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so `$dmesg | tail -n 20` [ 662.775753] EXT4-fs (sdb1): error loading journal [ 664.141542] sdb: sdb1 [ 665.520490] JBD2: Invalid checksum recovering block 129 in log [ 666.650534] JBD2: recovery failed [ 666.650545] EXT4-fs (sdb1): error loading journal [ 885.576328] sdb: sdb1 [ 886.927562] JBD2: Invalid checksum recovering block 129 in log [ 888.148915] JBD2: recovery failed [ 888.148925] EXT4-fs (sdb1): error loading journal [ 1351.768797] sdb: sdb1 [ 1353.130971] JBD2: Invalid checksum recovering block 129 in log [ 1354.269588] JBD2: recovery failed [ 1354.269598] EXT4-fs (sdb1): error loading journal [ 1714.130574] sdb: sdb1 [ 1715.538450] JBD2: Invalid checksum recovering block 129 in log [ 1716.661510] JBD2: recovery failed [ 1716.661521] EXT4-fs (sdb1): error loading journal [ 2052.229550] JBD2: Invalid checksum recovering block 129 in log [ 2053.363165] JBD2: recovery failed [ 2053.363176] EXT4-fs (sdb1): error loading journal ## 修复过程 `$fdisk -l` 查看硬盘情况 * 修复分区表 `$testdisk` =>选择 [Create] =>选择 /dev/sdb =>选择 EFI GPT #选择原分区表类型 =>选择 Analyse #进行分析 =>列出分区, 按P进入可查看文件 =>按"w"写入分区 =>一路退出程序后重启 =>ok 看到 `/dev/sdb1` 是 `Microsoft basic data` 分区, 但原分区是 `ext4` * 转换分区表格式 `$fdisk /dev/sdb` gdisk是否是操作GPT的唯一,而fdisk只能是MBR? =>输入`t` =>输入`15` #转换 `Microsoft basic data` 到 `linux filesystem`(编号15) =>输入 `w` # 保存修改 * 使用e2fsck修复superblock `$./e2fsck -a /dev/sdb1` Journal checksum error found in /dev/sdb1 /dev/sdb1 was not cleanly unmounted, 强制检查. /dev/sdb1: 5205/183148544 files (2.9% non-contiguous), 270824019/732566385 blocks ※如果出现: $e2fsck: Get a newer version of e2fsck! 时需要下载最新的e2fsck 如果不行可使用备份超级块方法 * 查找超级块 $testdisk->[Create]->[/dev/sdv/]->[EFi GPT]->[Advanced] #根据原分区类型选择 如果出现 `$> 1 P Unknown 2048 5860533127 5860531080` 则选择 [Type]->[EFI System]->[ext4] #根据原分区类型选择 superblock 0, blocksize=4096 [] superblock 32768, blocksize=4096 [] superblock 98304, blocksize=4096 [] superblock 163840, blocksize=4096 [] superblock 229376, blocksize=4096 [] superblock 294912, blocksize=4096 [] superblock 819200, blocksize=4096 [] superblock 884736, blocksize=4096 [] superblock 1605632, blocksize=4096 [] superblock 2654208, blocksize=4096 [] `$e2fsck -b 32768 /dev/sdb1` 使用备份修复 如果失败可重复尝试其他超级块 ### 参考 * [修复损坏的 ext4 大分区数据](http://exaos.github.io/blog/2013/03/05_fix-bad-ext4.html) * [记一次 superblock 损坏导致服务器无法启动的故障修复](http://www.cppblog.com/dancefire/archive/2011/03/09/fix-bad-superblock-in-linux.html) * [ext4 broken file system on ubuntu 14.04.4](https://askubuntu.com/questions/747656/ext4-broken-file-system-on-ubuntu-14-04-4) * [linux下的分区修复软件Testdisk](http://www.php-oa.com/2009/02/13/testdisk.html) 标签: mount superblock 文章版权:萧禹的博客 - 这个人很懒, 什么都没写 本文链接:https://www.flysfeq.site/index.php/archives/28/ 转载请注明文章原始出处 !