AppleTV(第一世代)の内蔵HDDを換装するのはこれで通算3回目なのだが、またしても躓いてしまったので記憶に焼き付けるべく記録を残すことにする。
換装履歴は初期搭載HDD40GB→SSD240GB→SSD960GB→HDD2TB
途中SSDを挟んでいるのは、AppleTV(第一世代)はHDDの接続インターフェースがIDEなため、SATA→IDE変換コネクタを挟まなければならず、内部スペースに余裕が無いのでSSDの殻を剥いて無理やり内蔵していたため、なのだが、今回お手頃になってきた2.5インチ2TB HDDを取り寄せてみると7mm厚のスリムタイプで変換コネクタを使っても内部スペースに収めることができた。ちょっと無理矢理ではあるが。
さてAppleTV(第一世代)の内蔵HDDを換装するにはただ交換するだけではダメで、AppleTV(第一世代)のための特殊なフォーマット作業をしないといけない。
特殊と言っても特殊な機器とかは不要なのだが。
Macと交換用HDD、交換用HDDをMacと接続するための装置(HDDケースなど)があればいい。
まず交換用HDDをMacと接続し、ディスクユーティリティを起動。
交換用HDDをパーティション1、GUIDパーティションマップ、MacOS拡張(ジャーナリング)でフォーマット。
そしてターミナルを起動し「df」を実行するとボリュームのリストが表示される。
※以下赤字はターミナルでユーザーが実行する文字列、青字はシステムが返してくる文字列です。error や faild などが返ってきたら失敗です。
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 332305536 301906944 29886592 91% 850055 4294117224 0% /
devfs 368 368 0 100% 638 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk1s2 3906357344 1665040 3904692304 1% 73 4294967206 0% /Volumes/名称未設定
上記「名称未設定」がAppleTVに新たに内蔵する予定のHDD。
その列の左のほう、「disk1s2」がこのHDDのパーティション番号。
「disk1」がこのHDD自体の番号、「s2」がこのHDDの何番目のパーティションかを表す。
HDDの番号を確認したところでAppleTVに内蔵するためのフォーマット作業を開始します。
※以下HDD番号はすべて「disk1」として記述。HDD番号は作業しているマシンの環境によって変わります。
「diskutil unmountDisk /dev/disk1」を実行しボリュームをアンマウント
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
successful、成功です。
このコマンドは何度も使いますが、ターミナルでは矢印キー上下で実行履歴を参照できるのでそれで再利用しましょう。
「sudo gpt destroy /dev/disk1」を実行
「sudo gpt create /dev/disk1」を実行
MacBook-Air:~ MacBook_Air$ sudo gpt destroy /dev/disk1
MacBook-Air:~ MacBook_Air$ sudo gpt create /dev/disk1
ここは実行してもシステムから何の反応も来ないが、処理は行われています。
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo gpt add -b 40 -i 1 -s 69632 -t efi /dev/disk1」で第1パーティションを作成。
MacBook-Air:~ MacBook_Air$ sudo gpt add -b 40 -i 1 -s 69632 -t efi /dev/disk1
/dev/disk1s1 added
added、追加できたようです。
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo gpt add -b 69672 -i 2 -s 819200 -t 5265636F-7665-11AA-AA11-00306543ECAC /dev/disk1」で第2パーティションを作成。
MacBook-Air:~ MacBook_Air$ sudo gpt add -b 69672 -i 2 -s 819200 -t 5265636F-7665-11AA-AA11-00306543ECAC /dev/disk1
/dev/disk1s2 added
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo gpt add -b 888872 -i 3 -s 1843200 -t hfs /dev/disk1」で第3パーティションを作成。
MacBook-Air:~ MacBook_Air$ sudo gpt add -b 888872 -i 3 -s 1843200 -t hfs /dev/disk1
/dev/disk1s3 added
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo gpt show /dev/disk1」で現在のパーティション構成を確認します。
MacBook-Air:~ MacBook_Air$ sudo gpt show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 3904297063
3907029135 32 Sec GPT table
3907029167 1 Sec GPT header
重要なのは「2732072 3904297063」この行。
「2732072」までの数値はどんなHDD容量でも同じになります。
「3904297063」以降はHDD容量によって変わります。
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo gpt add -b 2732072 -i 4 -s 3904297056 -t hfs /dev/disk1」で第4パーティションを作成。
「3904297056」は前出の「3904297063」から「7」マイナスした数値になります。
MacBook-Air:~ MacBook_Air$ sudo gpt add -b 2732072 -i 4 -s 3904297056 -t hfs /dev/disk1
/dev/disk1s4 added
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
「sudo newfs_hfs -v "OSBoot" /dev/disk1s3」で第3パーティションに「OSBoot」と名前を付けます。
MacBook-Air:~ MacBook_Air$ sudo newfs_hfs -v "OSBoot" /dev/disk1s3
Initialized /dev/rdisk1s3 as a 900 MB case-insensitive HFS Plus volume
「sudo newfs_hfs -v "Media" /dev/disk1s4」で第4パーティションに「Media」と名前をつけます。
MacBook-Air:~ MacBook_Air$ sudo newfs_hfs -v "Media" /dev/disk1s4
Initialized /dev/rdisk1s4 as a 2 TB case-insensitive HFS Plus volume
「sudo gpt show /dev/disk1」で再度、現在のパーティション構成を確認します。
MacBook-Air:~ MacBook_Air$ sudo gpt show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 69632 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
69672 819200 2 GPT part - 5265636F-7665-11AA-AA11-00306543ECAC
888872 1843200 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
2732072 3904297056 4 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
3907029128 7
3907029135 32 Sec GPT table
3907029167 1 Sec GPT header
上記のようになっていればオーケーな筈です。
「diskutil unmountDisk /dev/disk1」でボリュームを再度アンマウント。
MacBook-Air:~ MacBook_Air$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
そして最後の仕上げ。
なのですが肝心なことを忘れてました。
私はもう何度もやってきたことなのですっ飛ばしてしまいましたが、すべての作業の前にやっておかなければならないことがありました。
もともとAppleTVに入っていたHDDの第2パーティション部分のリカバリーデータのコピーが必要なのです。
順序が後になってしまいましたが、説明します。
まず交換用HDDをMacから外します。アンマウント状態な筈なので外してもオーケーです。
そしてもともとAppleTVに入っていたHDDをMacに繋ぎます。接続インターフェースがIDEですが、AppleTV(第一世代)のHDDを交換しようなんて考える人ならそれくらい持ってますよね?
最初の方でやった「df」でHDD番号を確認
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 332305536 301075832 30717704 91% 849955 4294117324 0% /
devfs 374 374 0 100% 649 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk1s4 75146000 253632 74892368 1% 525 4294966754 0% /Volumes/Media
/dev/disk1s3 1843192 799584 1043608 44% 8203 4294959076 0% /Volumes/OSBoot
上記「Media」「OSBoot」の「disk1」が対象のボリュームです。
「sudo dd if=/dev/disk1s2 of=./recovery.dmg bs=1m」でリカバリーデータを「recovery.dmg」として保存します。
MacBook-Air:~ MacBook_Air$ sudo dd if=/dev/disk1s2 of=./recovery.dmg bs=1m
399+1 records in
399+1 records out
419405824 bytes transferred in 53.004325 secs (7912672 bytes/sec)
上記システムメッセージが返ってくるのを待ってからユーザーフォルダ直下を見ると「recovery.dmg」がある筈です。
それではもともとAppleTVに入っていたHDDをアンマウントし接続解除、交換用HDDを繋ぎます。
そして今度こそ最後の仕上げ。
「sudo dd if=/Users/MacBook_Air/recovery.dmg of=/dev/disk1s2 bs=1m」で第2パーティションにリカバリーデータを書き込みます。
「sudo dd if=」まで入力して、「/Users/MacBook_Air/recovery.dmg」部分は「recovery.dmg」の場所を示すものなので手入力でもいいですが、実際に「recovery.dmg」をドラッグ・アンド・ドロップしたほうが楽だし間違いがありません。
ドラッグ・アンド・ドロップしたら、続きの「 of=/dev/disk1s2 bs=1m」を入力して実行すればオーケー。
MacBook-Air:~ MacBook_Air$ sudo dd if=/Users/MacBook_Air/recovery.dmg of=/dev/disk1s2 bs=1m
399+1 records in
399+1 records out
419430400 bytes transferred in 51.828887 secs (8092599 bytes/sec)
1分ほど待って上記の反応が来れば完成です!
アンマウントし外してAppleTVに内蔵させましょう。
AppleTVに電源を入れればリカバリーモードで起動し、言語選択後、出荷状態への復元を促される筈です。
復元が成功し再起動してもまた言語選択が出ますが正常な動作なので焦らないように。
正常に起動したらiTunesとの同期は後回しにしてまずOSアップデートを優先。
AppleTV(第一世代)は既にオンラインサービスも打ち切られ、OSアップデートがいつまでサポートされるのか不明です。もしAppleにアップデータを削除されればAppleTV(第一世代)のOSアップデートは絶望的になります。自力でのOSアップデートはまず不可能なので、AppleTV(第一世代)は現在使っている状態が最終形態だと思っておいたほうがいいかもしれない。
※OSアップデートをしてはいけません。詳細は次の記事を参照。
以上、AppleTV(第一世代)の内蔵HDD交換手順でした。
本件では成功事例だけを記述してますが、最初に言ったように私は何度も躓いてます。
他の方の情報を参考にやってたのだが、何故か上手くいかないのでアレンジせざるを得なかったのです。
もしかしたら私と同じようにやってもうまくいかない人も居るかもしれませんが、がんばって下さい。
日本にまだAppleTV(第一世代)を使っている人がどれほど残っているのか分かりませんが。
.