iSUSE Linux Enterprise Server で ext3 のパーティションのスーパーブロックを修復する方法です。

-現象-

SLES12 で ext3 フォーマットのパーティション(SLES11 からアップデートしたので...)をマウントしようとすると、"can't read superblock" と出てマウントできない。

sles12:~ # mount /dev/sdd2 /mnt/sdd
mount: /dev/sdd2: can't read superblock


-修復の経過-

デバイスは接続されているかを確認してみます。
sles12:~ # ls /dev/sdd*
/dev/sdd /dev/sdd2

デバイスは見えているらしいので fsck してみます。
fsck してみるとデバイスが見えない。

sles12:~ # fsck -C -V -y /dev/sdd2
fsck from util-linux 2.25
[/sbin/fsck.ext2 (1) -- /dev/sdd2] fsck.ext2 -y -C0 /dev/sdd2
e2fsck 1.42.11 (09-Jul-2014)
fsck.ext2: No such file or directory while trying to open /dev/sdd2
Possibly non-existent device?



スーパーブロックの確認を行います。

sles12:~ # mkfs ext3 -n /dev/sdd2
mke2fs 1.42.11 (09-Jul-2014)
/dev/sdd2 contains a ext3 file system
last mounted on /mnt/sdd on Thu Feb 26 07:16:54 2015
Proceed anyway? (y,n) y
Creating filesystem with 483705101 4k blocks and 120930304 inodes
Filesystem UUID: 0d570a96-5e94-43c4-86ae-6d8c3e9aa9e3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

sles12:~ #


スーパーブロックのバックアップが見つかりました。この中で任意のバックアップから復旧します。

-y を付けると y/n のインタビューが省略され自動的に修復されます。


Csles12:~ # fsck.ext3 -b 98304 -B 4096 -y /dev/sdd2
e2fsck 1.42.11 (09-Jul-2014)
/dev/sdd2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #0 (31223, counted=0).
Fix? yes

Free blocks count wrong for group #1 (31229, counted=0).
Fix? yes

Free blocks count wrong for group #2 (32254, counted=0).
Fix? yes


: 略 -- -y を付けない場合、 Fix? の後に
いちいち 'y' を押さなければなりません。

Free inodes count wrong (120930293, counted=120921131).
Fix? yes


/dev/sdd2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdd2: 9173/120930304 files (14.6% non-contiguous), 423218646/483705101 blocks
sles12:~ #


一応終わった様です。それではマウントしてみましょう。

sles12:~ # mount /dev/sdd2 /mnt/sdd
sles12:~ # cd /mnt/sdd
sles12:/mnt/sdd # ls
.Trash-0 data lost+found

マウント出来ました。

--

この様なエラーが出て来たディスクはやっぱり信用できませんね。


slandcenter.jp


-Keyword-


SUSE SLES11 ext3 superblock 修復





[PR]
by islandcenter | 2015-02-28 15:43 | SUSE | Trackback | Comments(0)