Linuxゲリラ戦記

無線LANはいつからWi-Fiになったんだ。リンスはいつからコンディショナーになったんだ。ジーパンはいつからデニムになったんだ。誰にも許可取らずに名前を変えていいものなのか?じゃあ、明日から私がジョニー・デップを名乗っても文句言うなよ?

左を向いているペンギンみたいなキャラクター、ナックス

Arch Linuxインストールメモ 2013-07-15

こんにちは。3連休だったのでArch Linuxインストールに挑戦しました。詳しいインストール方法はBeginners' Guide(日本語)にありますが、せっかくなのでインストール記録です。なお、ハードディスクの中身を全て消してインストールする方法です。パソコンにWindowsとか入ってたら、それも消してしまうので、Windowsとデュアルブートしたいとか言う人は他の人のサイトを参考にしよう。

まずはisoファイルをダウンロードします。Arch Linux - Downloadsの下の方に、日本でisoファイルをもってるサーバーがあるので、ftp.tsukuba.wide.ad.jpからでもjaist.ac.jpからでも、お好きな方からarchlinux-2013.07.01-dual.isoっていうのをダウンロードしてください。そして空のCDに焼き付けます。なお、空のCDというのはお店で売っています(そらのCDじゃないよ。からのCDだよ。からっぽの"から"だよ)。Amazonでも売っているし、TSUTAYAでも売ってたと思う。最近ではコンビニでも売ってるんじゃないかな。CD-RでもCD-RWでも好きな方をどうぞ。RWのほうが、失敗しても中身を消してやり直せるCDです。CD-Rは、一度中に書き込む(焼き付ける)と、消せません。なのでRWがお勧めです。私は家にCD-RしかないのでCD-Rに焼きましたが。isoファイルを焼き付けるソフトはフリーで色々あります。WindowsにもisoファイルをCDに焼き付ける無料のソフトは色々あるのでググってみてね。LinuxでCDを焼き付けるソフトも色々あります。私はなんとなくBraseroっていうソフトで焼き付けました。K3bとかで焼いてもいいよ。

焼き付けたら、CDをパソコンに入れたままパソコンを再起動しよう。Arch linuxインストールCDが起動するはず。起動しなかったら、パソコンの起動に関する設定を変える必要があるかも。多分今は「ハードディスクから起動する」っていうモードになっちゃってるから「CDから起動する」っていうモードに変更する必要があるよ。詳しくはパソコンの説明書を読もう。「起動時にDeleteキーを押すか、F1キーを押すか、F2キーを押すかF11キーを押すかF12キーを押すと道が開けるかもね」ってビギナーズガイドにも書いています。

無事にCDから起動すると、選択肢が色々でるはず。"i686 install"的なことが書いてあるほうが32bitインストールで、"x86_64 install"的なことが書いてあるほうが64bitインストールっていう理解だけど、あってる?私はここ数年ずっとLinuxでも64bitを使っていて、特に問題に出会ったことがないから"x86_64 install"的なメニューの方を選んだよ。

まずはキーボードを設定するよ。設定しないと、キーボードがアメリカのキーボードだと設定されていて、入力したい文字が入力できなかったりするよ。

# loadkeys jp106

これで日本語キーボードになったよ。

ちなみに、インストール時に私は有線でネットにつないだよ。(でも、インストール後に無線LAN(Wi-Fiとも言うけど)の設定をするよ。)だから特に設定しなくてもネットにつながってたよ。ネットにつながってるかどうかは以下コマンドでためそう。

# ping -c 3 www.google.com

ネットにつながってるなら応答が返ってくるはずだよ。

次にパーティションの設定をするよ。私は昔ながらのfdiskコマンドを使って設定したよ。

#fdisk /dev/sda

fdiskって、滅多に使う機会がないから「なんか使う前に凄く難しいイメージだけど、いざ使うと思ったよりは簡単に使える」っていうイメージだったけど、久しぶりに使ってみて、やっぱりそのとおりだったよ。

まず、fdisk起動後は常に(mを入力してEnterを押せばhelpが見られるよ)っていうのが表示され続けてるから、とりあえずmって入力してEnterキーを押してみてね。どのキーを押せば何ができるかの一覧が出るよ。操作中も迷ったらmだ!

