[訳注] この文書は、Pankaj Kumar 氏による記事 Arch Linux Installation with OS X on Macbook Air (Dual Boot) の翻訳です。
Mac パーティションに損害を与えるかも知れない作業が含まれています。全て自己責任で行ってください。
2日かかって、やっと Arch Linux と OS X Mountain Lion を両方起動できるようになった。幸せのひととき。君が Windows ユーザーなら、この記事の残りの文章は何の役にも立たない(し退屈だ)と思うから、別の記事でも読むことをおすすめするよ。
...ふーっ。それじゃあ Windows ファンが居なくなったところでレベルを上げて行こうか。君は、仮想環境とかでそこそこ Linux を使ってるユーザー、もしくは [ご自由に]untu のユーザーとかかな? もしそうなら「こいつはなぜこんな記事を書いてるんだ?」って今ごろ不思議に思ってるに違いない。なぜなら90年代とちがって、最近の Linux インストールはすごく簡単になったからからね。
ちょっとその話をすると、僕は数年前から Ubuntu (とその似たやつ)のユーザーだった。そのどれもが、(主に Windows からの)新参ユーザーを惹き付けるためにどんどん・どんどん余計なモノを付け足した。その結果ひどく醜い OS が出来上がってしまったんだ。例えば unity launcher (みたいな何かカッコイイ名前のあれ)を開くのに数秒もかかってしまうような、ね。
この なぜ Linux (というか Ubuntu) はクソか って動画を暇つぶしにどうぞ。
*untu につまづいたもう一つの理由は、僕の大学に Ubuntu リポジトリのローカルサーバがあって、何でもあっと言う間にインストールできてしまったこと。なんとなく物足りなくってイライラ(*untus ユーザーなら「満ち足りて行った」って読んでね)して行くにつれ、ついにあの、最小パッケージかつ望みさえすれば何でも追加できる、剥き出しの GNU/Linux OS、 Arch Linux への移行を決めたんだ。真に DIY な OS。Arch Linux、イェー!
でも、大変なこともあった。ひとたび移行を決めたなら、パッケージリポジトリにインターネットでアクセスしなくちゃいけなかった(僕の大学では泣けるスピード)(こないだ友だちがついにミラーを置いた!)。それでグズグズしてたんだけど、Microsoft India へのインターンのときに(今もデスクでこれを書いてるんだけど)ぶっとい回線が手に入って、やっと移行するこができたんだ。
*untu と違って、MacBook Air への Arch Linux インストール(今回はデュアルブート。ディスク全体へのインストールの話じゃない)はただ “次へ” をクリック、って訳にはいかない。全部自分で設定して行かなくちゃいけない。ハードディスクのパーティショニング、ネットワーク設定、ブートローダー。全部やるのに丸2日かかったよ。それで未来の人のために、ここに手順を書き留めておこうと思った。
始める前に言っておきたいんだけど、Arch Linux の wiki はその界隈では最高のドキュメントを提供していることを指摘しておく。Gentoo のがベスト、って言う人がいるかも知れないけど僕は同意できないね。だからインストールするに当たって、ぜひ目を通して、自分の物にしてくれ。あれはもうほんとバイブルだから。
起動用のUSBを用意する
- 最新の Arch Linux ISO をダウンロードする
- OS X で、
dd
コマンドで起動可能USBを作る
sudo dd if=<path to .iso file> of=/dev/<yourdevice> bs=1m
(デバイスIDは diskutil
でわかる。OS X ターミナルで diskutil list
と打ち込んで一覧を表示。)
[訳注]
dd: /dev/<yourdevice>: Resource busy
などと表示されうまく行かない場合は、diskutil umount /Volumes/<usb_name>
でアンマウントしてからもう一度dd
コマンドを試してみてください。参考:http://www.lifewithunix.jp/notes/2013/06/13/how-to-use-dd-command-on-snow-leopard/
USB を挿し、”alt/option” キーを押したまま起動するのを待つ。USB からのブートを選択。
[訳注] 日本語キーボードの方は
loadkeys jp106
と実行してください。
パーティショニング
cgdisk
を使う。システムが起動したら cgdisk
に入る。
cgdisk /dev/sda
既存のパーティションが一覧されると思う。Mac のパーティションをダメにしないこと(普通は 3 番目のはず)。フリー領域を使って、4つのパーティションを作成する(もっと作れるけど、僕はルートと home を同じパーティションにして、あと swap 領域を作った)。
矢印キーで free space を選択して、新しいパーティションを作って行く。Mac パーティションのあとの、最低でも128MB領域をそのままにしておく。
以下の4つを作る。
Size Partition Type Partition Name
128 MB Apple HFS+ Boot Loader
256 MB Linux filesystem Boot
X MB Linux Swap Swap space
(残り全部) Linux filesystem Root
スワップ領域は物理メモリ(RAM)の2倍にしておこう。
ネットワークの準備
これからたくさんのパッケージを落とすから、ネットワークに繋ぐ必要がある。アダプタ経由で LAN ケーブルを接続する。あるいはスマートフォン経由で USB テザリングしてもいい。
次のコマンドで、WiFi ネットワークに接続する。
wifi-menu
[訳注] 手元では WiFi 接続できませんでした。イーサネット接続の方が問題が起きにくいと思います。
接続を確認するには:
ping google.com
ディスクフォーマットとマウントパーティション
[訳注]
/dev/sda<番号>
は連番で振られ、実際とは異なる番号になる可能性があります。cgdisk /dev/sda
のPart. #
で番号をもう一度確認しておくことをおすすめします。
mkfs.ext4 /dev/sda5
mkswap /dev/sda6
mkfs.ext4 /dev/sda7
mount /dev/sda7 /mnt
mkdir /mnt/boot && mount /dev/sda5 /mnt/boot
swapon /dev/sda6
インストール
pacstrap /mnt base base-devel
genfstab -p /mnt >> /mnt/etc/fstab
重要、SSD ハードディスクの人は fstab ファイルのパラメータを変える必要がある。fstab ファイルを開いて、
nano /mnt/etc/fstab
下のように内容を変更する。
/dev/sda5 /boot ext2 defaults,relatime,stripe=4 0 2
/dev/sda7 / ext4 defaults,noatime,discard,data=writeback 0 1
システムの設定
arch-chroot /mnt /bin/bash
echo archer > /etc/hostname # hostname を自由に決めてください
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc --utc
useradd -m -g users -G wheel -s /bin/bash myusername && passwd myusername # ユーザー名・パスワードを自由に設定してください
sudo pacman -S sudo
sudo 権限を与える。
nano /etc/sudoers # wheel の行のコメントアウトを外す
ロケールを設定する。次のコマンドで設定ファイルを開いて、
sudo nano /etc/locale.gen
..必要なロケールのコメントアウトを外す。僕の場合はこれ:
en_US.UTF-8 UTF-8
en_CA.UTF-8 UTF-8
ロケールを生成する。
locale-gen
echo LANG=en_US.UTF8 > /etc/locale.conf
export LANG=en_US.UTF-8
/etc/mkinitcpio.conf
ファイルの HOOKS
セクションの autodetect
のあとに keyboard
を挿入する。その後次のコマンドを実行。
mkinitcpio -p linux
[訳注] インストール後にも日本語キーボードを使うためには
echo ‘KEYMAP=jp106’ >> /etc/vconsole.conf
と設定しておきます。
いよいよブートローダー
いちばんハマりやすいところ。一気にやってしまおう。
やりたいのは、OS X ネイティブの EFI ブートローダーで Arch Linux を起動すること。grub-efi-x86_64 をインストールしよう。
pacman -S grub-efi-x86_64
/etc/default/grub
を以下のように編集する。
GRUB_CMDLINE_LINUX_DEFAULT="quiet rootflags=data=writeback"
そしたら GRUB で boot.efi
を生成する。
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkstandalone -o boot.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi --compress=xz boot/grub/grub.cfg
さて、今いるディレクトリに boot.efi
が作られたはずだ。然るべき場所にコピーして使おう。
でもどこに?
新しい USB をマウントして、そこにコピーしよう。
[訳注] USBを差し込み、
dmesg | tail
でデバイス名を調べられます。私の場合SDカードでデバイス名は/dev/sdc1
でした。
mkdir /mnt/usbdisk && mount /dev/sdb /mnt/usbdisk
cp boot.efi /mnt/usbdisk/
もしくは他のマシンに SCP してもいい(SSH するには openssh
パッケージが必要)。
あと、もし有線接続せず WiFi だけでやって行きたいなら、再起動する前に次のパッケージもインストールする必要がある。
pacman install iw wireless_tools wpa_supplicant dialog
あと networkmanager
もインストールして有効化しておこう。詳しくは Arch wiki を読んでみて。
再起動(Mac の世界に戻る)
-
exit
コマンドで chroot を抜ける -
reboot
でシステムを再起動 -
ディスクユーティリティー
アプリを開く - boot 用に作ったパーティション
/dev/sda4
を、Mac OS 拡張 (ジャーナリング)
でフォーマットする - 下記の階層のディレクトリを
/dev/sda4
に作っていく
|___mach_kernel
|___System
|
|___Library
|
|___CoreServices
|
|___SystemVersion.plist
|___boot.efi
上のことをやるコマンドがこちら。
cd /Volumes/disk0s4
mkdir System mach_kernel
cd System
mkdir Library
cd Library
mkdir CoreServices
cd CoreServices
touch SystemVersion.plist
CoreServices
に先ほど生成した boot.efi
をコピーする。加えて SystemVersion.plist
を下の内容を書き込む。
<xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string></string>
<key>ProductName</key>
<string>Linux</string>
<key>ProductVersion</key>
<string>Arch Linux</string>
</dict>
</plist>
そうしたら bless
コマンドでパーティションを起動可能にする。
sudo bless --device /dev/disk0s4 --setBoot
これで準備完了、alt/option
キーを押しっぱなしで再起動し、Arch Linux を起動するために disk0s4
を選べばOK。
インストール後にやること
[訳注] Network の節を先にします。
Network
-
iwconfig
でイーサネットデバイス名を確認しsystemctl start dhcpcd@eth0
を実行する (デバイス名を自分のものに置き換えて) - wifi-menu で WiFiネットワークにつなげます
[訳注]
systemctl enable dhcpcd@eth0
でdhcpcd
を自動起動させます。
[訳注] 私の場合、WiFi 接続には更に設定が必要でした。以前書いた記事が参考になるかも知れません。 http://pig.hatenadiary.com/entry/2014/02/09/223748
Xorg
Xorg server をインストール
pacman -S xorg xf86-input-synaptics acpid
systemctl enable acpid
Sound
-
pacman -S alsa-utils
で ALSA をインストールする -
amixer sset Master unmute
でマスター音源の音量をあげる
Screen Backlight
Works OTB
Keyboard Backlight
/sys/devices/platform/applesmc.768/leds/smc::kbd_backlight/brightness
に出力すると制御できる。
echo 40 > /sys/devices/platform/applesmc.768/leds/smc\:\:kbd_backlight/brightness
GUI
本当にたくさんの選択肢がある。そもそもGUIなんていらないって人もいれば、軽量さを追求して awesome や enlightenment を選ぶ人もいる。でも今現在僕は digiKam のあるプロジェクト のために GSoC 向けの学生のメンターをやっている。そのためにここでは KDE を入れることにするよ。
最小で動かすなら kdebase
。 KDE の基本機能を全て入れるなら kde
をインストールする。
pacman -S kdebase
KDE を立ち上げるには:
- xinitrc を使う
- [訳注]
xorg-xinit
をインストール -
exec startkde
を ~/.xinitrc に追記する - ログイン後 startx コマンドをうち KDE GUI を起動
- [訳注]
- KDM を使う
- kdm をインストール ([訳注] パッケージ
archlinux-themes-kdm
) -
systemctl start kdm.service
で有効化する。次回の起動時にGUIでパスワードを聞かれるようになる。
- kdm をインストール ([訳注] パッケージ
rEFInd
もし今までやってた「起動時に alt/option キーを押し続けて、起動 OS を選択して」って作業にイラッとしてたら、rEFInd をインストールしよう。システム起動時に良い感じのGUIでどのOSを起動するか選ぶことができるようになる。
[訳注] Mac OS がアップデートされるたびに、rEFInd の設定が無効になってしまいます。
[訳注] 起動時にデフォルトでArchLinuxを選択するには、alt/option キーを押しながら起動しブートパーティションを選択する画面を表示して、Ctrlを押しながらディスクアイコンの下に表示される矢印をクリックします。参考:http://apple.stackexchange.com/a/73742/192868
アプリケーションのインストールとか
パッケージのインストールは pacman
で。
pacman -S <package name>
このへんに行くと気に入りそうなアプリケーションの一覧があるから見てみて。
[訳注] Arch Linux には pacman で入れられる公式リポジトリの他に、AUR というコミュニティベースの強力なリポジトリがあります。こちらからパッケージマージャーを選んで利用してみてください。(yaourtは開発が終了してしまいました。)
えー、まあそんなところです。