REGZAにつないだUSBハードディスクを修復するぞ!

いきなり東芝 REGZAにつないでいたUSBハードディスクが認識しなくなった。
正確には認識はしているが、「新しいUSBハードディスクを検出しました。登録を行いますか?」と出てしまう。
しかも登録するには初期化が必要で全データが消えてしまう。。。。
テレビを再起動してもUSBハードディスクの電源を入れ直してもだめ。
新しいハードディスクを買ってきてコピーするか??とかいろいろ考えた。
でもとりあえずパソコンで中を見てみようと思い、つないでみた。

パソコンで確認する


REGZAについないでいたUSBハードディスクはXFSでフォーマットされている。
そのためWindowsでは見ることができないがLinuxでは普通に読むことができる。
VMwarePlayerからCentOSを起動しmountしてみることに。


[root@localhost ~]# mount -t xfs /dev/sdb1 /mnt
mount: /mnt: mount(2) システムコールが失敗しました: 利用可能なデータがありません.

うん、mountできない。

修復してみる


調べてみるとXFSは修復コマンドが用意されているので実行してみることにした。

[root@localhost ~]# xfs_repair /dev/sdb1
Phase 1 - find and verify superblock...
xfs_repair: V1 inodes unsupported. Please try an older xfsprogs.

使ったのはCentOS8。xfsprogsが新し過ぎでだめとのこと。
古いのを入れろと。。。

古いCentOSを入れることも考えたが少し面倒だと思い、RPMに入っているコマンドを
実行してみることにした。
なおxfsprogは3.0から大きく変わっているようなのでその前のバージョン2.9.4を使ってみることにした。

[root@localhost ~]# wget http://ftp.iij.ad.jp/pub/linux/centos-vault/5.2/extras/x86_64/RPMS/xfsprogs-2.9.4-1.el5.centos.x86_64.rpm
--2019-10-12 20:59:36-- http://ftp.iij.ad.jp/pub/linux/centos-vault/5.2/extras/x86_64/RPMS/xfsprogs-2.9.4-1.el5.centos.x86_64.rpm
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.70, 2001:240:bb8f::1:70
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.70|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1408260 (1.3M) [application/x-rpm]
`xfsprogs-2.9.4-1.el5.centos.x86_64.rpm' に保存中

xfsprogs-2.9.4-1.el 100%[===================>] 1.34M --.-KB/s 時間 0.1s

2019-10-12 20:59:36 (10.2 MB/s) - `xfsprogs-2.9.4-1.el5.centos.x86_64.rpm' へ保存完了 [1408260/1408260]

[root@localhost ~]# mkdir temp
[root@localhost ~]# cd temp/
[root@localhost temp]# rpm2cpio ../xfsprogs-2.9.4-1.el5.centos.x86_64.rpm |cpio -idv
./lib64/libhandle.so.1
./lib64/libhandle.so.1.0.3
./sbin/fsck.xfs
./sbin/mkfs.xfs
./sbin/xfs_repair
./usr/sbin/xfs_admin
./usr/sbin/xfs_bmap
./usr/sbin/xfs_check
./usr/sbin/xfs_copy
./usr/sbin/xfs_db
./usr/sbin/xfs_freeze
./usr/sbin/xfs_growfs
./usr/sbin/xfs_info
./usr/sbin/xfs_io
./usr/sbin/xfs_logprint
./usr/sbin/xfs_mdrestore
./usr/sbin/xfs_metadump
./usr/sbin/xfs_mkfile
./usr/sbin/xfs_ncheck
./usr/sbin/xfs_quota
./usr/sbin/xfs_rtcp
./usr/share/doc/xfsprogs-2.9.4
./usr/share/doc/xfsprogs-2.9.4/CHANGES
./usr/share/doc/xfsprogs-2.9.4/COPYING
./usr/share/doc/xfsprogs-2.9.4/CREDITS
./usr/share/doc/xfsprogs-2.9.4/PORTING
./usr/share/doc/xfsprogs-2.9.4/README
./usr/share/locale/pl/LC_MESSAGES/xfsprogs.mo
./usr/share/man/man5/xfs.5.gz
./usr/share/man/man8/fsck.xfs.8.gz
./usr/share/man/man8/mkfs.xfs.8.gz
./usr/share/man/man8/xfs_admin.8.gz
./usr/share/man/man8/xfs_bmap.8.gz
./usr/share/man/man8/xfs_check.8.gz
./usr/share/man/man8/xfs_copy.8.gz
./usr/share/man/man8/xfs_db.8.gz
./usr/share/man/man8/xfs_freeze.8.gz
./usr/share/man/man8/xfs_growfs.8.gz
./usr/share/man/man8/xfs_info.8.gz
./usr/share/man/man8/xfs_io.8.gz
./usr/share/man/man8/xfs_logprint.8.gz
./usr/share/man/man8/xfs_mdrestore.8.gz
./usr/share/man/man8/xfs_metadump.8.gz
./usr/share/man/man8/xfs_mkfile.8.gz
./usr/share/man/man8/xfs_ncheck.8.gz
./usr/share/man/man8/xfs_quota.8.gz
./usr/share/man/man8/xfs_repair.8.gz
./usr/share/man/man8/xfs_rtcp.8.gz
5995 ブロック

これで準備は完了!
まずはinfoを打ってみる。

[root@localhost temp]# ./usr/sbin/xfs_info /dev/sdb1
xfs_info: /dev/sdb1 is not a mounted XFS filesystem

やっぱだめか。
しょうがない修復だ!!

[root@localhost temp]# ./sbin/xfs_repair /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
xfs_repair: read failed: 利用可能なデータがありません
XFS: failed to find log head
zero_log: cannot find log head/tail (xlog_find_tail=61), zeroing it anyway
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- agno = 6
- agno = 7
- agno = 8
- agno = 9
- agno = 10
- agno = 11
- agno = 12
- agno = 13
- agno = 14
- agno = 15
- agno = 16
- agno = 17
- agno = 18
- agno = 19
- agno = 20
- agno = 21
- agno = 22
- agno = 23
- agno = 24
- agno = 25
- agno = 26
- agno = 27
- agno = 28
- agno = 29
- agno = 30
- agno = 31
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- agno = 6
- agno = 7
- agno = 8
- agno = 9
- agno = 10
- agno = 11
- agno = 12
- agno = 13
- agno = 14
- agno = 15
- agno = 16
- agno = 17
- agno = 18
- agno = 19
- agno = 20
- agno = 21
- agno = 22
- agno = 23
- agno = 24
- agno = 25
- agno = 26
- agno = 27
- agno = 28
- agno = 29
- agno = 30
- agno = 31
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

おお!なんか出来たっぽいぞ!!
よし、まずはmountだ!!

[root@localhost temp]# mount -t xfs /dev/sdb1 /mnt
[root@localhost temp]# ls /mnt
M000020171020154050001c7e96be2c.dtv
M000020171020154050001c7e96be2c.dtv.meta
M000020171020154050001c7e96be2c.dtv.rat

 ・
 ・

おおおおお!ちゃんと見えてる!!

テレビにつないでみる


治ったっぽいのでテレビにつないでみた!






キターーー!普通に見えた!!!
良かったーー!
でもまたいつ壊れるかわからないから新しいのを用意しておいたほうがいいのかな。。。
なにわともあれ治ってよかった!!

コメント

非公開コメント