パーティションのデザインだけど、特にこだわりがないなら丸ごとひとつのパーティションのみでいいと思うよ。Partitioning (日本語)にも「シングル root パーティション このスキームが一番シンプルで、ほとんどの場合これで十分です。1024MB以上のメモリを使っているときは、スワップパーティションはぶっちゃけ作らなくても構わないよ」的なことが書かれてます。また、「あとからswapfileを使ってswapパーティションを作れるよ」的なことも書いてあります。私はLinuxのDebianも好きなのですがDebianインストール時も、初心者向けのパーティション分けはシングルrootパーティションです(Debianはswapパーティションは作るけど)。なので、私はシングルパーティションで作成しました。dを入力してEnterすれば、既存のパーティションを消せます(より正確には「どのパーティション消す?(default:sda2)」みたいに聞いてきますが、全部消して一つのパーティションにするので、d入力、デフォルトでいいのでそのまま、オッケー的なものを選択、っていうのを、すべての既存のパーティションが消えるまで行いました)。その後、nを入力してEnterで新しいパーティションを作成します。ここらへん記憶が怪しいですが、確か最初に「基本パーティションを作るの?それとも拡張パーティション?」って聞いてくるので、基本パーティションを選択します。拡張パーティションは、基本パーティションがないと作れない上に、今回はひとつのパーティションしか作らないので、今回は拡張パーティションの出番はないです。その後、「ディスクのどこからどこまでを使って新しいパーティションを作る?」的なことを聞いてきます。が、まず(どこから?)で、デフォルトが「使用出来る先頭」になっているので、そのままEnter、その後(どこまで?)って聞いてくるけど、デフォルトが「使用出来る最大」になっているので、そのままEnterです。これで、たったひとつのシンプルなパーティションが作成出来ます。

で、ここらへん詳しくないのですが、起動されるパーティションにはbootフラグをつけないといけないらしいです。bootフラグはaを入力してEnterでつけられます(正確には、「どのパーティションにbootフラグをつける?」って聞いてくるのですが、ひとつしかパーティションがないので、勝手にそれを選んでbootフラグをつけられた記憶があります。)。

pを入力してEnterすれば現在のパーティションデザインが確認できます。

確認して、良さそうであれば、最後に実際にパーティションをハードディスクに書き込むためにwを入力してEnterを押せば、実際にハードディスクをパーティショニングします。また、「なんかパーティションのデザインを最初からやり直したいな」ってときは、qを入力してEnterすればパーティショニングせず(つまり、現在のハードディスクに何もしないで)fdiskを終了出来ます。その後、また

#fdisk /dev/sda

みたいにすればまた最初からパーティションのデザインができるよ。

その後、ファイルシステムでフォーマットします。ファイルシステムは色々な種類がある(File Systems (日本語))らしいですが、私は無難にext4でフォーマットすることにしました。以下のようにすればいいらしいです。

# mkfs.ext4 /dev/sda1

その後、rootパーティションを/mntにマウントするらしいです。

# mount /dev/sda1 /mnt

その後、ミラーを選択します。

# nano /etc/pacman.d/mirrorlist

nanoの基本的な操作方法はビギナーズガイドに書いています。

ちなみにviも使えるそうです。私はviを使用しました。

"pacmanを使ってパッケージ(ソフトウェア)をダウンロードするときに、どのサーバーからダウンロードするのを優先させるか"を書き換えるのだと思います。優先順位は上に書かれているサーバーが最優先で、一番下が一番優先度が低いです。つまり、このままでは一番最初にアメリカのサーバーからパッケージをダウンロードしようとしてしまいます。Japanのサーバーは2つ書かれていましたので、2つとも、一番上にコピペしました。

## Score: 1.6, Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
## Score: 3.2, Japan
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch

上記を一番上に持って行きました。書き換えたら、保存。終了。ちなみに、このファイルはインストール後にも書き換えられます。

次にベースシステムをインストールします。以下のようにすれば良いらしいです。

# pacstrap -i /mnt base base-devel

次はfstabの生成です。以下のようにすれば良いらしいです。

# genfstab -U -p /mnt >> /mnt/etc/fstab

コマンド実行後、中身を確認してみます。

# nano /mnt/etc/fstab

rootパーティションは最後のフィールドが1になっていなければならないそうです。私の場合はパーティションがひとつだけなので、そのパーティションが1であればよいのです。確認して、大丈夫でした。

その後

# arch-chroot /mnt

します。

# nano /etc/locale.gen

で言語を選択します。

en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

