2016年11月18日

I tried fsck.hfsplus for crush HDD.......OMG!

I will challenge to repair removed Macintosh inner HDD by Ubuntu.


 まあ、備忘録というか、どこかの誰かさんに役に立つことでもあればいいね、的な話。


 以前トラブってマックから取り外したHDD。お仕事優先でとにかく復旧させたので、このディスクは放置され、中身の吸い出しも行っていない。通電するとなんとなくカリカリ言うので、もしかして復活できるのかなと期待が膨らむ。というより、フォーマットしたら元に戻りそうではある。それだと中身データが。。。

$ sudo apt-get install hfsprogs

 SATA接続させる謎のパーツを購入していたので、まずはUbuntuに接続するも、Gpartedで覗いてもビックリマーク登場でマウントすらできない。で、ネットでコイツを拾って来なさいということでそそくさとターミナル起こして拾ってきた。
 どこでfsck.hfsplusコマンドがインストールされたかは自分でわかっていないが、まずはどうするのでしょうかとお伺いをかけてみる。

$ fsck.hfsplus -h
fsck.hfsplus: invalid option -- 'h'
usage: fsck.hfsplus [-c [size] dfl m [mode] npqruy] special-device
  c size = cache size (ex. 512m, 1g)
  d = output debugging info
  f = force fsck even if clean (preen only) 
  l = live fsck (lock down and test-only)
  m arg = octal mode used when creating lost+found directory 
  n = assume a no response 
  p, a = just fix normal inconsistencies 
  q = quick check returns clean, dirty, or failure 
  r = rebuild catalog btree 
  u = usage 
  y = assume a yes response 

 だそうなので、こんなことしてみた。

$ sudo fsck.hfsplus -d -f -p /dev/sdc2 <-----私の外したHDDのタイプとパーテーションです。

 すると、色んなコト吐き出しながら頑張っています。すでに一時間以上経っていて、作業しているUbuntuの載ったEeePC君でお茶の間で作業しています。テレビ見ながら。。。

** /dev/sdc2
Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
could not get alternate volume header at 1951845950, err 5 
** Checking HFS Plus volume.
** Checking Extents Overflow file.
** Checking Catalog file.
** Checking multi-linked files.
** Checking Catalog hierarchy.
** Checking Extended Attributes file.
** Checking volume bitmap.
** Checking volume information.
   Volume Header needs minor repair
invalid alternate VHB at 1951845950 result -60 
   Verify Status: VIStat = 0x8000, ABTStat = 0x0000 EBTStat = 0x0000
                  CBTStat = 0x0000 CatStat = 0x0000
** Repairing volume.
** Rechecking volume.
** Checking HFS Plus volume.
** Checking Extents Overflow file.
** Checking Catalog file.
** Volume check failed.
volume check failed with error 5 
volume type is pure HFS+ 
primary MDB is at block 0 0x00 
alternate MDB is at block 0 0x00 
primary VHB is at block 2 0x02 
alternate VHB is at block 1951845950 0x7456ce3e 
sector size = 512 0x200 
VolumeObject flags = 0x07 
total sectors for volume = 1951845952 0x7456ce40 
total sectors for embedded volume = 0 0x00 
*** Error in `fsck.hfsplus': double free or corruption (!prev): 0x085b8030 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xb75d2377]
/lib/i386-linux-gnu/libc.so.6(+0x6d2f7)[0xb75d82f7]
/lib/i386-linux-gnu/libc.so.6(+0x6dbb1)[0xb75d8bb1]
fsck.hfsplus[0x804bfa6]
fsck.hfsplus[0x804cbf0]
fsck.hfsplus[0x8049e0d]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0xb7583637]
fsck.hfsplus[0x804a130]
======= Memory map: ========
08048000-08076000 r-xp 00000000 08:0e 933748     /sbin/fsck.hfsplus
08076000-08077000 r--p 0002d000 08:0e 933748     /sbin/fsck.hfsplus
08077000-08079000 rw-p 0002e000 08:0e 933748     /sbin/fsck.hfsplus
08079000-0807b000 rw-p 00000000 00:00 0 
08565000-085f9000 rw-p 00000000 00:00 0          [heap]
b5400000-b5421000 rw-p 00000000 00:00 0 
b5421000-b5500000 ---p 00000000 00:00 0 
b556a000-b756b000 rw-p 00000000 00:00 0 
b756b000-b771a000 r-xp 00000000 08:0e 1573383    /lib/i386-linux-gnu/libc-2.23.so
b771a000-b771b000 ---p 001af000 08:0e 1573383    /lib/i386-linux-gnu/libc-2.23.so
b771b000-b771d000 r--p 001af000 08:0e 1573383    /lib/i386-linux-gnu/libc-2.23.so
b771d000-b771e000 rw-p 001b1000 08:0e 1573383    /lib/i386-linux-gnu/libc-2.23.so
b771e000-b7721000 rw-p 00000000 00:00 0 
b7721000-b773b000 r-xp 00000000 08:0e 1574188    /lib/i386-linux-gnu/libbsd.so.0.8.2
b773b000-b773c000 r--p 00019000 08:0e 1574188    /lib/i386-linux-gnu/libbsd.so.0.8.2
b773c000-b773d000 rw-p 0001a000 08:0e 1574188    /lib/i386-linux-gnu/libbsd.so.0.8.2
b773d000-b7759000 r-xp 00000000 08:0e 1574230    /lib/i386-linux-gnu/libgcc_s.so.1
b7759000-b775a000 rw-p 0001b000 08:0e 1574230    /lib/i386-linux-gnu/libgcc_s.so.1
b775a000-b775d000 rw-p 00000000 00:00 0 
b775d000-b775f000 r--p 00000000 00:00 0          [vvar]
b775f000-b7760000 r-xp 00000000 00:00 0          [vdso]
b7760000-b7782000 r-xp 00000000 08:0e 1573374    /lib/i386-linux-gnu/ld-2.23.so
b7782000-b7783000 rw-p 00000000 00:00 0 
b7783000-b7784000 r--p 00022000 08:0e 1573374    /lib/i386-linux-gnu/ld-2.23.so
b7784000-b7785000 rw-p 00023000 08:0e 1573374    /lib/i386-linux-gnu/ld-2.23.so
bfce6000-bfd07000 rw-p 00000000 00:00 0          [stack]
中止 (コアダンプ)

と言われて「異常」終了したようです。とりあえずリスタートしてみました。うわ、ChromiumOS立ち上がっちゃった。。。


おおお、中見えないけどマウントされた。ちょっと期待。。。さ、リスタートしてUbuntu立ち上げよ。
.
.
.
.
.
がびょ〜ん、まるで見えません。こまた(;_;)
MBRからなんにも分かりません。大泣き
.
.
.
.

とりあえず、マックに接続し直して、なんとかマウントできました。少しホッとする。
さてどうしたものでしょう。