マイティーサーバのCentOS4をubuntuに置き換える方法
がんばって、マイティーサーバのCentOS4をubuntuのdapper(6.06)に置き換えたよー
前書き
マイティーサーバはシリアルコンソールがついている大変ありがたい
レンタルサーバです。とある事情(稟議が面倒)でマイティーサーバ以外には契約できない
お客さんがいるのですが、私はCentOSは好きじゃない。
困ったもんだと思っていましたが、以前にRubyKaigi2006でとみたさんが
やった人がいるよーって言っていたので、根性でやってみることにしました。
さて、作業します
マイティーはエントリーの契約で十分です。webminとかPLESKとは一切つけません。
まず、sshでログインし、rootになります。
/etc/ssh/sshd_configの
PermitRootLogin without-password
にし、rootの.ssh/authorized_keysにpublic keyを登録しておきます。
パーミッションは600、キーの中に改行があるとログインできませんので、
要注意です。
/etc/init.d/sshd restart
し、rootで直接ログインできるようにします。
そして、いったんユーザーでログインしているのを
rootで直接ログインし、
umount /home
として、/homeをアンマウントします。
/etc/fstabを書き換えて、md2をoptに、procとdevをchrootしても使えるようにします。
/dev/md2 /opt ext3 defaults 1 2 /dev /opt/dev none bind 0 0 proc /opt/proc proc defaults 0 0
mount -aでマウントされますので、mountで確認しておきます。
mv /opt/redadmin /home
とし、移動しておきます。
ubuntu6.06のx86のイメージを/root以下に置いておきます。
これは手元でdebootstrapで作っておいた物です。
欲しい人は連絡をいただければ晒します。
/optに展開します。
cd /opt tar xjf /root/ubuntu6.06.tar.bz2
chroot /opt
/etc/apt/sources.listを編集します。
deb http://ftp.riken.go.jp/Linux/ubuntu dapper main restricted universe multiverse deb-src http://ftp.riken.go.jp/Linux/ubuntu dapper main restricted universe multiverse
/etc/fstabを編集します。
proc /proc proc defaults 0 0 /dev/md2 / ext3 defaults 1 1 /dev/md3 none swap sw 0 0
mtabをfstabをコピーして作っておきます。
cd /etc cp fstab mtab
mdadm,ssh,kernelをインストールします。
apt-get install mdadm ssh apt-get install linux-image-2.6.15-23-server
※ md2をrootにするので、initrdファイルはmdadmをインストールしてから作る必要があります。
順番を間違えた場合はmkinitramfsで作りなおします。
exitし、centos側に戻り、kernelとinitrdをcentosの/bootにコピーします。
exit cp /opt/boot/linux-image* /boot cp /opt/boot/initrd* /boot
ついでに、sshのキーをコピーしておきます。
cp /etc/ssh/ssh_host_* /opt/etc/ssh
こうすると、OSを切り替えてもsshのログイン時に文句を言われないです。
ネットワークの設定を移行します。
vi /opt/etc/network/interfacesなのですが、
このとき、CentOSではMACアドレスも指定しているようなので、
これも移行しておきます。
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 61.58.XXX.XXX netmask 255.255.255.0 network 61.58.XXX.0 broadcast 61.58.XXX.255 gateway 61.58.XXX.1 hwaddress ether 00:E0:81:76:XX:XX iface eth1 inet static address 172.18.XXX.XXX netmask 255.255.0.0 network 172.18.0.0 broadcast 172.18.255.255 hwaddress ether 00:E0:81:76:XX:XX
eth1はまだ立ち上がらないようにしておきました。
ubuntuにchrootします。
chroot /opt mkdir -p /var/run/network touch /var/run/network/ifstate apt-get install portmap
ネットワークのファイルの追加と、portmapをインストールします。
pormapはnfsマウントするのに必要です。
ついでにいろいろ作業しておきます。
passwdでrootのパスワードをつけておきます。
また、ログインユーザも作っておきます。
passwd adduser xibbar
grubをインストールします。
apt-get install grub
grub-install /dev/hdaはやっちゃだめです。
失敗すると致命的なので、生かしておきましょう。
mkdir /boot/grub update-grub
すると、/boot/grub/menu.lstができます。
これを参考にして、centos側の/boot/grub/menu.lstを書き換えます。
title Ubuntu, kernel 2.6.15-23-server root (hd0,0) kernel /vmlinuz-2.6.15-23-server root=/dev/md2 console=ttyS0,115200n8 initrd /initrd.img-2.6.15-23-server
これを追加しました。
/etc/inittabを編集します。これをやらないとシリアルコンソールが使えません。
co:2345:respawn:/sbin/getty 115200 ttyS0
を追加です。
さて、ここまで来たらマイティーパネルからシリアルコンソールを
呼び出して、表示しておきます。そして、リブートします。
shutdown -r now
BIOSが立ち上がり、しばらくするとgrubの画面になります。
そこで、ubuntuのメニューがでたら、grubまでは成功です。
ubuntuを選んでブートしてみます。
無事起動したら成功です。
成功したら、centos側の/boot/grub/menu.lstのdefault=0を1にすると、
デフォルトでubuntuが立ち上がります。
設定を残しておいた、/etc/fstabと/etc/network/interfacesを
修正し、nfsドライブやeth1を使えるようにしておきましょう。
さーて、これからrails、apache、postgresql8を入れなきゃ。
ちゃんとブートしたよーというスクリーンショットです。