Hatena::ブログ(Diary)

sharow memo RSSフィード

2011-12-24

Licence Art Libre なので転載

さくらVPSにArchLinuxを入れる

リニューアル後のさくらVPS(v3)版をお使いの方は こちら


ArchLinuxに限らず、さくらVPSに他のOSを入れるのはなのですが、なんとかできたのでメモがてら書いておきます。


リニューアルしたさくらVPS(v3)をお使いの方は うちとかさくらのVPS(v3) 2GにArchLinuxを入れてみるや、新しいさくらのVPS(v3, 2G)にArchLinuxをインストールの方を参照してください。また、旧さくらVPSでもHDDIDEからSCSIに変わってる場合があるようです。この場合、/dev/hdaではなく、/dev/sdaなどとなります。


下記の方法ではarchbootという非公式のイメージを使ってますが、さくらVPS にArch Linux をインストールするに公式のイメージを使うケースがありますので、そちらも参照してみてください。


swapに使ってたドライブにインストーラを入れる

前提として、さくらVPSOSインストールしたばっかりの状態で、rootユーザーで操作しています。普通にPCにArchLinuxを入れたいのなら、例えばLiveのISOイメージでブートして/arch/setupでいけると思いますが、さくらVPSCD-ROMドライブなどが無いのでそこで難儀します。細かいことはggっていただくと出てくると思います。ちなみにさくらクラウドではISOイメージをアップロードしてマウントできるのでこのような手間はありません。CloudCoreVPSなら最初からArchLinuxが選択肢にあります。

ひとまず下記の2つのスクリプトrootで実行するとブートメニューにArchLinux Installerが出るようになります。あ、その前に、sysconfig/network-script/ifcfg-eth0、/etc/resolv.confの内容をメモっておいてください。

# Arch Linux Installer step1
cat /etc/fstab | grep -v swap > /tmp/fstab
cat /tmp/fstab > /etc/fstab
swapoff -a
echo 't
3
83
a
3
w
p
q' | fdisk /dev/hda
mkfs -t ext3 /dev/hda3
reboot

みてのとおり、一回リブートされます。次にこれ。

