kenkovlog

けんこふたんっオフィシャユブヨグッ
アンッ!アンッ!アンッ!アンッ!

さくらVPS(v3) にArchLinux (2013.04.01-dual.iso) をISO イメージからインストールする

さくらVPS でISO イメージからのインストールが可能になったので、試してみました。今回は ArchLinux (2013.04.01-dual.iso) を使ってArchLinux をインストールしました。

なお、以下のコマンドで $ から始まっている行は、本来は # から始まります。このブログでは # から始めるとコメントとしてハイライトされてしまうので、 $ から始めています。注意してください。

ISO イメージのアップロード

ISO イメージインストールを選択し、

../../../_images/iso_upload.png

表示されたホスト名、ユーザ名、パスワードを使ってsftp でISO イメージをアップロードする。

$ sftp username@servername

sftp> cd /iso
sftp> put put archlinux-2013.04.01-dual.iso

アップロードが完了したら、さくらのページに戻る。アップロードされたのを確認したら、そのISO からインストールを開始する。

インストール開始

まずはネットワークの設定

$ ip addr add <static ip address>/23 dev eth0
$ ip route add default via <gateway ip address>

あとは、resolv.conf にDNS サーバを追加する

nameserver <dns1 ip address>
nameserver <dns2 ip address>

キーボードの設定をする:

$ loadkeys jp106

パーティッション

今回はGPT + BIOS で/root のみ作ることにした。cgdisk で

$ cgdisk /dev/vda

して、以下のような構成にした:

../../../_images/partition.png

注意点としては、 ArchWiki:GRUB2 のページにも次のように書かれている通り、

For a BIOS-GPT configuration, create a 1007 KiB partition at the
beginning of the disk using cgdisk or GNU Parted with no filesystem.

ということなので、BIOS-GPT ではcore.img を埋め込むために1007KiB のパーティッションをディスクの先頭に作らなくてはならない。そのパーティッションにはファイルシステムを作成してはいけない。さらに、

Set the partition type to 0xEF02 in gdisk,
EF02 in cgdisk or set <BOOT_PART_NUM> bios_grub on in GNU Parted.

とあるように、そのパーティッションをcgdisk でtype: ef02 にしなくてはならない。( このパーティッションはboot パーティッションとは異なるものです。 )

以上のようにしたら、次にファイルシステムとスワップを作成する:

$ mkfs.ext4 /dev/vda3
$ mkswap /dev/vda2

注釈

もしもBIOS + MBR にしたい場合は

ArchWiki: GRUB2 にかかれているように、

a post-MBR gap of about 1 to 2 MiB is recommended
to provide sufficient room for embedding GRUB2's core.img

に注意してください。(これはboot パーティッションとは異なるものです。)

ですので、先頭に1-2 MiB のスペースを空けておかなくてはなりません。 より詳しい内容は grub2 installation problem (embedding area is unusually small…) を参照してください。

ベースシステムのインストール

あとはマウントしてベースシステムをインストール:

$ mount /dev/vda3 /mnt
$ pacstrap /mnt base base-devel grub-bios openssh inetutils net-tools

システムの設定

fstab を作成してchroot する。

$ genfstab -p /mnt >> /mnt/etc/fstab

あとは、fstab に次のスワップも追加:

# /mnt/etc/fstab
/dev/vda1    swap   swap    defaults    0 0

chroot する:

$ arch-chroot /mnt

chroot したら次の設定をします。詳しくは ArchWiki: Beginners』 Guide を参照してください。

  • ホストネームの設定。/etc/hostname にhostname をかく。

    # /etc/hostname
    yourhostname
    
  • コンソールフォントとキーマップの設定を/etc/vconsole.conf に書く。

    # /etc/vconsole.conf
    KEYMAP=jp106
    
  • locale の設定。/etc/locale.conf に次をかく。

    # /etc/locale.conf
    LANG="en_US.UTF-8"
    
  • タイムゾーンの設定。localtime のリンクをはる。

    $ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    
  • /etc/locale.gen で必要なもののコメントを外す。その後で

    $ locale-gen
    

    する。

  • mkinitcpio する。

    ここが重要 : さくらVPS ではvirtio 関連のモジュールの設定をしなければならない。 まず/etc/mkinitcpio.conf のMODULES を

    MODULES="virtio virtio_blk virtio_pci virtio_net"
    

    と編集してから

    $ mkinitcpio -p linux
    
  • パスワードを設定する

    $ passwd
    
  • grub をMBR にインストールする:

    $ grub-install /dev/vda
    

    次にgrub の設定ファイルを作成する。さくらVPS でシリアルコンソールを使えるようにするために/etc/default/grub の設定を

    GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8r"
    GRUB_TERMINAL_INPUT="serial console"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
    #GRUB_GFXMODE=auto
    

    としてから

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

ネットワークの設定

netcfg を使った固定IP の設定方法。詳細はArchLinux のページにある NETCFG-PROFILES(5) を参照のこと。設定ファイルは二つあって

  • /etc/network.d/mynetwork : ここで個別のネットワークの設定をする。
  • /etc/conf.d/netcfg : ここでどの設定ファイルをロードするか指定する。

まず設定ファイルの例/etc/network.d/examples/ethernet-static をコピーする:

$ cp /etc/network.d/examples/ethernet-static /etc/network.d/

コピーした/etc/network.d/ethernet-static を編集して必要な部分を編集する:

CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
ADDR=<your ip address>
# デフォルトだとNETMAST の項目がないので注意。これを指定しないとNETMASK は24 になる。
NETMASK='23'
GATEWAY=<your gateway>
DNS=(<primary DNS> <secondaly DNS>)

次に/etc/conf.d/netcfg のNETWORKS を編集して先程のファイル名を指定する:

# /etc/conf.d/netcfg
NETWORKS=(ethernet-static)

netcfg サービスを有効にする:

$ systemctl enable netcfg.service

注釈

もしインストール後にnetcfg.service でエラーが出るようだったら

$ netcfg stop

してから、再度netcfg.service をstart してみてください。

おわり!!

これであなたもすてきなArch ライフをおくれますっ♪

けんこふたん