MacBook Air(Mid 2011)にArchLinuxをインストールする

Posted by onodai.


ArchLinuxインストールチャレンジ

前提

  • Mac OS XとArchLinuxのデュアルブート
  • EFIモードで使用
  • GUI環境はXfce4を使う
  • 基本Mac OS Xは使わないので、ArchLinuxが起動できればいい
  • 使用イメージはarchlinux-2016.07.01-dual.iso

Mac OS X側で下準備

Mac OS Xのクリーンインストール

した方がいいらしいので、適当にクリーンインストールを実施。

Mac OS Xのアップデート

頑張って最新の状態にする。

パーティショニング

ディスクユーティリティでArchLinux用に割り当てる。

ArchLinuxのインストールメディアからブート

必ずEFIモードでブートすること。

ArchLinuxのインストール

いよいよインストールチャレンジの幕開け

キーボードレイアウト設定

今回インストールするMBAはJIS配列なのでキーボードレイアウトを変更する。

loadkeys jp106  

パーティション作成

cgdisk /dev/sda  

でパーティショニングをしていく。
今回はメモリが充分に搭載されているのでSwapは作らない。
以下の3つのパーティションを作る。

Size        Partition Type  Label
100MiB      Apple HFS+  Boot Loader  
100MiB      ext4            Boot
残り全部    ext4            Root  

ディスクのフォーマット

LabelがBoot Loaderとなっているものは、あとでMac OS X側でMac OS拡張ジャーナリングでフォーマットする。
まずはArchLinux用のパーティションをフォーマットする。

mkfs.ext4 /dev/sda5  
mkfs.ext4 /dev/sad6  

インターネットに接続

アダプタ経由もしくは無線LANでインターネットに接続する。
今回は無線LANでインターネットに接続した。

wifi-menu

接続先のAPを選択し、パスフレーズを入力する。
接続できたら、インターネットに出られることを確認する。

ping google.com

マウント

フォーマットしたパーティションをマウントする。
このとき、マウントポイントを間違えないよう、予めcgdisk /dev/sdaで番号を確認しておく。

mount /dev/sda6 /mnt  
mkdir /mnt/boot  
mount /dev/sda5 /mnt/boot  

インストール

いよいよインストール。

pacstrap /mnt base base-devel
genfstab -p /mnt >> /mnt/etc/fstab  

SSDを使用しているのでfstabのパラメータを変更する。

vi /mnt/etc/fstab  

以下のように変更。
[/mnt/etc/fstab]

/dev/sda6               /           ext4        defaults,noatime,discard,data=writeback 0 1  
/dev/sda5               /boot       ext4        defaults,relatime,stripe=4  0 2

システムの設定

ホスト名とかロケールとか必要な設定をしていく。

arch-chroot /mnt /bin/bash  
echo archlinux > /etc/hostname  
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime  
hwclock --systohc --utc  

ロケールの設定は少し注意が必要。 このタイミングで日本語にしてしまうと、日本語フォントがないために、コンソール上での表示がすべて豆腐になってしまう。

vi /etc/locale.gen  

必要なロケールのコメントアウトを外す。

en_US.UTF-8  
ja_JP.UTF-8  

ロケールを生成し、必ずen_US.UTF-8に設定する。

locale-gen
echo LANG=en_US.UTF-8  
export LANG=en_US.UTF-8  

キーボードレイアウトも忘れずに設定する。

echo 'KEYMAP=jp106' >> /etc/vconsole.conf  

イメージの作成をする。

mkinitcpio -p linux  

rootユーザにパスワードを設定する。

passwd  

GRUBのインストール

pacman -S grub-efi-x86_64  

grubの設定ファイルを変更する。

vi /etc/default/grub  

以下のように変更。
[/etc/default/grub]

GRUB_CMDLINE_LINUX_DEFAULT="quiet rootflag=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 | less  
mkdir  /mnt/usbdisk && mount /dev/sdc1 /mnt/usbdisk  
cp boot.efi /mnt/usbdisk  

無線LAN設定

再起動後も無線LANを使えるように以下のパッケージをインストールする。

pacman -S iw wireless_tools wpa_supplicant dialog networkmanager  

インストールしたらnetworkmanagerを有効化する。

systemcl enable NetworkManager  

再起動

まずはchroot環境から抜ける。

exit  

システムを再起動する。

reboot  

Mac OS X側で後処理

ArchLinuxで起動できるようにしていく。

Boot用パーティションのフォーマット

ArchLinuxで作ったBootパーティション(/dev/sda4)をMac OS拡張(ジャーナリング)でフォーマットする。

boot.efiとSystemVerion.plistを配置

以下のコマンドでフォーマットしたパーティションにディレクトリを作成する。

cd /Volumes/disk0s4  
mkdir System mach_kernel  
cd System  
mkdir Library  
cd Library  
mkdir CoreServices  
cd CoreServices  

CoreServicesディレクトリ内にSystemVersion.plistを作成する。

touch 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>  

加えて、先ほど生成したboot.efiをコピーする。

最終的には以下の様なディレクトリ構成になる。

|---mach_kernel  
|---System  
        |
        |---Library  
                |
                |---CoreServices  
                        |
                        |---boot.efi  
                        |---SystemVerion.plist  

ブートデバイスの追加

blessコマンドでブート可能な状態にするのだが、Mac OS X 10.11で追加されたSIPの影響でblessコマンドが失敗するため、一時的にSIPを無効にする。

Command+Rを押しながらMac OS Xを再起動し、リカバリモードに入る。
Terminalを起動して、SIPを無効にする。

csrutil disable  

再起動して普通にMac OS Xを立ち上げる。
blessコマンドでブート可能な状態にする。

sudo bless --device /dev/disk0s4 --setBoot  

Command+Rを押しながらMac OS Xを再起動し、リカバリモードに入る。
Terminalを起動して、SIPを有効にする。

csrutil enable

これでArchLinuxのインストールは終わり。
あとはArchLinuxで起動してGUI環境を整える。
そのへんはまた今度。

参考

comments powered by Disqus