以下のデータ復旧には
・エラーメッセージが大量に出る
・あからさまにおかしいチャンクが発見されている

という条件が合致しないとやっても意味がないor事態が悪化する可能性があります。
必ず、最低は現状維持という意味でもバックアップを取って作業をしてください。

※この復旧方法は完全に元に戻す方法ではなく、チャンクが欠如している場合に
テキトーな地形で自動補填するMineCraftの機能を使用しています。
なので、後で補填される地形は本当にテキトーで違和感バリバリです。

-------↓本題
Wrong location! **@***
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at le.a(SourceFile:***)
        at sj.a(SourceFile:***)
        at oc.a(SourceFile:**)
        at kw.e(SourceFile:**)
        at kw.c(SourceFile:**)
        at net.minecraft.server.MinecraftServer.a(SourceFile:***)
        at net.minecraft.server.MinecraftServer.s(SourceFile:***)
        at net.minecraft.server.MinecraftServer.run(SourceFile:***)
        at cu.run(SourceFile:***)


マルチでサーバを管理していると、ある日突然、サーバのコンソール上で上記のようなエラーが出ました。

だいぶ前に普通のワールドにネザーと同じネザーラックや溶岩・岩盤がある地形が10チャンク以上出現するなど、
明らかにチャンクデータが破損→自動修復してるっぽい挙動がありました。
ただ、ゲームとしては問題なく動作していたため、ネザーラックやグローストーンを回収するなど悠長な事をしていました。
そんな中、OSの更新が来ていたので再起動を含めてメンテナンスをしていた時のこと、
上記エラーがざざーーーーっと時間にして30秒ほど大量に出続けました。
若干青ざめましたが、普通にログインできる。クライアントに各自自宅周辺の領域を見回ってもらっても問題ない様子。
エラー文中に[le.a]だの[sj.a]だのあるから他のソフトでよくある言語データが欠如してるとかかと思って看過していました。

その3日後、あるチャンクに近づくとすごい量のエラーがコンソール上に出ます。
そのうちキャラの動きがカクカクになり、動けなくなり、Javaが例外エラーを吐いて最終的に蹴り出されてしまいました
他のクライアントからも同様だったようです。
サーバ側のログには[lost connection: disconnect.endOfStream]と出ていました。

もう一度接続し、自分のキャラを動かしながらログを見ていると、
問題のチャンクを読み込む度にエラーが5~6個ずつ塊でざざっ、ざざっと出ていました。
チャンクファイルか中のデータに破損があるのは間違いなさそうでした。

バックアップにロールバックさせようにも大分前のデータしかなく、エラーを元にGoogle先生に聞き、
こちらのブログ記事に行きつきました。
Dungeons & Druaga様
http://meslon.jp/game/archives/437

同じような症状で、MCEditというソフトを使ってregionデータを修復するという方法のようです。
ただ、私の場合は同じように修復作業をやってもうまく修復できなかったようで、
キャラが同じ場所に行くとまた同じように大量にエラーを吐くという状態でした。
(修復処理は5~10分程度で終わりました)

ブログで紹介されているMCEditはよくできたソフトで、
実際の3Dマップを移動しながらキャラのスポーン位置を変更したり、
地形情報を編集したりでき、色んな機能があります(7割くらい使いこなせてない)。

私の場合は表世界にできたネザーの地形がおかしいので、この辺をいじればいいんじゃないかと思いついてやってみました。
後で別の方で同じようなエラーが出ていたデータがあったのですが、
そのワールドではチャンクが抜けたままになっていました。
何度再ログインしても同じ状態で、そのチャンクに入ると一気にエラーが吐かれていました。

私の場合はラッキーなことに不良チャンクが見つけやすかったのですが、
プレーヤー人数の多いサーバなどではどのチャンクが不良か見つけにくいかもしれませんね。
私は地道にログを見ながらパトロールするしか知りません。
他にいい方法があれば教えてください。


さて、具体的な修復方法です。

再度言いますが、
最低でも現状維持という意味で
必ずバックアップを取って作業をしてください。


まずWindowsでインストールできない場合はMicrosoft Visual Cのランタイムが必要です。
Microsoft Download Center
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29

