kenkovlog

Haskell, Python, Vim, ...

さくらVPS にArch Linux をインストールする。

さくらVPS にArch Linux をインストールしました。
インストール方法については既出の記事 があり、これはarchboot というものを使用してインストールしています。
今回僕は、Arch Linux 公式のインストーラ(archlinux-2011.08.19-core-dual.iso)を使用してArch Linux をインストールしました。
というのも、archboot の利用に関して、ArchWiki にも書いてある通り

Those files are no official Arch Linux releases.
Use them on your own risk.

ということなので、公式のインストーラを使用したかったためです。

インストール方針

ArchWikiのBooting an ISO Directly From Grub2 のページを参考に、Grub2 からISO(インストーラ) を起動してインストールします。

具体的には次のステップでインストールします。

  • Debian をインストールする。(さくらVPS にはカスタムインストールでインストールできる)
  • Grub2 の設定を変更してISO から起動できるようにする。
  • ISO からArch Linux をインストールする。

Debian をインストールするのは、

  • Grub2 をインストール直後から使用できる
  • ディスク全体を使用せずにインストールする(手動パーティッション)

ためです。
後からArch Linux をインストールするので、ディスク全体を使用せずにインストールする必要があります。

Debian インストール

というわけで、まずDebian をインストールします。
インストールはパーティッションの設定を除いて通常通りです。

パーティッションは、後でArch Linux をインストールすることを考えて設定します。
今回僕は

sda1    Primary 200MB   /boot
sda5    Logical 3GB     /
sda6    Logical 1GB     swap

にしました。
僕の場合、全体で20GB あります。今回Debian インストールに使用したパーティッションは後でArch Linux の/home にしようと思います。

さて、インストールが完了したら次にGrub2 の設定をします。
まずインストーラのISO ファイルを取得します。

# mkdir /archives
# cd /archives
# wget http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2011.08.19/archlinux-2011.08.19-core-dual.iso

Grub2 の設定はArchWiki に従います。
/etc/grub.d/40_custon に

menuentry "Archlinux-2011.08.19-netinstall-x86_64.iso" {
set isofile="/archives/archlinux-2011.08.19-netinstall-x86_64.iso"
loopback loop (hd0,7)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/sda7 img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/x86_64/archiso.img
}

を追加します。

あとはGrub2 をアップデートします。

# grub-mkconfig -o /boot/grub/grub.cfg

これで設定終了です。reboot します。

Arch Linux インストール

うまく設定出来ていると、Grub のメニュー画面ArchLinux を選択すればインスーラが起動するはずです。
インストーラが起動したら設定を開始します。
まず、パーティッションの設定をします。

# cfdisk

ここで、ArchLinux のパーティッションを設定します。先程のDebian のパーティッションは現在使用しているので削除できません。
ですので、Debian のパーティッションを削除せずに、新しくパーティッションを追加します。
僕は

sda3    Primary 100MB   /boot
sda7    Logical 10GB    /
sda8    Logical 1GB     swap

にしました。
全体としては
f:id:kenkov:20120318031034p:image
という風になりました。
さて、ここで一度reboot します。そうしないと、インストール中のmountpoint の設定で現在のパーティッションの設定が反映されません。

reboot したら、通常通りインストールを進めればok です。

インストール時の注意点としては、

  • rc.conf でネットワーク(固定ip など) の設定
  • resolv.conf の設定

をしなければなりません。

あと、インストールが終了したらすぐにreboot してはならず、さくらVPS の注意 にあるように
/etc/inittab に

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

/boot/grub/menu.lst に

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

を、kernel の行に

kernel 〜〜〜 console=tty0 console=ttyS0,115200n8r

を追加しなければなりません。この設定をしないとリモートコンソールを使用できなくなります。(つまり詰む。)

なお、リモートコンソールが使えなくなった時の対策にssh をインストールしておくといいかもしれません。
ssh をインストールするには、インストールパッケージの選択でopenssh を選択して、/mnt/etc/ssh/ 以下のssh の設定をいじればよいです。(インストールした時にマウントしたパーティッションは/mnt/ 以下にマウントされています。)

さて、ここまで出来たらreboot します。

うまくいっているように願います………

Arch Linux の設定

うまく設定出来ていればArch Linux が起動するはずです。

さて、Debian で使用していたパーティッションをcfdisk で削除します。今の状態ですと、sda1、sda5、sda6 を削除します。

注意点としては、Logical パーティッションを削除すると番号がずれる可能性があることです。番号がずれた場合には、/etc/fstab、/boot/grub/menu.list をそれにあわせて変更する必要があります。
今回ですと、

  • sda7 -> sda5
  • sda8 -> sda6

という風に変わるので、この通りにfstab とmenu.list を編集します。
(はじめからこのことを考えてパーティッションを変更していればよかったですね…;;;)

さて、必要なくなった場所に/home を作成します。今の場合だとsda1 というPrimary パーティッションをcfdisk で作成して

# mkfs -t ext4 /dev/sda1

でファイルシステムを作成します。そして、/etc/fstab に追加します。

最終的なパーティッションは

sda1            Primary ext4    10272.01
sda5            Logical ext4    10001.95
sda6            Logical swap    1003.49
sda3    Boot    Primary ext3    197.41

となりました。

終り

以上で終わりです。
素敵なArch 生活を送れますね!