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]
中止 (コアダンプ)