MCEditのサイトからダウンロードしてインストールします。
http://davidvierra.com/mcedit/download.html

※MCEdit起動前に必ずMinecraftサーバやクライアントを終了させておきます。
終了しないとデータはいじられるわ、サーバにデータ上書きされるわ、何が起こるかわかりません。

# 2012.03.28 追記 ---------------------------------------------------------------------
以下は全く画像なしで説明しています。
読んでもわかりにくい場合は画像入りの説明がこちらにあります↓
http://blog.livedoor.jp/nikoniko_qdk/archives/4787418.html
-----------------------------------------------------------------------------------------------

起動したらいきなり警告画面が出てきます。
英語でサーバやクライアントを終了しなさいと警告していますので、OKを押して先に進みます。
[Load World]を選択して、自分のサーバデータのlevel.datを開きます。
PCの性能やワールドの大きさによっては読み込みに少し時間がかかりますが、
少し待つと普段のワールドがゲームに似た状態で表示されます

それでは、いよいよチャンクデータを削除しに行きます。
操作には少し慣れが必要ですが、WASDキーで位置移動右クリックしてマウスを動かすと視点移動です。
視点移動からカーソルに戻るには再度右クリックします。
最新版ではQキーで前進、Zキーで後退の位置移動が可能でした。

明らかにおかしいデータ位置まで移動します。
画面下側のマイクラのクイックスロットのようなものの中の一番左のアイコン(選択ツール)をクリックし、
おかしいチャンクの好きなブロックをクリックし、すぐ隣のブロックまでカーソルを移動させて再度クリックします。
これでチャンクのブロックを2~3個選択できた状態になります。
(3Dなので慣れないと操作が難しいですが、要領が分かれば割と簡単です)

選択している状態でスロット右端のアイコン(チャンク編集)をクリックします。
画面左端に小窓でDeleteやらCopyやらメニューが出てきますので、中から[Delete]をクリックして間違いなければ
確認画面で戻せませんがいいですか?と聞かれるので、OK(Yesだったかも)を押します。
場合やPCのスペックによっては少し時間がかかります。

これを、地形があからさまにおかしいチャンク分繰り返します。
複数チャンクにまたがっている場合は一度に選択することができます。

削除した地形はボコっと何もない空間になりますが、
この地形は次回サーバ上でキャラが移動したときにシステムが勝手に(かつ、かなりテキトーに)補填してくれます。
私の場合は海の上に砂漠の村ができました(笑)。

さて、チャンクの削除ができたらCtrlキーを押しながらSaveをクリックしてチャンク情報を保存します。
セーブが完了したらCtrlを押しながらQuitをクリックします。

私はこの状態でサーバを起動させるとエラーが出なくなり、普段通りゲームを再開できました。


ここからは余談ですが、
私は以前までWindows用のexeファイル(GIU)のサーバで運用していました。
別にCUIに抵抗があるわけじゃないし、CUIの方が好きなのですが、
GUIがある方が何かと楽だし、メモリの使用率やINしている人数も把握できて安心できる(気がしていた)から。
最近、サーバ関係も管理ツールはGUIが多いしね。

あるとき、サーバのラグがひどく、度々ロールバックする現象があり、「GUIって重いんじゃね?」と思うようになり、
javaが使うメモリ領域を指定できることからjarファイルを利用して運用することになりました。

移行は割と簡単で、空のテキストファイルを作り、下記の内容を記入して保存、テキストの拡張子を.batにするだけ。

@echo off
java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
pause


このbatファイルをダブルクリックすると今までのGUIの代わりにコマンドプロンプトが起動して、
Java アプレットを使ったGUI版より軽くなった気がしました。あくまで「気がした」レベル。
ともあれ、CUIで運用していないと上記のエラーに気付きにくい。
例外エラーはjavaのエラーであり、MineCraftのエラーではないからGUIの画面に表示されないのです。

ただ、一見正常に起動しているようで、prepairing spawn何ちゃらが普段より遅かったり、クライアントが動けなくなったりと、動作には影響が出ます。
個人的にはjarファイルでの運用をおすすめします。

ちなみに、jarでなくexeでも同じようにCUIで運用できます。
batファイルのjarをexeに書き換えるだけですので、こちらの方がわかりやすいかもです。