古いMacをJava/BE対応マイクラサーバーにする話

プロローグ

ムスメが「おとうさんの影MOD入れたパソコンといっしょにマイクラやろ、わたしはSwitchでやる」と、無垢な瞳で一休さんの将軍様かなっていう難題をふっかけてきたんですよ。

「それでは将軍様、Java版にNintendo Switchのマイクラからアクセスできるサーバーを出していただけますか?さすれば私めがそいつを立ててご覧に入れます、さあ早く!」なんてネタが通用する相手ではないので、黙ってGoogle先生に教えを乞います。

すると、Java版サーバーへBE版からアクセスするための変換サーバー「GeyserMC」なるものや、マイクラのサーバークライアント機能を利用してBE版サーバーにブリッジする「BedrockConnect」なんてものがあるではないですか。さすがマイクラ、なんでもできるな(誤解)。

我が家のMac mini Late 2006、いわゆる2代目Intel Mac mini。Snow Leopardで更新は途絶え、各種Webブラウザからも見放され、細々とDVD再生機として生きながらえてきたわけですが、折しもコロナで動画視聴環境含め一気に時代はクラウド&オンライン。ついに使い道がなくなって放置されていました。


幸いメモリは上限の2GBまで拡張してあり、今となっては貧相な80GBのハードディスクも宅内マイクラサーバーにはちょうど良い。Javaさえ動けばそのまま使えるだろう、と白羽の矢を立てたのが運の尽きでした。

試行錯誤

まずMac OS XのJavaをアップデートしようとしたところ、Snow LeopardはJava SE 6でサポート終了。無理矢理JDK 7や8をインストールしたというネタも転がっているものの、それ自体も情報が古く、いずれも現時点ではいろいろと難がありそうでした。

https://stackoverflow.com/questions/24995066/how-to-install-jdk-8-on-mac-os-x-snow-leopard

そもそもSnow Leopard自体もOS起動時で800MBくらいメモリを消費しており、マイクラサーバーで使うにはメモリ残に不安があります。よろしい、ならばLinuxだ。

最近のLinuxディストリはインストールも簡単だし、Snow LeopardのBoot Campマネージャでパーティション分割してDebianでも入れればええやろ。調べるとMac mini Late 2006搭載のCore Duoは32bit対応なので、32bitのLinuxディストリしか対応しないことが判明。なるほどそれではと32bitのライブDVDを用意します。しかし、ライブDVDの起動でコケる。

さらに調べると、Mac mini初期のEFIがバギーで、ライブDVD側のEFIがうまく動作しないので、rEFItを使うといいよという情報にあたります。おおrEFIt、Boot CampのOS切り替えの節は大変お世話になりました。よもや、また使うことになるとは。rEFIt経由で無事ライブDVDも起動し、インストールも順調に完了した……かに見えました。今度はインストールしたLinuxが起動しません。rEFIt上では確かにペンギンがドン!とドヤ顔で居座っていて、選択すると起動ボリュームがないというエラーが出ます。むむむ。

さらに調べていくと、どうもMac miniのGPTパーティションの情報とインストール中に切り直したMBRのパーティション情報に食い違いが発生し、パーティションを正しく認識できてない。GPTの内容をMBRに反映する必要があるとかなんとか。もうね、ここから試行錯誤の連続で、どの情報を元に何を試したか覚えていません。結局Snow Leopard側であらかじめLinuxのswapパーティションとrootパーティションを用意しておき、Linuxのインストール時にパーティションタイプとフォーマットを設定し直す、というところに落ち着きました。が……まだ終わりません。

パーティションもキッチリ切って、インストールも完了したのに、起動しません。ブートローダーのGRUBもちゃんとインストールしたはず。せめてGRUBの画面まで出せれば、と再び検索すると、Linux Mintの掲示板に「GRUBはMBRに入れちゃダメだよ、メインのパーティションに入れるんだぜ」……こっ、これかーーー!

https://forums.linuxmint.com/viewtopic.php?t=67730

しかもこのスレ、海賊王ロジャーのお宝とばかりに、私の知りたい全てがそこに書いてありました。やれやれだぜ。

めでたくLinuxも起動して、あとは各種マイクラサーバー設定はとんとん拍子。あとはこれを常時稼働させてメンテはsshで……と、場所を変えて設置し直すと、まーた起動しなくなりました。正常起動時との違いは、キーボード・マウス・モニターを全て外してヘッドレス運用にしようとしたこと。どうやらMac miniはヘッドレス運用にダミープラグが必要だったようです。

http://blog.nickoneill.name/headless-mac-mini-with-ubuntu/

古いIntel Mac miniをLinuxサーバー化するポイント

だいぶ遠回りをしてしまいましたが、こうしてようやくMac mini Late 2006にLinuxをインストールするポイントを押さえることができました。M1搭載Macが控えめに言って最の高という今となっては誰得情報ですが。
  • Mac OS X上でswapとrootの元になるパーティションを設定しておく
  • rEFItを導入する
  • 32bitのLinuxディストリビューションを用意する(今回はantiX Linuxを使用)
  • GRUBはrootパーティションに置く(MBRに置かない)
  • モニタ無しで稼働させる場合はヘッドレスアダプタを用意する
ちなみに、Snow Leopardパーティションはあえて残してあります。rEFItがインストールされているからというのもありますが、Mac自体のハードウェアを制御するにはOS Xを使うのが一番ラクだからです。

これでLinux起動時使用メモリ約35MB、待機時消費電力25W前後。父(PC/Java)と子(Nintendo Switch/BE)が戯れるには十分なマイクラサーバーができました。ホントはRealmsがJavaとBEをシームレスにつないでくれればいいんですけどね。

関連リンク

https://geysermc.org/
※2025/4/4:KDDIのブログサービスg.o.a.tに投稿していた記事を、サービス終了に伴い若干修正し転載しました。続きを書く前にサ終してしまったので尻切れトンボです、すみません。

コメント

このブログの人気の投稿

enchantMOON専用革カバー「FUNDOSHI」制作レポート

iPadを彫る!