- 【Raspberry Pi4で始める自宅サーバー生活】
- Raspberry Pi4にUbuntu Serverをインストール
- Raspberry Pi4でMinecraft Java版のマルチプレイサーバーを動かす
- 最後に
【Raspberry Pi4で始める自宅サーバー生活】
【Raspberry pi4で始める自宅サーバー生活】では、Raspberry pi4(ラズペリーパイ4、ラズパイなどとも呼ばれる)を使って自宅用サーバーを構築して色々と遊んでみながら、成功談も失敗談も含めて、このブログで紹介できればと思っています。
第1回目は、Raspberry pi4にサーバーOSであるUbuntu Server 20.04LTSをインストールし、そこにMinecraft(マインクラフト)Java版のマルチプレイサーバーをインストールしてみたいと思います。
Youtubeも是非ご覧下さい
Ubuntu Server 20.10をインストールしたRaspberry Pi4にMinecraft Java版のマルチプレイサーバーを構築する流れについては、YoutubeのLIFEWORK Blogチャンネルで公開しています。こちらも是非ご覧頂ければ嬉しいです。
以下では、Raspberry Pi4にUbuntu Serverをインストールするところから説明していますので、動画と合わせてご覧下さい。
Raspberry Pi4にUbuntu Serverをインストール
MicroSDカードとカードリーダーを準備
Rapsberry Pi4ではMicroSDカードにOSもアプリケーションもデータも保存しますので、MicroSDカードを用意して下さい。また、パソコンにカードリーダーが無い場合はカードリーダーも用意して下さい。
パソコンにAOMEI Partition Assistantをインストール
MicroSDカードをRapsberry Pi4で使用するためにはFAT32でフォーマットする必要があるのですが、Windows10の標準ではFAT32でフォーマットすることができず、また以前のWindowsであっても32GB以上のMicroSDカードをFAT32でフォーマットすることができません。
そこで、Windows10に対応し、且つ32GB以上のMicroSDカードをFAT32でフォーマット可能なパーティション管理ソフト「AOMEI Partition Assistant」をインストールします。「AOMEI Partition Assistant」は、Standardならフリーソフトとなっているため無償で使用することができます(ありがたい)。
「AOMEI Partition Assistant」へのリンクは ⇒ こちらです!!
MicroSDカードをFAT32でフォーマット
「AOMEI Partition Assistant」をインストールしたらMicroSDカードのフォーマットを行います。このあとの作業を行うと、MicroSDカードに保存されているデータは全て削除されますので、作業する前にMicroSDカードの内容を確認して、必要なファイルはバックアップしておいて下さい。
MicroSDカードのパーティションを削除
MicroSDカードをセットした状態で「AOMEI Partition Assistant」を起動し、MicroSDカードの状態を確認します。「未割り当て」となっていればMicroSDカードにパーティションが作成されていない状態なので、そのまま次の項目に進みますが、以前使用していたMicroSDカードなどの場合、MicroSDカードにパーティションが割り当てられた状態になっているため、このパーティションを削除します。
ちょっと分かりづらいかもしれませんが、私のPC環境では下図の「ディスク3」がMicroSDカードで、既にパーティションが割り当てられていました。
MicroSDカードを選択してパーティションの削除を行います。
確認メッセージが表示されるので「続行」を押すと、パーティションが削除されます。
MicroSDカードに新たにパーティションを作成してFAT32でフォーマット
MicroSDカードのパーティションを削除すると、下図のようにMicroSDカードが「未割り当て」の状態になりますので、改めてMicroSDカードのパーティションを作成し、その際にFAT32でフォーマットします。
MicroSDカードを選択し、パーティション作成を行うと下図の画面になります。右上の「ファイルシステム」は「FAT32」を指定して下さい。「パーティションラベル」はコンピュータ上でMicroSDカードに名前を付けるものです。下図ではRaspberry Pi4から「PI4」としていますが、名前は自由に決めて構いません。
確認画面で「続行」を押すと、パーティションの作成とフォーマットが実行されます。クイックフォーマットなので作業時間は短いです。
パーティションが作成されて、フォーマットが完了すると下図のようになります。
パソコンにRaspberry Pi Imagerをインストール
Raspberry Pi用のMicroSDカードに各種OSを書き込むには、先ず公式HPから「Raspberry Pi Imager」をダウンロードしてインストールします。
「Raspberry Pi Imager」へのリンクは ⇒ こちらです!!
MicroSDカードにUbuntu Serverをインストール
パソコンにインストールした「Raspberry Pi Imager」を起動すると下図の画面になります。この画面でMicroSDカードに書き込むOSと、書き込むMicroSDカードを選択して「WRITE」を押すと、自動的にRaspberry Pi用のOSイメージをダウンロードしてMicroSDカードに書き込んでくれます。
Raspberry Piには、公式の「Raspberry Pi OS」の他にも様々なOSが対応しています。今回はUbuntu Serverをインストールするため、下の画面では「Other general purpose OS」を選択します。
下の画面が表示されたら「Ubuntu」を選択します。
Raspberry Piは、Ubuntuのデスクトップ版とサーバー版の両方に対応しており、サーバー版については、複数のバージョンが対応しています。最新バージョンでも、LTSバージョンでもどちらでも構いません。
インストールするOSを選択すると元の画面に戻りますので、SD Cardのボタンを押してMicroSDカードのドライブを選択して「WRITE」ボタンを押します。
「WRITE」ボタンを押すと、MicroSDカードの内容が全て消去されても良いか?と聞かれますので、「YES」ボタンを押します。
OSイメージをダウンロードしてからインストールするため少々時間が掛かりますが、MicroSDカードへの書き込みが完了すると下の画面が表示されます。「CONTINUE」ボタンを押して、「Raspberry Pi Imager」を終了させるのですが、続きの作業をする前に一度、MicroSDカードをパソコンから抜いて、挿し直しておいて下さい。
予めネットワークの設定をしておくと便利
「Raspberry Pi Imager」を終了させたら、パソコンのエクスプローラでMicroSDカードの中にある「network-config」をメモ帳などのテキストエディタで開いてください。「network-config」は拡張子がついていないファイルなのですが、メモ帳で開くことは可能です。
「network-config」の中は、下図のようになっており、Ubuntu Serverのネットワークを設定する情報が書き込まれています。ここで予め自宅のネットワーク環境に合わせた設定を行っておくと、このあとRaspberry Pi4を起動したときに自宅のネットワークに接続するようになりますので、起動直後からターミナルソフトからSSH接続で操作することが可能になります。
下図は「network-config」の設定の一例です。自宅のネットワーク環境に合わせて適宜書き換えて下さい。
Rapsberry Pi4を有線LANで接続する場合は「ethernets」の項目を、無線LANで接続する場合は「wifis」の項目を設定します。
「dhcp4」「dhcp6」の項目は、Rapsberry Pi4のIPアドレスをルータから自動的に割り振る場合は「true」、固定IPアドレスを設定する場合は「false」とします。ターミナルソフトから接続する場合や、Minecraftのマルチプレイサーバーとして用いるのであればIPアドレスは固定の方が便利なので「false」にすることをオススメします。
「addresses: [192.168.xx.xxx/24]」の部分は、Rapsberry Pi4に割り振る固定IPアドレスを入力します。
「gateway4: 192.168.xx.yyy」の部分は、自宅のルータのIPアドレスを入力します。同様に「nameservers:」のあとの「addresses: [192.168.xx.yyy]」の部分にも自宅のルータのIPアドレスを入力します。
無線LANのSSIDやパスワードは、「access-points:」の後に上図のように設定します。”SSID1″や”SSID2″の部分は自宅の無線LANのSSIDを入力し、”PASSWORD1″や”PASSWORD2″の部分は無線LANに接続するためのパスワードを入力します。上図ではSSIDが2つになっていますが、1つだけ設定しても問題ありません。
Raspberry Pi4でUbuntu Serverを起動
これでMicroSDカードにUbuntu Serverの準備が整ったので、MicroSDカードをRapsberry Pi4に挿入してRapsberry Pi4の電源を入れます。最初の起動時はUbuntu Serverのインストール作業が行われるので起動完了まで時間が掛かりますが、しばらく待ってインストールが完了したらUbuntu Serverがログイン待ちの状態になります。
Raspberry Pi4にインストールしたUbuntu Serverの初期ユーザー(Root権限ユーザー)名は「ubuntu」で、パスワードも「ubuntu」になっています。パスワードは初回ログイン時に変更を求められます。
Ubuntu Serverのアップデートやセキュリティ設定は、別の機会で書くとして、これでRaspberry Pi4でUbuntu Serverを動かせる状態になったので、続きの作業をしていきましょう。
Raspberry Pi4でMinecraft Java版のマルチプレイサーバーを動かす
Ubuntu ServerにJavaをインストールしておく
Minecraft Java版のマルチプレイサーバーを動かすためには、Ubuntu ServerにJavaをインストールしておく必要があります。Raspberry Pi4にUbuntu Serverをインストールした段階では、Javaはインストールされていませんが、以下のコマンドでJavaがインストールされているかどうか、インストールされている場合は、そのバージョンを確認することができます。
$ java -version
このコマンドを使うと、Javaがインストールされていない場合に、インストール可能なJavaの各バージョンの名前が表示されると思います。基本的には表示された中で一番新しいバージョンのものをインストールしておきましょう。
$ sudo apt install openjdk-15-jre-headless
公式HPでマルチプレイサーバーの最新版のリンクをコピーしておく
Minecraft Java版のマルチプレイサーバーは、Minecraftの公式HPからダウンロードすることが可能です。今回は、Raspberry Pi4にマルチプレイサーバーをダウンロードしたいので、ここでは「minecraft_server_1.16.4.jar」(※バージョンアップされると数字が変わります)の部分にマウスカーソルを当てて右クリックするなどして、マルチプレイサーバーのプログラムファイルへのリンクだけ取得して下さい。
Minecraft Java版マルチプレイサーバーのダウンロードページは ⇒ こちらです!!
Raspberry Pi4にマルチプレイサーバーをダウンロード
Raspberry Pi4上のUbuntu Serverにログインして、先ずはマルチプレイサーバー用のディレクトリ(フォルダ)を作成します。ホームディレクトリのままでも問題はありませんが、マルチプレイサーバーのプログラムは複数のディレクトリやファイルを生成するので、専用のディレクトリを作成しておく方がホームディレクトリが整理されて良いと思います。ディレクトリを作成したら、そのディレクトリに移動します。
$ mkdir xxxxx(←xxxxxは任意の名前)
$ cd xxxxx
続いてMinecraft Java版のマルチプレイサーバーのプログラムをダウンロードします。アドレス部分は、先程公式HPでコピーしておいた最新版のリンクをペースト(貼り付け)できると楽です(ペーストの方法は、使用しているターミナルソフトによって違いがあると思いますので、ご自身が使用しているターミナルソフトの操作をご確認下さい)。
$ wget (公式HPでコピーした最新版のリンク)
Minecraft Java版のマルチプレイサーバーを起動(すぐに止まってしまう)
マルチプレイサーバーのダウンロードが完了したら、Ubuntu Serverでマルチプレイサーバーを起動しましょう。但し、初めて起動した場合は、画面上にエラーが表示されてすぐに止まってしまいます。これは下で説明しているEULA(End-User License Agreement)への同意が必要なためなので特に問題があるものではありません。また、EULAに同意するためのファイルは、最初の起動時に作成されるので、エラーで止まってしまいますが、この起動は必要です。
$ cd (サーバープログラムのディレクトリ)
$ java -jar server.jar nogui
EULAへの同意
初めてマルチプレイサーバーを起動しても、すぐにエラーで止まってしまいます。これはEULA(End-User License Agreement)と呼ばれる、プログラムの使用許諾書に同意していない状態のため止まってしまったものです。
このEULAは、最初にマルチプレイサーバーのプログラムを起動した際に、マルチプレイサーバーを保管しているディレクトリ内にテキストファイルとして作成されていますので、これをnanoなどのUbuntu Serverのテキストエディタで開いて、「false」となっている部分を「true」に書き換えて保存します。「false」を「true」に書き換えることで、プログラムの使用許諾書に同意したことになります。
$ cd (サーバープログラムのディレクトリ)
$ nano eula.txt
eula.txtの内容は以下のようになっています。
#By changing the setting below to TRUE you are indicating your agreement to our EULA(https://account.mojang.com/documents/minecraft_eula).
#(サーバープログラムを最初に起動した日時が表示されます)
eula=false ※←この「false」を「true」に書き換えて上書き保存します。
Minecraft Java版のマルチプレイサーバーを起動 その2
EULAに同意したら、もう一度マルチプレイサーバーのプログラムを起動しましょう。起動方法は最初に起動したときと同じです。
$ cd (サーバープログラムのディレクトリ)
$ java -Xmx1024M -Xms1024M -jar server.jar nogui
EULAに同意していれば、サーバープログラムが起動して画面上に起動状況が表示されます。サーバープログラムは、特にEULA同意後の最初の起動時にワールドのデータを生成するため、起動が完了するまでに数分かかると思いますが、以下のような表示が出れば起動完了となります。
[(時間)] [Server thread/INFO]: Done (秒数)! For help, type “help”
なお、コマンド中の「-Xmx」はサーバープログラムに割り当てる最大メモリ容量、「-Xms」はサーバープログラムに割り当てる初期メモリ容量となります。マルチプレイで一緒に遊ぶ人数を増やしたり、ゲーム中の視野を広げたりするとその分、サーバープログラムに割り当てるメモリ容量は増やした方が良いと思いますが、お使いのサーバーのハードウェア環境に合わせて設定して下さい。
Minecraft Java版でマルチプレイ
これでMinecraft Java版のマルチプレイサーバーの準備が整いましたので、いよいよ実際にMinecraftで遊んでいきましょう。マルチプレイサーバー上のワールドに入るためには、Minecraftが起動したら先ずは「マルチプレイ」を選択します。
そうすると画面上部に「マルチプレイで遊ぶ」と表示された画面になり、画面上で「LAN内のゲームを検索中」というメッセージが表示されているかと思います。
ここで画面右下にある「サーバーを追加」を選択し、「サーバー名」は任意の名前(Raspberry Pi4など自分が区別しやすい名前)を入力し、「サーバーアドレス」にはRaspberry Pi4のIPアドレスを入力して「完了」ボタンを押します。
このあと下図のような画面になれば無事にゲーム側でマルチプレイサーバーを認識していることになりますので、入りたいサーバーをクリックしたあと「サーバーに接続」を押すと、マルチプレイサーバー内のワールドに入って遊ぶことができます。
マルチプレイサーバーの終了方法
マルチプレイサーバーのプログラムを終了させる場合は、マルチプレイサーバーのプログラムが稼働している画面上で「stop」と入力してEnterキーを押します。stopが入力されるとマルチプレイサーバーはワールドのデータを保存して終了処理を行います。
stop
その他のトピックス
screenコマンドを使用してマルチプレイサーバーを起動
サーバーのメイン画面でマルチプレイサーバーを起動した場合、exitコマンドでメイン画面からログアウトするとマルチプレイサーバーも終了してしまいます。そこで、メイン画面からログアウトしてもマルチプレイサーバーが起動したままになるようにscreenコマンドを使ってマルチプレイサーバーを起動したいと思います。
screen -S
先ず、サーバーのメイン画面で「screen -S (新しく作成する画面の名前)」と入力します。xyzの部分が新しい画面の名前になりますが、好きなように名前を付けて下さい。
$ screen -S xyz
サーバーの画面上では分かりづらいのですが、コマンド入力待ちの状態で他には何も表示されていない画面が表示されたと思います。この状態からマルチプレイサーバーを起動しましょう。以下の操作でマルチプレイサーバーが起動します。
$ cd (サーバープログラムのディレクトリ)
$ java -Xmx1024M -Xms1024M -jar server.jar nogui
マルチプレイサーバーが起動したことが確認できたら、この新しく作った画面から抜けます。画面を抜ける際はexitではなく、CTRLキーと「A」を同時に押してから、「D」を押して下さい(この操作をデタッチと言います)。
[detached from (新しい画面の名前)]
上のような表示があって再びコマンド入力待ちの状態になっていると思います。これでメイン画面に戻った状態となります。先程、マルチプレイサーバーを起動した画面は動き続けていますので、メイン画面からはexitコマンドでログアウトしても大丈夫です。
screen -ls
screenコマンドで作成した画面の一覧を表示するコマンドです。マルチプレイサーバー用の画面がある状態でこのコマンドを入力すると、以下のように表示されると思います。
$ screen -ls
There is a screen on:
(マルチプレイサーバー用の画面の名前)(画面を作成した日時) (Detached)
1 Socket in /run/screen/S-ubuntu.
screen -r
screenコマンドで作成した画面を表示する(アタッチする)コマンドです。マルチプレイサーバーを操作したり、終了させたりする場合は、マルチプレイサーバーが起動している画面を表示(アタッチ)する必要があり、その際にこのコマンドを使用します。
$ screen -r (画面の名前)
ワールドのリセット方法
Minecraft Java版マルチプレイサーバーのワールドをリセットするには、サーバー上で保存されているワールドのデータを削除するか、ディレクトリ(フォルダ)の名前を変える、或いはサーバーの設定ファイルである「server.properties」上の「level-name」の値を変更してサーバープログラムに新しいワールドのデータを作成させます。デフォルトではワールドのデータは、サーバープログラムのあるディレクトリの中で「world」というディレクトリに保存されています。
元のワールドを残しておく場合は、ワールドのディレクトリの名前を変える、或いはserver.propertiesのlevel-nameの値を変更するのが良いでしょう。また、ワールドのデータに変更を加えるときは予めサーバープログラムを終了させておいて下さい。
ワールドのデータを削除する
ワールドのデータが保存されているディレクトリを削除する場合は、以下のように操作します。rmコマンドはUbuntuでファイルまたはディレクトリを削除するコマンドで、-rfオプションはディレクトリごと削除するという意味です。
$ cd (サーバープログラムのディレクトリ)
$ rm -rf world
ワールドのデータを保存しているディレクトリを削除したあと、サーバープログラムを再度起動すると新しいワールドのデータが生成されます。
ワールドのディレクトリの名前を変える
ワールドのデータが保存されているディレクトリの名前を変更する場合は、mvコマンドを使います。mvコマンドは、mvのあとに元のディレクトリ名、新しいディレクトリ名を並べて入力します。
$ cd (サーバープログラムのディレクトリ)
$ mv world xxxxx
これで元のワールドのデータが保存されているディレクトリは、xxxxxという新しい名前に変更されましたので、サーバープログラムを再度起動すると、改めてworldディレクトリが作成されて新しいワールドのデータが生成されます。
server.propertiesのlevel-nameの値を変更する
サーバーの設定ファイルであるserver.propertiesをnanoなどのUbuntuのテキストエディタで開いてlevel-nameの値を変更します。
$ cd (サーバープログラムのディレクトリ)
$ nano server.properties
server.propertiesを開くと設定項目がたくさん並んで表示されます。この中で「level-name=world」と書かれた行を探して、worldの部分を書き換えるとワールドのデータを保存するディレクトリが変更されます。このあとサーバープログラムを再度起動すると、level-nameに設定したディレクトリ名で新しいワールドが生成され、今後はここで設定したディレクトリでワールドのデータを保存するようになります。元のワールドのデータを保存しているworldディレクトリは削除されません。
Rapsberry Pi4で統合版のサーバーは構築できるか?
Minecraftは、PCのみで動作するJava版のほかに、PC・Playstation・Switch・スマホなど色んなプラットフォームで動作する統合版があり、統合版もマルチプレイサーバーのプログラムを無償で利用することができます。
統合版のマルチプレイサーバーのプログラムは、Windows10版以外に、Ubuntu Server版も提供されているのですが、残念ながらRapsberry Pi4のCPUに用いられているARMアーキテクチャに対応していないため、ダウンロードしたものをそのまま使用することはできません。
統合版のマルチプレイサーバーをRapsberry Pi4で動作するようにしたプログラムを公開しているHPもあるようですが、今回はそこまでは調べていません。また、機会があれば、それらの情報も整理してこのブログでお伝えできればと思います。
最後に
Raspberry pi4は、超小型・省電力のコンピュータであり、自宅でサーバーとして活用するのには非常に適していると思います。Java版ではありますが、Minecraftを家族や友達と一緒に遊ぶのにRaspberry pi4でマルチプレイサーバーを構築してみるのはいかがでしょうか?