Ubuntu」タグアーカイブ

Minecraft用Ubuntuサーバーの作成(5)

一応、動く状態に持っていったのですが、ここから快適に動くようにポート解放とRAMDiskの設定を行います。
ユーザーはSudoの使えるユーザーに戻します。

minecraft@MineCraft:~$ exit
ログアウト
master@MineCraft:~$

ポート解放

master@MineCraft:~$ sudo ufw allow 25565/tcp
master@MineCraft:~$ sudo ufw reload
master@MineCraft:~$ sudo ufw enable

(Minecraftのポートを変更している場合は 25565/tcp を変更してください)

RAMDiskの作成

マウント先の作成

master@MineCraft:~$ sudo mkdir /ramdisk
master@MineCraft:~$ sudo chmod 777 /ramdisk

メモリの使用状況を確認

master@MineCraft:~$ df -Th
Filesystem                      Type      Size  Used Avail Use% Mounted on
/dev/mapper/GameServer--vg-root ext4      134G  2.0G  125G   2% /
none                            tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev                            devtmpfs  2.0G  4.0K  2.0G   1% /dev
tmpfs                           tmpfs     396M  668K  395M   1% /run
none                            tmpfs     5.0M     0  5.0M   0% /run/lock
none                            tmpfs     2.0G     0  2.0G   0% /run/shm
none                            tmpfs     100M     0  100M   0% /run/user
/dev/sda1                       ext2      236M   55M  169M  25% /boot

/dev/shmではなく/run/shmになっている上、2.0GBだったので2.5GBに拡張した上で/ramdiskにマウントします。

master@MineCraft:~$ sudo nano /etc/fstab

以下を最終行に追記

none /run/shm tmpfs nosuid,nodev,size=2560M 0 0
/run/shm /ramdisk tmpfs defaults,size=2560M 0 0

(ちなみに、/run/shmは/lib/init/fstabに書かれていますが、/etc/fstabで設定を上書きしています)

反映させるために再起動

master@MineCraft:~$ sudo reboot

RAMDiskができていることを確認

master@MineCraft:~$ df -h | grep ramdisk
/run/shm                         2.5G     0  2.5G   0% /ramdisk

WorldデータをRAMDiskに移動

Minecraftのデータの読み書きは基本的にWorldデータなのでこれをRAMDiskに移動させ、高速化します。
まずは、ユーザーを切り替えし、作業フォルダに移動します。

master@MineCraft:~$ su - minecraft
minecraft@MineCraft:~$ cd 1.7.10/

world フォルダの中身を world_storage(保存用フォルダ) へコピー

minecraft@MineCraft:~/1.7.10$ mkdir world_storage
minecraft@MineCraft:~/1.7.10$ cp -rp world/ world_storage/

RAMDiskにminecraftフォルダを作成してWorldフォルダを持ってくる

minecraft@MineCraft:~/1.7.10$ mkdir /ramdisk/minecraft
minecraft@MineCraft:~/1.7.10$ mkdir /ramdisk/minecraft/1.7.10
minecraft@MineCraft:~/1.7.10$ mv world/ /ramdisk/minecraft/1.7.10/

world へ設定ファイルのリンクを作成する。(実際はRAM上で動くようになる)

minecraft@MineCraft:~/1.7.10$ ln -s /ramdisk/minecraft/1.7.10/world/ .

起動用スクリプトの作成

RAMDiskは電源が切れると消去されるので、起動時にRAMDiskにコピーし、終了時にRAMDiskから保存フォルダにコピーするように起動用スクリプトを書きます。

