👋

ext4 error loading journalと言われたときの対処

2021/09/04に公開約1,200字

USBの外付けHDDがmountできなくなったことがあり、かなり慌てた。

$ mount -t ext4 /dev/sdb1 /mnt
mount: /mnt: /dev/sdb1 のスーパーブロックを読み込むことができません.
$

dmesgすると原因は判る。

[ 2137.370246] JBD2: recovery failed
[ 2137.370255] EXT4-fs (sdb1): error loading journal

ジャーナリングファイルだけが壊れてるようだ。

hard disk - Recovering an ext4 filesystem with corrupt journal - Unix & Linux Stack Exchange

mount -o ro,noloadで行けるらしい。

$ sudo mount -t ext4 -o ro,noload /dev/sdb1 /mnt

確かにmountはできた。

しかしこのままでは書き込めないので腹を括ってfsckしてみる。

$ sudo fsck.ext4 /dev/sdb1
e2fsck 1.44.1 (24-Mar-2018)
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
******: recovering journal
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 45 in log
JBD2: Invalid checksum recovering block 49 in log
JBD2: Invalid checksum recovering block 52 in log
Journal checksum error found in ******
Pass 1: Checking inodes, blocks, and sizes

ここまで終われば、ジャーナルファイルの修復は終わってるようだ。
mountできるようになっている。

$ sudo mount -t ext4 /dev/sdb1 /mnt

Discussion

ログインするとコメントできます