さくら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ファイル"
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の設定も勉強したくなりました。非常に有意義だったので、色々いじってみたいと思います。
おわり