minecraft@MineCraft:~/1.7.10$ nano  00_StartServer.sh
#!/bin/bash
mkdir /ramdisk/minecraft
mkdir /ramdisk/minecraft/1.7.10
mkdir /ramdisk/minecraft/1.7.10/world
cp -rp /home/minecraft/1.7.10/world_storage/* /ramdisk/minecraft/1.7.10/world/

#起動
java -Xmx1024M -Xms1024M -jar forge-1.7.10-10.13.2.1232-universal.jar nogui

#終了時に保存用フォルダにコピー
rsync -av --delete /ramdisk/minecraft/1.7.10/world/ /home/minecraft/1.7.10/world_storage/

次に、実行権限を付与します

minecraft@MineCraft:~/1.7.10$ chmod +x 00_StartServer.sh

そして、実行

minecraft@MineCraft:~/1.7.10$ ./00_StartServer.sh

次回は、停電に対応するため定期的にバックアップを取るようにしていきます。

Minecraft用Ubuntuサーバーの作成(4)

Minecraft Serverの設置

サーバー用ディレクトリを作成します。
今回はバージョン1.7.10なので下記のコマンドを入力しました。

minecraft@MineCraft:~$ mkdir 1.7.10

下記のコマンドで先ほど作ったディレクトリに移動します。

minecraft@MineCraft:~$ cd 1.7.10

次にMinecraftのサーバーファイルをダウンロードします。

minecraft@MineCraft:~/1.7.10$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/minecraft_server.1.7.10.jar

サーバーを起動してみます。

minecraft@MineCraft:~/1.7.10$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.7.10.jar nogui

実行するといろいろ表示されますが下記の内容で起動しないはずです。

[10:56:50] [Server thread/INFO]: Starting minecraft server version 1.7.10
[10:56:50] [Server thread/INFO]: Loading properties
[10:56:50] [Server thread/WARN]: server.properties does not exist
[10:56:50] [Server thread/INFO]: Generating new properties file
[10:56:50] [Server thread/WARN]: Failed to load eula.txt
[10:56:50] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[10:56:50] [Server thread/INFO]: Stopping server
[10:56:50] [Server Shutdown Thread/INFO]: Stopping server

これは、エンドユーザーライセンス利用規約に同意してないから起動できませんとのことなので、
同意します。(eula.txtは翻訳等を探すなりして把握してから同意してください)

minecraft@MineCraft:~/1.7.10$ nano eula.txt
eula = true

(eula = falseをtrueに変えると同意したことになる)

再度起動してみます。

minecraft@MineCraft:~/1.7.10$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.7.10.jar nogui

以下のような感じで入力可能になれば無事起動に成功しています。

[11:12:57] [Server thread/INFO]: Preparing spawn area: 84%
[11:12:58] [Server thread/INFO]: Done (4.997s)! For help, type "help" or "?"

終了させるときは stop と入力してください。

Minecraft用Ubuntuサーバーの作成(3)

前回SSHを導入したので、リモートで接続し、作業していきます。
(使用しているソフトはRLoginです。)

OracleJDKのインストール

Linux では基本的にOpenJDKをいれるけど今回はWindowsでも使っているOracleのJDKを入れてみます。
バージョンはMinecraft1.7.10を動かすのでJava7にします。本体はJava8でも動くけれどForgeがJava8だとエラーになるので。

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

(切り替えの必要がある場合は、update-alternatives –config java を実行する)

ユーザーの作成

Minecraft用のユーザーを作成します。

$ sudo adduser minecraft

パスワードの入力やユーザープロフィール入力が求められますので、適宜入力してください。

ユーザーの切り替え

ここからは、Minecraft専用の設定になりますので先ほど作ったユーザーに切り替えます。

master@MineCraft:~$su – minecraft

を実行すると下記のように表示が変わります。

minecraft@MineCraft:~$

次回からサーバーを設置していきます。

Minecraft用Ubuntuサーバーの作成(2)

ファイル転送も使いたいので操作は基本的にSSHを利用したリモート端末から行います。
そのためにOpenssh Serverをインストールしたいのでまず、最新のソフトウェアリストを取得します。

$ sudo apt-get update

Test-2014-12-08-16-27-50

すると、なにやら文字化けしています。
これはインストーラで日本語を選択した場合、コンソールでも各プログラムが日本語を出力しようとしますが、標準のコンソールでは日本語表示に対応していないためなのでまずはこれを直します。

コンソール画面の文字化け対応

コンソールで英語のメッセージを表示させるための設定を行います。

$ nano ~/.bashrc

nanoエディタで.bashrc開いたらファイルの末尾に下記を追記

case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8 ;;
esac

Ctrl+Xキーを押し、画面の指示に従えば保存し終了

$ source ~/.bashrc

以上で英語のメッセージが表示されるようになったかと。

UbuntuServerを最新の状態に更新

コンソールの文字化けを英語出力に戻すことで回避したのでまず、Ubuntuを最新の状態に更新します。
必要ないですが、文字化けの対処できてることを確認するためもう一度下記のコマンドを実行します。

$ sudo apt-get update

Test-2014-12-08-16-09-06

英語表記になっていますね。
次に先ほど更新したリストに従い、更新のあったソフトウェアを下記のコマンドで最新の状態にします。

$ sudo apt-get upgrade

OpenSSH Serverのインストール

今回はLAN内で利用するサーバーなのでパスワード方式でログインできるように設定します。

まずは下記のコマンドでインストール

$ sudo apt-get install openssh-server

そして、念のためサーバーを再起動

$ sudo /etc/init.d/ssh restart

以上で、サーバーへSSHリモートログイン可能。
(設定ファイルがデフォルトのままなのでサーバーのログインパスワードでリモートログイン可能)

Minecraft用Ubuntuサーバーの作成(1)

PCが1台開いたのでMinecraftのLocalサーバーにしようと思う。

サーバーにするPCの構成は下記の通り

OS Ubuntu Server 14.04
CPU Intel Core 2 Duo E4500 @2.20GHz
Memory 4GB
HDD 1TB

ということで早速OSのインストール。
今回はUbuntuServer14.04を使います。

ISOをダウンロードしDVD-Rに焼いてサーバーでBootさせます。

Test-2014-12-08-09-40-04
上記の画面になりますので日本語を選択して[Enter]

Test-2014-12-08-09-42-20
Ubuntu Serverをインストールを選択して[Enter]

Test-2014-12-08-09-42-36
確認画面が表示されるが、今回は続行するので[はい]

Test-2014-12-08-09-42-48
日本を選択して[Enter]

Test-2014-12-08-09-42-55
日本語を選択して[Enter]

Test-2014-12-08-09-43-02
お使いのキーボードを選択して[Enter]
(通常は日本語)

Test-2014-12-08-09-44-45
ホスト名を入力し[続ける]
(これはWindowsでいうコンピュータ名です。今回はMineCraft)

Test-2014-12-08-09-45-22
ユーザー名の入力し[続ける]
(今回はmaster)

Test-2014-12-08-09-46-00
アカウント名の入力し[続ける]
(今回はmaster)

Test-2014-12-08-09-46-08
パスワードを入力し[続ける]

Test-2014-12-08-09-46-25
パスワードを再入力し[続ける]

Test-2014-12-08-09-46-36
簡単なパスワードを入力した場合、確認画面が表示されます

Test-2014-12-08-09-46-49
ゲームデータしか入れないので今回は暗号化しないので[いいえ]

Test-2014-12-08-09-48-24
今回は、自動検出のタイムゾーンで正しいので[はい]

Test-2014-12-08-09-48-49
ガイド – ディスク全体を使いLVMをセットアップするを選択して[Enter]
(HDDはUbuntu専用かつ増設の可能性も考えてLVMを使ってインストール)

Test-2014-12-08-09-52-20
ディスクを選択し[Enter]

Test-2014-12-08-09-52-28
問題なければ[はい]

Test-2014-12-08-09-52-56
容量設定画面。適切な値を入力し[続ける]
(スクリーンショットは解説用VM環境のためHDDが20GBの設定のため21.2GBという少なさです)

Test-2014-12-08-09-53-09
問題なければ[はい]

Test-2014-12-08-09-55-50
Proxyの設定を入力し[続ける]

Test-2014-12-08-09-57-47
自動的にアップデートしないを選択し[Enter]
システムのアップデートは基本手動で行います。

Test-2014-12-08-09-58-09
すべて未選択で[続ける]
(1つ1つ確認しながら入れるためすべて未選択)

Test-2014-12-08-10-02-08
[はい]

Test-2014-12-08-10-02-23
[続ける]

以上で、UbuntuServerをインストール完了です。次から環境構築していきます。

Dynabook C7にLubuntu 11.04をinstall

Lubuntu-Lxlauncher


前回Ubuntu Netbook Edition 10.10をインストールしたけれど、動作も重く使い勝手に問題が出ていたので変更。
Lubuntu はUbuntuベースのデスクトップをGnomeからLXDEに変更したもの。
一昔のPCで使うには軽量で定評のあるLXDEなうえに、ネットブックに仕えるLauncherも入っていて古めのPCなのにスタイリッシュな一味違うPCに変貌します。

Lxlauncherが自動起動しなかったので下記のようにファイルを用意して、再起動。
/home/<username>/.config/autostart/lxlauncher.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Lxlauncher
Comment=LXDE launcher
Exec=/usr/bin/lxlauncher
Terminal=false
Type=Application
Icon=
Categories=Application;System;

Dynabook C7にUbuntu Netbook Edition 10.10をinstall

前回Ubuntu Netbook Edition 10.04をインストールしたけれどそのあとWindowsXPに戻していたので再度Ubuntu Netbook Edition 10.10をインストールしてみて、画面設定を手動で行う必要があったのでメモ。

xorg.confの作成
対象となったのはTrident社製CyberALADDiN-Tのチップセット

  1. 端末からgedit を起動する
    $ gedit ~/xorg.conf
    
  2. 下記の内容をコピー&ペースト

    Section "Monitor"
        Identifier   "Generic Monitor"
        HorizSync    28-51
        VertRefresh  43-60
    EndSection
    
    Section "Screen"
        Identifier  "Default Screen"
        Monitor     "Generic Monitor"
        SubSection  "Display"
            Depth  24
            Modes  "1024x768"  "800x600"  "640x480"
        EndSubSection
    EndSection
    
  3. 保存し xorg.conf を /etc/X11 にコピー
    sudo cp ~/xorg.conf /etc/X11/
    

Ubuntu 10.04 でカーネル再構築

Ubuntu上でInfernoのカーネルをコンパイルするときに、

  1. /bin/sh: Argument list too long

というエラーでmkが完了しなかった。
xargsで分割できればいいんだけど、いまいち使い方がわからない。
というのもmkコマンドでmkfileを使うんだけど、その中身で
どうも、別ファイルを読み込んでその中をまた別のファイルに書かれてるスクリプトで
分割して、それを引数で渡してるみたいなんだけど、この場合どうやってxargsを使えばいいんだ?

仕方ないのでARG_MAX自体の値を増やすことにした。

カーネル再構築に必要なパッケージのインストール

  1. $sudo apt-get install build-essential
  2. $sudo apt-get install kernel-package libncurses5-dev libqt3-mt-dev

カーネルソースをインストールして展開

  1. $sudo apt-get install linux-source-2.6.32
  2. $cd /usr/src
  3. $sudo tar xvjf linux-source-2.6.32.tar.bz2

ソースの変更

  1. /usr/src/linux-source-2.6.32/include/linux/limits.hを開き、ARG_MAXを増やす

.config ファイルの作成

  1. $cd linux-source-2.6.32
  2. $sudo cp /boot/config-2.6.32-23-generic .config
  3. $sudo make oldconfig

パラメータの変更

  1. $sudo make menuconfig

Processor type and features ---> Processor familly ---> *Coer 2/newer Xeon
Timer frequency ---> *300 HZ
Device Drivers ---> ATA/ATAPI/MFM/RLL support ---> *generic ATA/ATAPI disk support
Device Drivers ---> ATA/ATAPI/MFM/RLL support ---> *ATA disk support

などを変更してSave Configuration to an Alternate Fileで変更を保存。
出来上がった .config ファイルの中を開いて、
以下のものが「M」ではなく「y」になっているか確認する。

  • CONFIG_IDE
  • CONFIG_SCSI
  • CONFIG_EXT3

並列コンパイル設定(CPUは4つなので最大5つまでという設定にする)

  1. $sudo export CONCURRENCY_LEVEL=5

カーネルリビルド

  1. $sudo make-kpkg clean
  2. $sudo make-kpkg –initrd –revision=20100710 kernel_image kernel_headers

.debができるのでdpkgでインストール

  1. $cd ../
  2. $sudo dpkg -i linux-image-2.6.32.*****20100710_i386.deb
  3. $sudo dpkg -i linux-headers-2.6.32.*****20100710_i386.deb

再起動

  1. $sudo shutdown -r now

起動しない・・・

Kernel Panic:VFS:***

というエラー、とりあえず、再起動後Shiftキーを押しっぱなしにしてGRUB2のメニュー入って、
正常に動いていたバージョンの起動設定と見比べてみるとinitrdの項が無いのが問題っぽい。
initrd作成

  1. $cd /boot/
  2. $sudo mkinitramfs -o initrd.img-2.6.32.***** 2.6.32

再起動後Shiftキーを押しっぱなしにして再度GRUB2のメニュー入って、
再構築したカーネルの項で”e”を押下で編集モードに入り末尾に

initrd /boot/initrd.img-2.6.32.*****

を追加して、Ctrl+xでなんとか起動できたっぽい。
GRUB2の変更は手動でやらないとだめなのかなぁ・・・。
そして、目的のARG_MAXの値を確認
$getconf ARG_MAX
で確認してみるも変わらない・・・。
カーネルが新しいのでもしかしてと重い
$sudo ulimit -Ss
を実行したところ、増えた。
結局、カーネルコンパイルしなくてよかったみたいなので、
今回作ったカーネルを削除して、今まで使ってたカーネルを利用。

増やしても、infernoのカーネルコンパイルエラーは発生する。
どうも作業してる方向がすでに間違っているようなので別の方法を探してみる。

inferno in VirtualBox on WindowsXP

inferno起動画面
inferno を VirtualBox上で動くように Ubuntu で コンパイル したときのメモ

  • ソースコードの入手
    1. $apt-get install mercurial
    2. $cd /usr
    3. $sudo hg clone https://inferno-os.googlecode.com/hg/ inferno
    4. $sudo chmod -R 777 /usr/inferno

    どうも、コンパイルが通らないのでVita Nuovaのバージョンを利用する。

    1. inferno Fourth Edition(inferno-20100120.tgz)をダウンロード
    2. inferno-20100120.tgzを解凍し、中身を/usr/inferno/へ上書き
  • コンパイル用ライブラリのインストール
    1. $sudo apt-get install libxpm-dev
    2. $sudo apt-get install libxext-dev
    3. $sudo apt-get install x11proto-xext-dev
  • infernoのコンパイル
    1. $sudo vi inferno/mkconfig
      
      @@ -17,0 +18,0 @@
      -	SYSHOST=Plan9
      +#	SYSHOST=Plan9
      +	SYSHOST=Linux
      @@ -25,0 +27,0 @@
      -#	OBJTYPE=368
      -	OBJTYPE=$objtype
      +	OBJTYPE=368
      +#	OBJTYPE=$objtype
      
    2. $sh makemk.sh
    3. $export PATH=$PATH:/usr/inferno/Linux/368/bin/
    4. $mk nuke
    5. $mk install
  • PBS(PCパーティションブートセレクタプログラム)と9load(カーネルローダ)のコンパイル
    1. $mkdir /usr/inferno/Inferno/386/lib/
    2. $sudo chmod -R 777 /usr/inferno/Inferno/386/lib/
    3. $cd /usr/inferno/os/boot/pc/
    4. $mk pbs.install 9load.install
  • カーネルコンパイル
    1. $cd /usr/inferno/os/pc
    2. $vi ether79x970.c
      
      @@ -540,6 +540,7 @@
      	switch(x&0xFFFFFFF){
      	case 0x2420003: /* PCnet/PCI 79C970 */
      	case 0x2621003: /* PCnet/PCI II 79C970A */
      +	case 0x2625003: /* PCnet/FAST III 79C973 */
      		break;
      	default:
      		print("#l%d: unknown PCnet card version %.7ux\n",
      
    3. $vi pc
      
      @@ -48,10 +48,11 @@
      	kern
      
       link
      -	ether2114x      pci
      +	ether79c970     pci
      +#	ether2114x      pci
       #	ether82557      pci
      -	ether83815      pci
      -	etherelnk3      pci
      +#	ether83815      pci
      +#	etherelnk3      pci
      	ps2mouse
      	ethermedium
       #	pppmedium ppp compress
      @@ -70,7 +71,7 @@
      	math
      
       init
      -	wminit
      +	shell
      
       code
      	int kernel_pool_pcnt = 10;
      @@ -79,7 +80,7 @@
      	int image_pool_pcnt = 40;
      	int cflag=0;
      	int swcursor=0;
      -	int consoleprint=0;
      +	int consoleprint=1;
      
       port
      	alarm
      @@ -137,3 +138,5 @@
      	/dis/lib/daytime.dis
      	/dis/lib/auth.dis
      	/dis/lib/ssl.dis
      +	/dis/lib/arg.dis
      +	/dis/lib/filepat.dis
      
    4. $mk
  • カーネルロード設定ファイルの作成
    1. $vi /usr/inferno/os/pc/plan9.ini
      
      bootfile=fd0!ipc.gz
      
  • フロッピーイメージの作成
    1. $emu
    2. ;cd os/pc
    3. ;gzip ipc
    4. ;disk/format -b /Inferno/386/pbs -df inferno.img /Inferno/386/9load plan9.ini ipc.gz

    出来上がったinferno.imgをVirtualBoxにマウントしBoot
    確かに起動はできたが、たまにPanicを起こす。
    infernoもPlan9系だからVirtualBoxではだめなのかもしれない。
    それに、Native infernoをコンパイルできたけど、FD起動なんだよね。
    Plan9のブートローダで起動可能ってことはこれで分かったんだけど、
    HDDからブートさせたい・・・Native infernoを使うにはPlan9の勉強した方がいいかもしれない。
    次回はinferno in QEMU on WindowsXPを試してみよう。

  • 参考

VirtualBox in Ubuntuで共有フォルダ

共有フォルダ設定

  1. 拡張機能のインストール
    1. 仮想マシンウインドウのメニューの「デバイス」→「Guest Additions のインストール」でインストールCDをマウント
    2. $cd /media/VBOXADDITIONS_3.2.4_62467/
    3. $sudo sh VBoxLinuxAdditions-x86.run
  2. 共有フォルダの設定
    1. 仮想マシンウインドウのメニューの「デバイス」→「共有フォルダ…」で共有フォルダを設定
    2. $sudu mkdir /mnt/share
      (マウント先の作成)
    3. $sudo mount.vboxsf Share /mnt/share/
      (共有フォルダをマウント)