読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

さくらVPSにArchLinuxをインストールする (新インストール手順)

追記:
2013/9/5この記事は更新されました。
幾つかのミスを訂正しています。

この記事では/dev/sdaで基本的に解説していますが、最近もう一度インストールしてみると/dev/vdaで認識されるようになっていたので、/dev/vdaの場合sdaをvdaに読み替えて実行してください。
また、いくつか/dev/vdaの場合の追加手順があるので注意してください。

8月のisoから大きくArchLinuxのインストール方法が変わった。
最近サーバーの調子が悪かったので丁度いい機会なので再インストールしてみることにした。

今回利用するのはarchlinux-2012.10.06-dual.isoを用いる。11月のisoもあったけど更新点確認した限り対して影響無さそうなので10月のもを使っていくよ。

最初に

以下のサイト様を参考にさせていただきました。ありがとうございます。
http://kenkov.jp/blog/2012/08/06/installarchlinux0804.html

ArchLinux install isoをbootする

以前までCentOSなどを適当にインストールし、CentOSでisoをダウンロードそしてgrubなどに設定してArchのisoを起動という手段を用いていたが、久々にインストール画面に行ったらこんなものがあった。

「ISOイメージインストールへ」 というところをクリックしてアカウントを作成する。

どうやらここで制作されるアカウントにsftpを用いてisoファイルをアップロードすることでそのisoを起動してくれるようだ。
sftpコマンドなどを使ってアップロードする

$ sftp username@hostname

で接続する。usernameやhostnameは一時的な物が作成され表示されるのでそれをコピペなりで入力。パスワードも指定されるのでそれを入力。

ログインしたら

$ cd iso

に移動して、ここにisoファイルをアップロードする

$ put archlinux-2012.10.06-dual.iso

といった具合。しばらく待ってうまくいったら"exit"する。


その後さくらのWebページを更新すると先ほどのisoが読み込まれるのでそれを選択する。

※ArchLinuxのインストール手順については過去の記事も参考になるかも
http://d.hatena.ne.jp/opamp_sando/20120723/1343054210

ネットワーク設定

正しくArchLinuxが起動できたら、早速ネットワーク設定を行う。
まず日本語キーボードとして読み込まないといろいろ大変なので

$ loadkeys jp106

を実行してキーマップを変更しておく。

ということで早速ネットワーク設定を行う。DHCPが使えれば自動設定されるがさくらVPSでは利用できないので以下のように手動で行う。また、以下で入力するIPアドレスはすべて「インストール情報」というようにしてさくらVPSのサイトに表示されるはずなのでそれを参照する。

$ ip addr add <IPアドレス>/23 dev eth0

にはさくらVPS側(インストール情報)で指定されているIPv4のアドレスを入力する。

$ ip route add default via <ゲートウェイ>

<ゲートウェイ>にはゲートウェイのIPアドレスを入力する。これもさくらVPSが指定してるものがあるはずなのでそれを入力する。

最後に

$ vi /etc/resolv.conf

を開いて

nameserver <dns1 IPアドレス>
nameserver <dns2 IPアドレス>

という形式でネームサーバー1(プライマリ)とネームサーバー2(セカンダリ aka 予備)のIPアドレスをそれぞれ記入する。これもさくらVPSで決められたものがあるのでそれを利用する。

ここまでできたらネットワーク設定完了。

GNU Partedでパーティションを分ける

GPTなのでcfdiskが使えない。そこでpartedを使う。(最近はcgdiskってのもあるらしい)

$ parted

として起動できる。
"/dev/vda"としてディスクが認識された場合partedは自動で探してくれないので次のように起動する

$ parted /dev/vda

パーティション分けは人によって変わってくるのでここではpartedを用いたパーティションの分け方をごく簡単にメモしておく。
ただ、この記事のインストール方法に完全に従うのであれば初めのパーティション(sda1)は必ず/boot用にして、bootフラグを立てるようにして更にext4でフォーマットすること。


