MacBookAir mid2011にArch Linuxをインストール:インストール編

前回で準備が完了したのでインストールに進みます。

はじめに

基本的にはArch Wikiの解説にしたがっています。日本語のWikiと英語のWikiの両方を参考にしながら行いました。

インストールガイドはタイトル通り、インストールの手順が書かれています。

Arch WikiにはMacに特化した説明のページもあります。(とってもありがたいですね。これがなかったら自力ではできなかったです。)主に、インストール前の準備、パーティション、ブートローダーについて書かれています。日本語のWikiは少し情報が古くなっているようなので、英語のWikiをメインで見ていました。

大まか流れとして、以下のような感じです。

  1. インストール作業(インストールガイドを参考)
  2. ブートローダーのインストールと設定(Macのページを参考)

ブートローダーのインストールと設定はWiki通りにやっても上手くいかず、試行錯誤をしました。そういった躓いた点にも触れていきます。

インストール作業

Arch Linuxのインストールメディアを挿し、Optionキーを押しながらMacBookAirの電源を入れます。

オレンジ色のディスクで「EFI Boot」と出るので、これを選択してEnterを押します。

Arch Linuxの起動メニューが表示されるので、「Arch Linux install medium」を選択してEnterを押します。

…しばらくするとArch Linuxが起動します。めでたしめでたし。

まずはキーボードレイアウトを変更します。起動してすぐはUSキーボードになっているので、日本語のキーボードレイアウトに変更しておくと記号などの入力時に混乱しません。


loadkeys jp106

MacBookAir mid 2011はUEFIなのでUEFIで起動していることを確認しておきます。


ls /sys/firmware/efi/efivars

コマンドで、ディレクトリ内部が表示されればUEFIで起動しています。

ネットワークへ接続する

インターネットへ接続します。
使い方を知っていたのでここではiwdを使いました。

インターネットへの接続はiwdを使いましたが、デスクトップ環境を整える過程で、NetworkManagerに切り替えました。詳細はセットアップ編で書きます。ここではひとまずネットにつながれば良いのでなんでも良いですが、自分の使いたいデスクトップ環境などと相性の良いツールにしておくのもいいと思います。


#対話型プロンプトを起動する
iwctl

#ワイヤレスデバイス名を確認する
device list
(デバイス名はwlan0であることがわかった)

#ワイヤレスネットワークをスキャンする
station wlan0 scan

#利用可能なネットワークを表示する
station wlan0 get-networks
 (ワイヤレスネットワークの一覧が表示される)

#ワイヤレスネットワークに接続する
# ※SSIDはtabキーで補完ができるので便利
station wlan0 connect [SSID]
 (パスフレーズを入力する)

#接続状況を確認する
station wlan0 show
 (CONNECTEDと表示されればOK)

#対話型プロンプトを終了する
quit

ipコマンドやpingコマンドで接続状況を確認する。


ip link
 (wlan0のstateがUPとなっていればOK)

ping archlinux.org

無事にネットワークに接続することができました。

Ubuntuをインストールした時はMacBookAirのワイヤレスデバイスの認識に手間取りました。どうなるか心配していましたがあっけなく接続できました。

パーテーションの準備

ディスク名を念の為、確認しておきます。


fdisk -l

/dev/sda4:Arch用のEFI
/dev/sda5:Archのインストール先(ルートファイルシステム)

EFIをvfatでフォーマットします。

Arch WikiのMacのページにはHFS+でフォーマットするとAppleのブートローダーに認識されると書かれてますが、ここではvfatでフォーマットします。理由は後述します。ここはMacBookの年式によって変わってきそうなので注意してください。


mkfs.vfat -F 32 /dev/sda4

ファイルシステムをマウントします。


mount /dev/sda5 /mnt
mount --mkdir /dev/sda4 /mnt/boot

念の為、ファイルシステムのフォーマットが正しいかをmountコマンドで確認しておきます。


mount
  /dev/sda5 on /mnt type ext4
  /dev/sda4 on /mnt/boot type vfat

ルートファイルシステム(sda5)がext4、EFI(sda4)がvfatであればOKです。次はインストール作業に進みます。

インストール作業(chroot環境)

Linuxをインストールします。


pacstrap -K /mnt base linux linux-firmware

fstabを作成します。


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

chroot環境に入ります。


arch-chroot /mnt

タイムゾーンを設定します。


ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc

