MacBook AirのVirtualBoxにArch Linux 2012.12.01をインストール
インストールしてみたはいいけど、遅い…。
VMの設定の何かがマズいのかと思ったのですが、ググると他にもチラホラ遅いという話が上がっているようなので、VirtualBoxの問題なんでしょうね。
VMWare Fusionへの乗り換えを検討しています。
なお、MacはVMWare Playerが使えないという悲劇…。
ちなみにどの位遅いのかというと、
- CPU: 1core割当, 使用率制限100%
- MEM: 2GB
で、phantom.jsが10時間かかってもビルドし終わらない、emacs (GUI) の起動に数分かかる、guard立ち上げてるとemacsのカーソル移動が数秒遅れて反応する、という程度です (core数増やせばいいの?いや、それにしたって…) 。
では、インストール手順をば。
VirtualBoxのインストール
本家サイトから、Mac用のdmgを落としてきてポチっとします。
https://www.virtualbox.org/wiki/Downloads
仮想イメージの作成
VIrtualBoxを起動し、「新規」ボタンからVDI形式で作ります。容量はとりあえず60GBにしてみました。
VMDXにしようかとも思いましたが、後でVDIから変換できるようですし、VirtualBox上で動かすのであればVDIの方が変なオーバーヘッドが出なそう (未検証) だなと思ってVDIを選びました。
ま、VMWare Fusionに乗り換えようとしてるんですけどね。
Arch LinuxのISO入手
Arch LinuxのサイトからISOを落としてきます。
https://www.archlinux.org/download/
ファイルは archlinux-2012.12.01-dual.iso です。
bit torrentでもHTTPでもお好きな手段で。
その後、VirualBoxのUIから、前項で作った仮想イメージのCD/DVDとしてマウントさせます。
Arch Linuxのインストール
ここからが本題です。
いつの間にやら、Arch Linuxはインストーラらしいインストーラがいなくなっていました。
時代と逆行していてかわいいですね(ぉ
まずはVMを起動します。
Arch Linuxのブートローダが現れます。
パーティションを切る
これ、自分でやらないといけません。/dev/sdaがディスクにあたるので、これをfdiskでパーテイショニングします。
# fdisk /dev/sda
で、
- sda1 -> 100MB, /boot 用, bootable
- sda2 -> 1GB, swap 用
- sda3 -> 残り, / 用
としました。
どうせVMだし、と思って /home やら /var は切ってません。
なお、sda1にbootable flagを立てるのを忘れると起動しません。
fdiskの使い方はググればすぐ出ますし、ヘルプもあるのでそう迷わないはず。
パーティションのフォーマット
これも自分でやらないと行けません。
# mkfs.ext2 /dev/sda1 # mkfs.ext4 /dev/sda3 # mkdswap /dev/sda2
/boot は 無難に ext2 です。
フォーマットしたらマウントします。
# mount /dev/sda3 /mnt # mkdir /mnt/boot # mount /dev/sda1 /mnt/boot
で、このマウントしたディレクトリに色々とブツをインストールするわけです。
中の人をインストール
まずはレポジトリのミラーを設定します。
# vi /etc/pacman.d/mirrorlist
で、JapanのレポジトリのScoreを 0.1 にするとよいようです (<-Scoreが何者なのかまだ調べてない) 。
ではインストールします。
# pacstrap /mnt base base-devel
続いて、grubインストールします。
# arch-chroot /mnt pacman -S grub-bios
fstabを生成します。これがないと使えませんね。
# genfstab -p /mnt >> /mnt/etc/fstab
各種設定
さて、/mnt に必要なものをインストールしたわけなので
# arch-chroot /mnt
として /mnt を見せかけの / として扱います。
これによって、普通のLinuxっぽいファイルシステム構成として作業が進められます。
ホスト名の設定
# echo 'ホスト名前' >> /etc/hostname
タイムゾーンの設定
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ロケールの設定
# echo 'LANG="ja_JP.UTF-8' >> /etc/locale.conf
続いて
# vi /etc/locale.gen
で「ja_JP.UTF-8 UTF-8」の行をアンコメントして
# locale-gen
コンソールキーマップとフォントの設定
とりあえず困ってないから初期状態のままで
直したくなったら
https://wiki.archlinux.org/index.php/KEYMAP_(%E6%97%A5%E6%9C%AC%E8%AA%9E)
イニシャルRAMディスク
いらないような気がします。試行錯誤の末、やらないようにした記憶がありますが、一応。。
# mkinitcpio -p linux
# grub-install --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda
ちなみにここで target を x86_64-pc にしたら
source_dir doesn't exist. Please specify --target or --directory
と怒られました。なぜ…。
この後
# grub-mkconfig -o /boot/grub/grub.cfg
これをやらないとインストール後の起動で以下のエラーが出ます。
No such Device: ad4103fa-d940-47ca-8506-301d8071d467. Loading Linux core repo kernel ... error: no such partition. Loading initial ramdisk ... error: you need to load the kernel first. Press any key to continue..._
rootのパスワード
# passwd
設定後
# exit
で chroot を抜けて
# umount /mnt/boot
で /mnt 配下をアンマウントします (home や varがあればそれも)。そしてVMをシャットダウンします。
# shutdown -h now
VirtualBoxのUIからCDイメージをアンマウントして (しないとまたCDブートします) 再起動します。
以上でOSのインストールは完了です。
OSインストール後の設定
ネットワークの設定
# ip link set eth0 up # systemctl start dhcpcd@eth0
どうも、起動の度に systemctrl しないとダメみたいです。起動時に自動でやって欲しいですが、まだその辺は調べてません。
あ、ちなみに ifconfig は初期状態では入っていないのでご注意を。
参考
https://wiki.archlinux.org/index.php/Beginners%27_Guide/Extra_(%E6%97%A5%E6%9C%AC%E8%AA%9E)
パッケージを最新に
# pacman -Syu
一般ユーザの作成
# useradd -m {username}
これでまずユーザを作った後
# pacman -S sudo # sudoedit /etc/sudoers
として
{username} ALL=(ALL) ALL
を追記して、作ったユーザで sudo すれば色々できる便利設定をしておきます。
パスワードを
# passwd {username}
で設定します。
X Window System
# pacman -S xorg-server xorg-xinit xorg-server-utils
VitualBoxのゲストOSだったらビデオドライバのインストールは不要、とのことです。
続いて、VirtualBoxのゲストアドイン設定をします https://wiki.archlinux.org/index.php/VirtualBox#Arch_Linux_guests 。
# pacman -S virtualbox-guest-utils # modprobe -a vboxguest vboxsf vboxvideo
# vi /etc/modules-load.d/virtualbox.conf
virtualbox.confの内容は
vboxguest vboxsf vboxvideo
となります。サービスの起動は
# VBoxClient-all &
とやるので、後ほど .xinitrc に記述しておきます。
Window Managerを入れます。
# pacman -S openbox
ターミナルエミュレータはひとまず
# pacman -S xterm
一般ユーザにします。
# su {username}
.xinitrc を記述します。
$ cd $ vi .xinitrc
内容は
VBoxClient-all & xterm & exec openbox
Xを起動します。
$ startx
いつものパッケージをインストール
よく使うものを入れます。
$ sudo pacman -S zsh tmux openssh git emacs
自分の場合、GitHub にドットファイルを置いているので
$ git clone {れぽじとり} dotfiles $ ln -s dotfiles/.zshrc . $ ln -s dotfiles/.tmux.conf . $ ln -s dotfiles/.emacs .
という感じにします。
ログインシェルをzshにします。
$ sudo vi /etc/passwd
自分の{username}の行で /bin/bash -> /bin/zsh とします。
または chsh コマンドを使います (こっちのが楽か…) 。
再起動しないと反映されない??
yaourt
AUR から便利にパッケージインストールできるようにします。
先ずは yaourt と依存関係にある package-query を入れるのですがそれがさらに依存関係にある yajl をインストールします。
$ sudo pacman -S yajl
package-query を入れます。AUR から落としてきてローカルでパッケージを作ってインストールします。
$ curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz $ tar zxvf package-query.tar.gz $ cd package-query $ makepkg $ sudo pacman -U package-query-*.pkg.tar.xz
yaourt 本体を入れます。要領は package-query と同じです。
$ curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz $ tar zxvf yaourt.tar.gz $ cd yaourt $ makepkg $ sudo pacman -U yaourt-*pkg.tar.gz
フォント
とりあえずRictyを入れておけば何とかなるでしょう。
$ yaourt -S ttf-ricty
キーコード
MacBook Air(日本語版)だと、英語配列にしたときにバッククオート/ティルダに相当するキーがないので
$ echo "keycode 132 = grave asciitilde grave asciitilde" > ~/.modmap
として
~/.xinitrc の openbox 実行前に
xmodmap ~/.xmodmap
を記述します。
これによって、バックスラッシュキー(deleteの横)がバッククオート/ティルダになります。ちょっと変則的ですけどね。
まあ、素直に日本語配列で使えばいいのかもしれませんが…。
日本語入力
mozcでもanthyでも好きなのを。とりあえず割愛します。