現在のディスクの様子を確認するには

> print

とすればいい。

すでにあるパーティションを削除するには

> rm 0

番号はprintで見れるパーティション番号を入力する。


パーティションを作るには

> mkpart

いろいろ聞かれるので適切に答える。
またStart?とかEnd?の質問の部分は1MBごとの数値になる。例えばsda1を1GB確保したいとする。

Start? 0
End? 1024

となる。初めのパーティションなので0からはじめる。次にsda2を2GB確保したいとすると

Start? 1024
End? 3072

とする。


フラグを立てる

> set 0 boot on

などのように"number flag state"の順番で指定する。
ここではフラグを立てるなら/bootパーティションにbootフラグを立てるくらいにしか使わないと思うけど。


終了

> quit

とする。自動で保存される。

追記:
自分がググって調べたらGrubだと先頭に1007KiBのフォーマットしてないパーティションが必要で云々という話があったが、今回はそれは関係ないのでガン無視しておk。

mkfs.*でパーティションをフォーマット

mkfs.ext4などのコマンドを用いてパーティションをフォーマットする。ファイルシステムはなんでも良いが安定と安心のext4あたりを使っておくと安心かもしれない。(前にも書いたけどこの記事の方法に従うなら/bootパーティションはext4でフォーマットすること)

$ mkfs.ext4 /dev/sda1

など。とする。/dev/sda1のところにはそのパーティションのスペシャルファイルを指定する。
/dev/sda1は前のcfdiskの工程で"/root"に割り当てるために作っておいたパーティションね。

同様にcfdisk時に作ったパーティションをフォーマットしていく。

また、swapは

$ mkswap /dev/sda2
$ swapon /dev/sda2

のようにすればいい(swaponしておけばgenfstab時に自動でfstabにswapも加わる)

mountする

上の工程で初期化したパーティションをそれぞれマウントする。 まずは"/"になるパーティションをマウントする。
ここでは/dev/sda3である。

$ mount /dev/sda3 /mnt

でおk。

"/boot"なども作ってあるので、こちらも同じようにマウントするが、mountコマンドを実行する前にmkdirでマウントするディレクトリを制作しておく

$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot

といった具合。

今回は作ってないが、もし"/home"や"/var"などを作った場合はそれらに関しても同様にmkdif -> mountしていく。

systemのインストール

以下のコマンドを実行する。

$ pacstrap /mnt base base-devel

ネットワークからファイルを取得してbase systemをインストールしてくれる。
時間がかかるので気長に待つ。

syslinuxのインストール

grubを使おうと思ったが、変更。syslinuxを使っていく。

$ arch-chroot /mnt pacman -S syslinux

いろいろ警告とか出るけど気にせずに進む。

Configure System 準備

fstabを自動生成する。次のコマンドを入力する。

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

続いて

$ arch-chroot /mnt

を実行。

Configure System

/etc/hostnameを設定

$ vi /etc/hostname

してhostnameを設定する。ファイルを開いたらそのままhostnameを書けばおk.

myserver

みたいな感じで。さくらなので標準のホスト名とか書き込んどけばおk。


タイムゾーンを設定する。

$ ln -s /usr/share/zoneinfo/Japan /etc/localtime

を実行すればおk。


キーマップを設定する。
キーマップはloadkeysで設定しただけではインストール環境でのみ有効でインストール後の環境で元に戻ってしまう。
ので、ここで再度永久的なものになるように設定する。

$ vi /etc/vconsole.conf

と開いて

KEYMAP=jp106

と書き込んで終了。


locale.genも設定しておく。

$ vi /etc/locale.gen

と開いて、必要な部分のコメントを外す。例えば次のような感じ


※ここに記述していたrc.confによる設定は廃止されたので削除しました。
ネットワークの設定方法についてはここでは述べないことにします。
https://wiki.archlinux.org/index.php/Configuring_Network
http://opamp.hatenablog.jp/entry/2013/09/05/230433
上のURLを参照してください。


/etc/mkinitcpio.confを設定
次は/etc/mkinitcpio.confを設定するが、ここが結構重要。上のは割りと忘れてもインストール後でも何とかなったりするけどここのところは忘れると結構まずい気がする。

$ vi /etc/mkinitcpio.conf

開いて7行目くらいを以下のように変更

MODULES="virtio virtio_blk virtio_pci virtio_net"


最後に、はじめに設定した/etc/resolv.confが最初と同じように設定されているかを確認したら、次のコマンドを何も考えずに実行する。

$ mkinitcpio -p linux

で、仕上げにsyslinuxの設定をする。ここは注意しないと起動しないなんて事態になる。

$ pacman -S gptfdisk

まずgptfdiskをインストール。続いて次のコマンドを実行。

$ sgdisk /dev/sda --attributes=1:set:2
$ sgdisk /dev/sda --attributes=1:show
$ dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/gptmbr.bin of=/dev/sda

の3つのコマンドを実行する。ただし、これは/bootがsda1(最初のパーティション)に割り当てられている場合。
(ちなみにこれらのコマンドはGPTだから必要なようだね)

もし上のようにしてうまくいかなかったら以下のコマンドも試してみてほしい。

$ syslinux-install_update -iam

成功のメッセージが英語ででれば成功である。

また、もうひと手順必要である。次のコマンドを実行してグラフィカルブートメニューのモジュールをロードさせる準備をする必要が有るようだ。

$ cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/

これを実行しないとsyslinuxが起動してくれない。

注意:
今回の記事では/dev/sdaとしてインストール手順をひと通り説明した。
しかし、2013/9/5現在インストールを行ってみると/dev/vdaとしてディスクが認識されている。
もしそのようになっていた場合は、/boot/syslinux/syslinux.cfgの記述を修正する必要がある。

例えば

LABEL arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda3 rw
        INITRD ../initramfs-linux.img

などとなっていた場合、root=/dev/sda3をroot=/dev/vda3と書き換える必要がある。
ここは/bootではなく"/"のパーティションなので注意が必要。

その他の場合についてはwikiを参照
https://wiki.archlinux.org/index.php/Syslinux#GUID_Partition_Table_aka_GPT

rootのパスワードを設定

管理者のパスワードを設定する。大事なパスワードなので他人に知られたり忘れたりしないようにする。

$ passwd

chrootを抜けてumountする

$ exit

などと入力しchroot環境を抜ける。
そして

$ umount /mnt/boot
$ umount /mnt

などとして一番深いものから順番にumountしていく。

reboot(もといpoweroff)

終了。

$ poweroff

する。
rebootするとまたDiskで起動するので、一旦poweroffし、コントロールパネルから「起動」して
コンソールを使って再度接続する。

もし失敗したら?

もし失敗して何故か起動しないなどという現象に陥った場合、さくらVPSのコントロールパネルから
OSの再インストールを選びインストール手順のときと同様にするとアップロードしておいたisoが20時間程度残っているので再度Diskから起動することができる。
もし、はじめから間違えてる可能性があるのならはじめからやり直さなければならないが、ブートローダの設定に確実にミスがあるということなどがわかっている場合は、mountコマンドで作ったパーティションをマウントし再度arch-chrootして作業を再開できる。
そして問題点を見つけて修正し、再度起動してみるといいと思う。


最後に

"最後に"は全部書き換えました。2013年版"最後に"です。
以前のインストール時にうろ覚えで適当に書いた部分などを修正致しました。
正しくツールを使い上の手順に従えば確実にいけると思います(ただし2013/9/5現在)

Enjoy Your ArchLinux Life ;-)


また、間違いや記述ミスや記述漏れがあった場合は後から更新します。もし何かあったら遠慮なくコメントなどで教えてくださると幸いです。

ということで今日はこのへんで。

Firefox ブラウザ無料ダウンロード