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環境を整える。
そのへんはまた今度。