2019年7月1日月曜日

GARMIN eTrex30x : 内蔵メモリをフォーマット -> 復旧

3月に起きた事。ブルベシーズン開始にあたり、eTrexの地図を最新にしようと思いたつ。その操作で誤って内蔵メモリを初期化してしまい、eTrexがまともに動かない状況に。一時は買い替えも覚悟したものの、なんとか復旧。その方法の備忘録です。


いつもよりテキスト多めで長いです。


<経緯>

使っているeTrexは英語版。それに日本語OSM地図を表示させている。この組み合わせで動かすには、いろいろとあれこれしなくてはならないが、その方法はよく知られている。ただ一度使える状態にしても、新しい地図データに置き換えようとすると、その度に一工夫が必要で面倒だ。

地図を認識させる方法はいくつかあるものの、自分が使っているのは方法はファームウェアを上げ下げする方法。難易度は高くないものの、やはり面倒なのでシーズン開始のタイミングでやっておこうかと思ったのが、イベントの始まり。


<イベント開始>

eTrexは内部にドライブが2つあり、システム情報やデータ入出力を行うための内蔵メモリと、主に地図情報を保存しておくためのmicroSDがある。macやPCにつなぐとそれぞれがドライブとして見える。

地図データの更新なので、microSDを直接macに接続して作業したほうが速いのだが、内蔵メモリに保存されているデータもいじりたかったので、macに接続して操作を開始。ついでなのでmac側からmicroSDをフォーマット開始。

ここで痛恨のミス。間違えて内蔵メモリに対してフォーマットを開始してしまった。

すぐに気づいたものの、時すでに遅し。とはいえ、内蔵メモリのバックアップはとってあったので、フォーマット後に戻せば大丈夫だろうと完了を待った。フォーマット後にバックアップを戻し、ファームウェア更新ファイルをコピー。microSDもフォーマットし、新しい地図データをコピー。これで大丈夫とスイッチオン。

とりあえずメニューも表示されるし、動作もしている。ただなんか変だ。内蔵メモリにはグローバル地図のデータがあるが、それが読み込まれず、真っ白な地図しか表示されない。

???

いろいろとチェックした所、内蔵メモリにアクセスしていない(できていない)様子。通常だとファームウェア更新ファイルを内蔵メモリに置くと、起動時にそれを読み込まれるが、それが行われない。なにより内蔵メモリに保存する操作を行うとDatabase Errorのメッセージが表示される。

保存できない様子。。。

どうやらフォーマットしてしまった影響で、内蔵メモリを読み書きできなくなったみたいだ。ただ内蔵メモリを読み込めなくても、起動ができる事実というは想定外で、これが故におかしな状態になった事に気づくのが遅れた。

原因がフォーマットだと思われたので、もう一度フォーマットしたり、その形式をいろいろと変えてみたりするも、一向に復旧する気配がない。このあたりで内蔵メモリをフォーマットするのは、かなりやばいことだということに気づき始める。

ネットで同様の問題を検索しても
「内蔵メモリ、フォーマットしちゃって動かない。直し方しらない?」
「それはご愁傷様。サポートセンターに連絡するしかないよ」
的なやり取りしか見当たらず。

これはヤバそう。

一応サポートにメールしてみた。わりとすぐに返答が来たが、その内容は
Unfortunately, the only solution I can offer is to exchange the device out for you.  
本体交換が唯一提案できる方法との事。しかも10〜14稼働日ぐらいは必要らしい。送付にかかる時間も考えるとブルベ初戦までの復旧は厳しい感じ。また新品をネットで買うのとあまり変わらないぐらいの費用が発生するようだ。ちゃんと対応してくれるのはさすがのGarmin様でありがたいものの、現実的な解決方法ではなさそうだ。

内蔵メモリの初期化、ヤバイです。

有効な解決策が新品購入しかないとわかったので、それはそれでスッキリ。むしろそれしかないのであれば、何でもトライすべき状態。類似案件まで調べまくって、やっと似たような案件を探り当てる事ができた。

Solution: Garmin Montana internal Memory reformatted on Mac
ソースの記事へのリンク

結果としてはこの方法でeTrexも復旧できた。


<原因と復旧>

事の原因はフォーマットによりBSD名が変更され、それによりeTrexが認識できなくなるの事のようだ。

ソースサイトの記載では、復旧にはmac(or Linux)とWindowsのマシンが必要。ざっくりいうとLinuxのddコマンドで内蔵メモリをきれいにし、その後WindowsマシンでFAT32にフォーマットする、というもの。自分もいろいろと試したが、macのみ、もしくはWindowsのみで復旧させる事はできなかった。この2種類のOSが必要だと考えてよい。

macに接続してドライブの認識状態を確認してみる。内蔵メモリをmacでフォーマットしてしまった状態だとこうなる。
内蔵メモリは「disk4」というBSD名というのは変わらないが、ボリュームが付与され「disk4s1」というBSD名も付与されている。この「disk4s1」という名前がついた状態がNG。この状態になると起動時にアクセスできなくなるようだ。microSDについてはボリュームが付与されているかは関係ないようだ。

この状態を修正する。

1. macにつないだ状態でターミナルウィンドウを起動する
2. ターミナルで「dd if=/dev/zero of=/dev/disk4」と打ち込む。disk4としたのは自分の環境だとdisk4というドライブにマウントされているため。環境によって異なるので、接続状態を確認して適宜変える。
3. 上記コマンドを実行
4. コマンドの実行の完了を確認したらmacから取り外す。コマンド完了時はボリュームが付与されていないはず。
5. Windowsに取り付ける。
6. WindowsでFAT32でフォーマットする

3のddコマンドの実行にはとても時間がかかるので注意。自分が見た限りでは数時間程度では終わらず、寝る前に仕込み、朝起きていたら出来上がっていたというレベル。ddコマンドがやっていることは、内蔵メモリの容量分のnull値をすべてのセクターに対して書き込んでいるので、都合3G分のnull値をUSB経由で出力しているので時間がかかる。

6が完了するとeTrexが内蔵メモリにアクセスできる状態に復帰する。バックアップしてあった内容を戻すのもいいが、戻したいバージョンのファームファイルをおいておけば、起動時にそれを読み込み、内蔵メモリのフォルダ構成も復元される。
このフォルダ構成まで復元してくれる

復旧後のドライブの状態。自分の環境では内蔵メモリは「disk4」というBSD名で認識されてはいるが、ボリュームは付与されておらず「disk4s1」というようなBSD名もない。これが正常に動く状態だ。
この状態まで復帰できたら、バックアップしておいたグローバル地図ファイルをコピーすれば、地図が表示される。


という事でめでたくeTrexは復旧できた。一時は買い替えも覚悟したが、動いてくれて助かった。情報を残してくれた先人に大感謝である。

そして内蔵メモリをフォーマットするようなヘマを自分がするとは思ってもいなかった。多分皆他人事だと思うが、その日は突然やってくるのである。内蔵メモリのバックアップが必要になる日も突然やってくるので、日々のバックアップも抜かりなく。

明日は我が身ですぞ。


0 件のコメント:

コメントを投稿