さくらvpsにgentooをインストールしました

1. やったこと

 

Gentoo Linuxをさくらvps環境にインストールしました。

 

2. 書くこと

インストール手順について、まとめます。コマンドはところどころ書きます。

 

3. 参考資料

これらのサイトを参考にしました。

さくらのVPSにGentooをインストールする - Fadisのノート

2nd crystallize » さくらのVPSにもGentooを入れてみた

 

4. 手順概要

さくらでは標準OSにはGentooは含まれていません。その場合、isoファイルからインストールする方法もありますが、今回は参考サイトのようにdebianをインストールしてからGentooをインストールしました。Gentooが起動しない時などに非常に便利でした。

 

5.手順その1 debianインストールまで

debianは標準OSに含まれるため、OS再インストールから作業を始めます。 ネットワーク設定や言語設定はガイドブックに沿って、というよりも促されるままに進めていきます。

 

パーティションがポイントです。私は、boot領域に1GB、swapに1GB、debianのルートディレクトリに1GB、残りをGentooのルートディレクトリにしました。この時点では、Gentooのルートディレクトリはマウントしません。ディスクは初期化し、ファイルシステムext4にしました。 後はそのままdebianをインストールし、再起動します。debianのrootで入り、次の作業を進めます。

 

6. 手順その2 chrootまで

ここからは基本的に参考記事とGentooハンドブックに従って作業していきます。 まず空き領域をマウントします。 先程作成したGentoo用の領域をつかいます。

mkdir /mnt/gentoo

mount /dev/vda4 /mnt/gentoo

cd /mnt/gentoo

 

次に最新のstage3を落とします。私は参考記事に従い一緒にportageも落としましたが、最新のハンドブックでは後で emerge-webrsync してportageを最新化していました。こちらの方がよいと思います。

 

wget "任意サーバーの最新stage3"

tar xpt "stage3ファイル"

wget "任意サーバーの最新portage"

tar xpt "portageファイル" -C /mnt/gentoo/usr

 

落としたファイルを消すのはお好みで。

続いてmake.confを書き換えます。現在は/mnt/gentoo/etc/portage/make.conf にあります。 CFLAGSは -march=native で最適化します。USE flagは現時点は特に設定せず後ほど。コア数に応じたMAKEOPTの設定なども、ハンドブックの通りです。ミラーサイトを手書きすればとりあえずmake.confは完了です。

 

名前解決用に/mnt/gentoo/etc/resolv.conf にnameserverを書きます。

 

その後、chroot後にprocとdevにアクセス出来るようマウントしたらchrootして、Gentoo環境にはいります。

 

mount proc none /mnt/gentoo/proc

mount --rbind /dev /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash --login

env-update

 

これでGentoo環境に入りました。

6. 手順その3 Gentoo起動まで

chrootしたのでportage以下を更新し、環境設定を進めます

この辺は参考記事まんまです。

 

emerge --sync

eselect profile list

eselect profile set 1

 

echo ja_JP.UTF8 UTF-8 > /etc/locale.gen

locale-gen

cp /usr/share/zoneinfo/Japan /etc/localtime

 

カーネルをインストールします。ソースファイルをダウンロードして、make menuconfigします。記事に提供されていたconfigファイルを使うのもありますが、勉強も兼ねて一から設定します。古くなっている可能性もあるし。

 

emerge gentoo-sources

cd /usr/src/linux

make menuconfig

 

ポイントはvirtio関連のdriverを有効にすること。こちらのサイトを見ながら設定しました。実は最初よく分からずハンドブックに書いてあるだけでやったら見事に起動せず。。。設定を終えたら、コンパイルします。

make && make modules_install

 

initramfs も必要なのでハンドブックを見ながら設定します。

 

emerge genkernel

genkernel --install initramfs

 

initramfsは/mnt/gentoo/boot配下に作られます。

 

fstabを書き換えます。boot領域はdebianと兼ねているので、ここでは書かず、ルートとswapだけを書きます。

 

networkファイルの設定は基本的にはハンドブック通りですが、/etc/conf.d/net にnameserverについても記載します。resolv.confが上手く使えないようです。ルートパスワードの設定などはハンドブック通りです。

 

grubを設定します。ここもポイントです。まず、gentoo側ではgrubを入れません。ここで一旦chrootから抜け、debianのboot領域にkernelとinitramfsを入れてそこから再起動します。

 

exit

cp "/mnt/gentoo以下のgentooのkernelイメージ" /boot/vmlinuz-3.0-amd64-gentoo

cp "/mnt/gentoo/boot 以下のgentooのinitramfs" /boot/

update-grub

 

initramfsをコピーする時は既にあるdebianのinitramfsの名前を上手く使うとupdate-grubできちんと認識されます。

 

update-grub したら、/boot/grub/grub.cfg のgentooのルートディレクトリを/dev/vda4に変更します。 これで再起動し、gentooを選んで立ち上がれば無事、完了です。上手くいかなければ、debianから起動して、chrootで/mnt/gentoo以下に入れば修正出来ます。

 

7. 振り返り 今回はgrubの設定やパーティションの切り方など大変勉強になりました。kernelの設定も勉強したくなりました。非常に有意義だったので、色々いじってみたいと思います。

 

おわり