エディタをインストールします。いつも使うviをインストールしました。お好みで何でも良いです。(viも入っていないくらい最小限なのは驚きました)


pacman -S vi

ローカリゼーションの設定します。「en_US.UTF-8」がUS英語、「ja_JP.UTF-8」が日本語です。


vi /etc/locale.gen
 #以下の2つをアンコメント(先頭の"#"を消す)
 en_US.UTF-8 UTF-8
 ja_JP.UTF-8 UTF-8

locale-gen

システムの言語は英語にしておきます。(個人的な好みです)


vi /etc/locale.conf
 #ファイルに以下を記入して保存する
LANG=en_US.UTF-8

キーマップの設定を固定化します。本当はMacBookAir用のキーマップで設定できると良いのですが、どのキーマップにするとよいかわからないのでひとまずはjp106にしておきます。


vi /etc/vconsole.conf
 #ファイルに以下を記入して保存する
KEYMAP=jp106

ネットワークの設定を行います。iwdをインストールして有効化しておきます。初回の起動時にワイヤレスネットワークの設定ができるようになります。


#iwdのインストール
pacman -S iwd
#iwdの有効化
systemctl enable iwd

#ホスト名を設定
echo "MBA-Arch" > /etc/hostname

rootパスワードの設定をします。


passwd
 (rootパスワードの入力)

ユーザーを作成し、パスワードを設定します。
インストールが終了してからでも良いのですが、先にやっておきます。


#ユーザーを作成する
useradd -m -g wheel -s /bin/bash kuni
#パスワードを設定する
passwd kuni

ついでにsudoもインストールしておきます。


pacman -S sudo

インストール作業はおおかた終わりです。ブートローダーの設定を行います。

ブートローダーの設定

ここはうまく行かずに試行錯誤しました。解決するのに数日かかったのでちゃんと記録しておこうと思います。

Appleのブートローダーに認識してもらえない

Arch WikiのMacのページにはArch用のEFIをAppleのブートローダーから自動的に認識させる方法について書かれています。(Optionキーを押しながら起動することで、Ubuntu、Mac、Archと選択ができるようになる)

  1. Arch用のEFIをHFS+でフォーマット
  2. EFIにブートローダーをインストールし、配置などを変更する
  3. その他ファイルを手動で作成する

おおまかには上記の条件が必要と書かれていますが、MacBookAir mid2011ではHFS+でフォーマットしたArchの起動ディスクは認識されず、起動できませんでした。

結論から言うと、Arch用のEFIをvfatでフォーマットしたら無事に認識しました。

私のMacBookAir mid2011では、EFI(もとからあったEFI:sda1)のフォーマットがvfatになっていました。おそらくMacBookAir mid2011ではAppleのブートローダーはHFS+ではなくvfatのEFIを自動で認識しているようです。2011年以降のどこかのモデルからHFS+のEFIを自動で認識するようになっているみたいです。(ネットでMacBookにArchをインストールしたという手順をみても、比較的新しいモデルが散見されますが、2011年くらい古いものはあまり見当たりませんでした。)

ブートローダーのインストール手順

引き続き、chrootの環境下で作業します。


grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch

bootloader-idは何でもOKです。無事に終われば、「Installation finished. No error reported.」と出ます。

grubの起動メニューを生成します。


grub-mkconfig -o /boot/grub/grub.cfg

AppleのブートローダーがEFIを認識できるように設定します。

efiファイルの名前とディレクトリを変更します。


mkdir -p /boot/System/Library/CoreServices
cp /boot/EFI/arch/grubx64.efi /boot/System/Library/CoreServices/boot.efi

/boot直下に「mach_kernel」というファイルを作成します。


touch /boot/mach_kernel

/boot/System/Library/CoreServicesに「SystemVersion.plist」というファイルを作成し、以下の内容を書き込みます。


touch /boot/System/Library/CoreServices/SystemVersion.plist
vi /boot/System/Library/CoreServices/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>

ブートローダーの設定は以上です。

インストール作業後

chroot環境から抜けます。


exit

これで作業は完了です。一旦、シャットダウンしてインストールメディアを抜きます。


shatdown -h now

Optionキーを押しながら電源を入れます。

「EFI Boot」が2つになっていればOKです。どちらかがArch Linuxです。

無事にArch Linuxが起動することが確認できればインストール作業は完了です。(CLIで起動します。)お疲れ様でした。

次はディスクトップ環境などのセットアップを行います。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です