MacBook - ArchWikiとArch Linux Installation with OS X on Macbook Air (Dual Boot)を参考にしている。
自作PCにArch Linuxをインストールして環境構築すると重複する部分が多い。
Macでの準備
OSXのクリーンインストール
OSXとArchを共存させる場合はOSXをクリーンインストールしておくのが無難らしい。
OSXのインストールディスクを作成してOptを押しながら起動し、ディスクユーティリティでディスク全体をフォーマットした後OSXをインストールする。
その後、AppStoreでソフトウェア・アップデートをやって再起動する。
ついでに、システム環境設定 > サウンド から内蔵スピーカーの音量を0にしておくと起動音を無効にできる。
EFI bootable USBメモリを作る
https://www.archlinux.org/download/ からisoを落としておく。
hdiutil convert -format UDRW -o arch archlinux-2016.04.01-dual.iso
diskutil list # 焼きたいUSBメモリのパスを確認 (/dev/disk2 だったとする)
df # /dev/disk2 の Mounted on を確認 (/Volumes/Arch だったとする)
diskutil umount /Volumes/Arch
sudo dd if=arch.dmg of=/dev/disk2 bs=1m
パーティショニング
ディスクユーリティでOSX用のパーティションを小さくする
OSX用のパーティションを適当に小さくしておく。余った分は次のステップで削除する。
インストールメディア(USBメモリ)からパーティションを切る
$ cgdisk /dev/sda
でパーティションを切る。Mac用の3つのパーティションの後には128Mの空きを作ることに注意し、大体以下のような構成にすれば良い。
partition mountpoint size type label
/dev/sda1 /boot/efi 200MiB vfat EFI
/dev/sda2 - ? hfs+ Mac OS X
/dev/sda3 - ? hfs+ Recovery
/dev/sda4 - 100MiB hfs+ Boot Arch from the Apple boot loader
/dev/sda5 /boot 100MiB ext4 boot
/dev/sda6 / ? ext4 root
フォーマット
/dev/sda4 は AppleのブートローダーからArchを起動するためのもの。便宜上、OSXの方を起動してディスクユーティリティで「Mac OS 拡張(ジャーナリング)」でフォーマットする。これはHFS+のこと。
インストールメディアに戻ってきて以下を実行する。
$ mkfs.ext4 /dev/sda5
$ mkfs.ext4 /dev/sda6
インストール
インターネットに接続する
$ wifi-menu
$ ping google.com
パーティションのマウント
$ mount /dev/sda6 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda5 /mnt/boot
パッケージのインストール
vim /etc/pacman.d/mirrorlist # 適当にミラーを選ぶ
pacstrap /mnt base
genfstab -p /mnt >> /mnt/etc/fstab
SSDを使っている場合
fstabのパラメータを変える必要がある。vim /mnt/etc/fstab
して、以下のように内容を変更する。
/dev/sda5 /boot ext4 defaults,relatime,stripe=4 0 2
/dev/sda6 / ext4 defaults,noatime,discard,data=writeback 0 1
システムの設定
arch-chroot /mnt /bin/bash
echo archlinux > /etc/hostname # 適当に決める
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc --utc
sudo vi /etc/locale.gen # 必要なロケールのコメントアウトを外す
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
mkinitcpio -p linux
passwd # rootパスワードの設定
ブートローダー
GRUBのインストール
pacman -S grub-efi-x86_64
/etc/default/grub
を以下のように修正する。
GRUB_CMDLINE_LINUX_DEFAULT="quiet rootflags=data=writeback"
その後、以下のようにしてカレントディレクトリに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メモリとかにいれておく。
$ dmesg | tail # USBメモリのデバイス名を調べる。仮にsdd1とする
$ mkdir /mnt/usbdisk && mount /dev/sdd1 /mnt/usbdisk
$ cp boot.efi /mnt/usbdisk/
$ umount /mnt/usbdisk
今後Wi-Fiが使えるようにするため、以下のものをいれておく。
$ pacman -S iw wireless_tools wpa_supplicant dialog networkmanager
再起動してMacで設定をする
$ exit
$ reboot
HFS+フォーマットはすんでいることとして、以下の作業をMacで行なう。
cd "/Volumes/Boot Arch from the Apple boot loader"
mkdir System mach_kernel
cd System
mkdir Library
cd Library
mkdir CoreServices
cd CoreServices
vim SystemVersion.plist
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>
あと、CoreServicesに先ほどのboot.efiをコピーする。
その後以下のようにblessでパーティションを起動可能にする。
$ sudo bless --device /dev/disk0s4 --setBoot
ただしEl Capitanだと失敗するので、OS X 10.11 El Capitanにアップグレードするとblessに失敗するに書いてあるとおりcsrutil disable
でSIPを切ってからblessする。
すると、Mac起動時にArch Linuxがたちあがるようになる。