# Arch Linux Installer step2
wget http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/archboot/2012.01/archlinux-2012.01-1-archboot.iso
mkdir /mnt/iso
mkdir /mnt/hdd
mount -t iso9660 -o loop archlinux-2012.01-1-archboot.iso /mnt/iso
mount /dev/hda3 /mnt/hdd
cp -R /mnt/iso/* /mnt/hdd/
echo '
title ArchLinux Installer
    root (hd0,2)
    kernel /boot/vm64 boot=live config hostname=archlinux console=tty0 console=ttyS0,115200n8r
    initrd /boot/initrd64.img' >> /boot/grub/menu.lst
reboot

640MBのISOイメージをDLするのでちょっと時間がかかります。またリブートされるのですが、ここでコントロールパネルのコンソール(シリアルで端末やってるやつ)をよく見張っててください。チャンスはデフォルト設定だと5秒です。press any key..なんちゃらが出たらすかさず何か押します。まぁ、ブートメニューですね。ArchLinuxが追加されてるのでそれを選択しましょう。さくらVPSデフォルトCentOSを再インストールしたばっかりの状態でなら、ほぼ間違いなくインストーラが立ち上がると思います。


インストールする

さて、インストーラのメニューが出るんですが、もの凄い勢いで9.Exit Installしてください。というのは、ネットに繋がってないとパッケージを落とせないからです。インストーラ内のパッケージでうまくいける筈なんですが、なんかうまくいかず、ネット経由で成功してしまったのでそっちは調べてません。また、ローカルパッケージの古いものを後で最新版にアップすると、confがconf.newと重複したり、手動での操作が必要になる場合が稀にあるので、最初は大変ですがこのほうが無難だと思います。

終了すると普通にシェルです。まず/etc/rc.confのうち、ネットワークに関する部分を先ほどメモった情報で設定します。emacs使いは難儀しそうですが、慣れないviとかnanoでがんばりましょう。/etc/resolve.confも同様にしておきましょう。ちなみに私の場合はさくらVPSシリアルコンソールでインストール作業をしたくないので/etc/ssh/sshd_confも設定しておきました。sshdで入るにはpasswdで適当に暫定パスいれときましょう。これらを設定したら以下で立ち上げてうまくいける筈。(もしかすると ifconfig eth0 up も必要かも。)

rc.d restart network # +sshd optional

私はこっからTeraTermで作業しました(コピペができるので)。

ping www.google.co.jp とでもしてネットが繋がってることを確認しましょう。繋がってればOKです。 /arch/setup を実行してさきほど瞬殺されたインストーラにて、メニューの1から順に、必要に応じて設定していきます。気をつける部分は

  • SourceはFTP/HTTP を選ぶこと
  • GUID(GPT)は利用しないこと
  • Boot LoaderはGRUB_LEGACY(GRUB2に詳しいならそちらでもOK)

ってとこでしょうか。私はその他のディスクのパーティションとかもほとんどおまかせでやりました(スワップは512M、/homeや/のfsはext4を選びました)。GRUB2を選ばなかった理由は、デフォルトでグラフィカルなブートメニューに飛んだりしないか懸念したからです。ドライブの記法もby-labelを選んだので、UUIDでもGRUB_LEGACYで起動できるかは確認していません。

終盤に設定ファイルいじれと言ってくるんで、そこでrc.confやresolve.confを同じように設定しましょう。まぁ、後で設定しても同じなんですが。

インストールや設定についてはこちらがとても参考になります。


このインストーラを終了したらすぐにrebootしないでください。一つ大事な設定が残ってます。これは絶対です。/tmp/install/etc/inittabに以下の行を追加します。(たしか/tmp/install/でした。名前違うかもしれませんが、とにかくtmpの下です。)

co:2345:respawn:/sbin/agetty -h 115200 ttyS0 vt100

/tmp/install/boot/grub/menu.lst にも以下を追加し、

serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

そのうえで、さらにブートエントリのkernel欄に

kernel ???/vmlinuz  console=tty0 console=ttyS0,115200n8r

となるように、" console=tty0 console=ttyS0,115200n8r"を追加します。さくらVPSのサポートページかどっかに書いてありましたね。これを忘れるとシリアルコンソールが使えなくなるので詰みます。


あるいはインストールするパッケージにopensshを選んでおけば、/tmp/install/etc以下にsshd_confができる筈ですので、

  • sshd_confを設定する
  • rc.conf最下のDAEMONSにsshdを追加しておく

こうしておくと、仮にシリアルコンソールが詰んでもsshログインできる筈ですので、保険としてこれもやっておいたほうがと思います。どうせsshは使うでしょうし。

(melpon日記 - HaskellもC++もまともに扱えないへたれのページよりノウハウ頂きました)


これでインストールは終わりです。


初ArchLinuxブート

rebootすると新しいけど古いGRUBでブートメニューが出て、ArchLinuxが立ち上がる筈です。ミニマルですから、デフォルトの設定ではsshd(openssl)すら入っていません。が、そこはArch、最強のpacmanとそのレポジトリでばんばん入れていきましょう。結構コマンド名とパッケージ名が違うので「あれ?なにそれがないぞ?」ってことがありますが、しつこくググれば大抵わかります。例えば実話ですと「netstatねぇし!」ってなって、pacman -Ss netstatしてもなんだか出てきません。えーとー・・覚えてませんけど、nettoolsとかそんな名前のパッケージに入ってたという落ちです。ちなみに一番最初は下記でsyncしておきましょう。

pacman -Sy
pacman -Su

(pacman -Syuでも同じ)


TCP Segmentation OffloadをOFFに

余談、これはさくらVPSで使う場合のみですが、TCP Segmentation OffloadをOFFに設定します。これをやらないとWebサーバーなどで通信がめちゃくちゃ遅くなります。詳しくは「さくら VPS TSO」あたりでググってください。設定は /etc/udev/rules.d/50-eth_tso.rules を作成して、

ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/usr/sbin/ethtool -K eth0 tso off"

の1行を書き込みます。と同時に、pacmanでethtoolも入れておきましょう。これでリブートすれば「なんかTCP通信がクソ遅いぞ?」ということがなくなります。


(任意)IPv6をOFFに

さくらVPS2011年の3月あたりからIPv6アドレスももらえるようになっています。が、使わない人はOFFにしちゃった方がクエリ回数が減って速いらしいので無効にしてもよいと思います。

https://wiki.archlinux.org/index.php/Disabling_IPv6


CentOS 5.5 x86_64 から ArchLinux に乗り換えてみてどうか?

消費メモリが少ないです。設定にもよるんでしょうが、メモリ512MBのさくらVPS512だとCentOSは初期設定のままだと300MB以上食いますが、Archならこの程度です。それに起動の速いこと。

  • 消費メモリ:50MBちょい(初期設定+sshd)
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 455868   5172  17416    0    0   166     4   54   90  0  1 98  0
top - 19:22:27 up 39 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  59 total,   1 running,  57 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    507044k total,    53580k used,   453464k free,     5388k buffers
Swap:  1999868k total,        0k used,  1999868k free,    18380k cached
Linux HOSTNAME 3.1.5-1-ARCH #1 SMP PREEMPT Sat Dec 10 14:43:09 CET 2011 x86_64 Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz GenuineIntel GNU/Linux

現状のデーモンたち

# rc.d list
[STARTED][AUTO] crond
[STOPPED][    ] dbus
[STOPPED][    ] fancontrol
[STOPPED][    ] ftpd
[STOPPED][    ] healthd
[STOPPED][    ] hwclock
[STOPPED][    ] ip6tables
[STOPPED][    ] iptables
[STOPPED][    ] ipvsadm
[STOPPED][    ] keepalived
[STOPPED][    ] krb5-kadmind
[STOPPED][    ] krb5-kdc
[STOPPED][    ] krb5-kpropd
[STOPPED][    ] mdadm
[STOPPED][    ] netfs
[STARTED][AUTO] network
[STOPPED][    ] nscd
[STOPPED][    ] ntpd
[STOPPED][    ] ntpdate
[STOPPED][    ] ppp
[STOPPED][    ] sensord
[STOPPED][    ] sensors
[STARTED][AUTO] sshd
[STARTED][AUTO] syslog-ng
[STOPPED][    ] sysstat

はて、VPSCentOSで最初にやるべきこと、みたいなエントリで「これは電源関連でパネルからシャットダウンとかできなくなる可能性あるから殺しちゃだめ」みたいなことが書いてあったのだけど、そもそも電源管理のヤツらがいないぞ?しかしシャットダウンもリブートも問題ないので、必要なかったってことか・・・。

sharowsharow 2012/02/03 04:04 isoのパスが無効になっていたので http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/archboot/2012.01/archlinux-2012.01-1-archboot.iso に更新しました。

sharowsharow 2012/02/08 20:26 TSOをOFFにするためにethtoolを入れる必要がある迄、明記しました。

sharowsharow 2012/02/09 09:00 インストーラからリブート前にsshd_confを設定してしまう保険と、IPv6無効化について追記しました。

sharowsharow 2012/04/07 15:33 リニューアル後のさくらVPSでは上記の方法そのままではうまくいかないようです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元