Help us understand the problem. What is going on with this article?

MacBook AirにOSXとデュアルブートでArch Linuxを入れる

More than 3 years have passed since last update.

MacBook - ArchWikiArch 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がたちあがるようになる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした