Ubuntu 22.04 にマウントしていた NTFS の HDD。
$ sudo fdisk -l /dev/sda
ディスク /dev/sda: 7.28 TiB, 8001563222016 バイト, 15628053168 セクタ
Disk model: ST8000DM004-2CX1
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 0152CC16-0BE1-4EED-9A8F-C3C8F2B3909F
デバイス 開始位置 最後から セクタ サイズ タイプ
/dev/sda1 2048 15628052479 15628050432 7.3T Microsoft 基本データ
書き込み中に、突然の電源断を行ったら読めなくなった。なお電源断の原因は関係のない別の処理。
$ cd /media/nanbuwks/202105/encoded/
$ ls
ls: ディレクトリ '.' を読み込んでいます: 入力/出力エラーです
なお、 /dev/sda1 は /media/nanbuwks/202105 にマウントしていて、
/media/nanbuwks/202105/
は読めて、
/media/nanbuwks/202105/encoded/
これだけ読めない。
問題の切り分け
ハードウェアエラーでないことは確認済み。なお、Windows7 マシンに接続すると該当ディレクトリは読める。
ntfsfix (効果なし)
Ubuntu 22.04 に ntfsfix が入っていたので使ってみる。
アンマウントして
$ cd ../..
$ sudo umount 202105
実行
$ sudo ntfsfix /dev/sda1
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sda1 was processed successfully.
nanbuwks@nanbuwks-B550M-S2H:/media/nanbuwks$ ls 202105/encoded
ls: ディレクトリ '202105/encoded' を読み込んでいます: 入力/出力エラーです
効いてないですね。
Windwos7 上で chkdsk
再度、Windows7 に接続して起動する。手動で chkdsk をやろうとしたけれども、今回は自動で chkdsk した。一度目は chkdsk が発動しなかったけどこの条件はなんだろう?
終了後、Ubuntu マシンに接続し直したら読めるようになっていた。
$ ls
.
.
.
encode.py
ffmpeg_output
ffmpeg_output.txt
test.mp4
test.ts
今回の結果として、 ntfs-3g 上で
- 特定のディレクトリが読むことができなかった
- それの修復ができなかった
ということになります。
NTFS システムを USB 起動の Linux でサルベージしたりすることがありますが、このようなことがあったということは注意ですね。