この2つの最初のコメント(#)を消して有効化しました。その後

# locale-gen

を実行しました。その後、ビギナーズガイドにあるように

# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8

としました。次に

# loadkeys jp106
# setfont Lat2-Terminus16

とし、vconsole.confを以下の内容に編集しました。

KEYMAP=jp106
FONT=Lat2-Terminus16

次にタイムゾーンを設定し

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ハードウェアクロックを推奨されている方法で設定し

# hwclock --systohc --utc

ホストネームを設定し

# echo arch > /etc/hostname

ネットワークの設定は「以前に説明したのと方法はほとんど同じ」とか言ってるので、多分特に設定しなくても大丈夫じゃない?と思って特に設定することなく次へ行き

pacmanの設定をします。

# nano /etc/pacman.conf

"Arch Linux x86_64 をインストールしたのなら、[multilib] レポジトリも有効にするのをおすすめします(32 bit と 64 bit 両方のアプリケーションを動かせるようになります)"って書かれてるので、そこのコメントアウト(#)を外して有効化しました。その後

# pacman -Sy

を実行してパッケージリストを更新しました。その後

# passwd

を実行してrootユーザーのパスワードを設定した後にブートローダを設定しました。

# pacman -S grub
# grub-install --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

次にchroot環境を脱出し

# exit

マウントされているものをアンマウントし

# umount /mnt/

コンピュータを再起動

# reboot

すれば、arch linuxのインストールは完了です。

まだ、一般ユーザーはいないのでrootでログインしましょう。ユーザー名にrootと入力し、パスワードにはインストール時に決めたrootのパスワードを入力してね。

でも、ネットにつながりません。仕方なくNetwork Configuration (日本語)とか見ながら四苦八苦。

まず、arch linuxではネットワークのデバイス名がeth0とかwlan0とかじゃなくてenp1s0とかwlp2s0とかになっています。これがLinuxの最先端らしいです。

$ ls /sys/class/net/

上記コマンドで確認できます。で、今有線で(つまりenp1s0で)接続しているのですが、動的IPアドレスが取得できていないっぽいです。そこで以下のようにコマンドを打ちます。

# systemctl start dhcpcd@enp1s0

これでネットがつながります。次回からは起動時にDHCPを起動したいので以下のようにコマンドを打ちます。

# systemctl enable dhcpcd@enp1s0

さて、でも実は私は無線LANを使いたいのだよ、ってことで、無線LANを使うためのパッケージをインストールします。

# pacman -S iw wpa_supplicant wpa_actiond dialog

無線で接続する前に「既知のネットワークに自動で接続する」ように設定しておきます。

# systemctl enable netctl-auto@wlp2s0

その後、無線で接続します。

# wifi-menu wlp2s0

wifi-menuを使うと、周辺の使用出来る無線LANを勝手にスキャンしてくれるらしく、接続先一覧が出ます。

使用したい接続先を選択すると、パスワードを求められるので、無線LANの接続のためのパスワードを入力すれば無線LAN接続完了です。また、「既知のネットワークに自動で接続する」の設定により、次回からは勝手に接続してくれます。

ネットワークの設定が済んだら、GUI環境を入れる前に一般ユーザーを作成してください。以前にも、arch linuxをインストールしたことがあるのですが、その際、一般ユーザーを作らずに先にGUI環境を整えると、一般ユーザーからのGUI起動がうまく行かなかった記憶があります。今はどうか知りませんが。

一般ユーザー作成後、GUI環境を好きなの入れて、好きにカスタマイズすればいいと思うよ。簡単に説明すると

# pacman -S xorg-server xorg-server-utils xorg-xinit

で、GUI環境の基本パッケージを手に入れて自分のパソコンの環境に合わせたビデオドライバもインストールするよ。自分が何のドライバを入れればいいのかわからなかったら

# pacman -S xorg-drivers

でxorgのドライバを全部入れられますので、詳しくない人は上記コマンドを使用しましょう。

ビギナーズガイドの最後の方にXorgの環境をテストしよう、ってやり方が載ってるので、その通りにやってみましょう。

ここまできたら、あとはDesktop Environment (日本語)を見ながら好きなデスクトップ環境を入れたり、デスクトップ環境を入れずにウィンドウマネージャだけ入れて自分だけの環境を0から作ってニヤニヤすればいいと思う。

あと、つまづいた所ではGUI環境を入れたあと

# echo LANG=ja_JP.UTF-8 > /etc/locale.conf
# export LANG=ja_JP.UTF-8

するのを忘れないように。でないと、firefoxに日本語Language Packageを入れても日本語化されないよ。

あと、GUI環境での日本語キーボードの設定方法が、ビギナーズガイドの最後の方に載ってて、確かにうまく行くんだけど、ibus-mozcを使用した時に、ibusのせいなのかmozcのせいなのか分からないけどusキーボードと認定しやがるよ。悩んだ結果、

# nano //etc/X11/xorg.conf.d/10-evdev.conf

で、下記箇所

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

を以下のように書き換えたよ。

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option    "XkbModel" "jp106"
        Option    "XkbLayout" "jp"
EndSection

これで一応日本語キーボードと認識してくれたよ。

List of Applications (日本語)とかGeneral Recommendations (日本語)も参考にしてみてね。

それではさらば。