この記事は,Ubuntuはよく使うが,Arch Linuxは初めてという私 @zacky1972 が,まずは手近なT2チップを備えていない古いIntel MacにArch Linuxをインストールして習得していく過程を記録する駄文の3回目です.今回は,表題の通り,いよいよMacBook Air (11-inch, Early 2014, MacBookAir6,1)にArch Linuxインストールする作業を行いたいと思います.
シリーズ
- Arch LinuxをブートできるUSBメモリを用意する
- デュアル・ブート環境にするためにパーティションを区切る
- いよいよArch Linuxをインストールする(本記事)
- ネットワークの設定を見る
- Mac Pro (Mid 2010)にArch Linuxをインストールする
- ネットワークが繋がらない最小構成のままElixirをインストールして実行してみる
- ネットワークが繋がらない最小構成のままElixirをasdfではなくソースコードビルドしてインストールする
パーティションの状態
Device | Size | Type |
---|---|---|
/dev/sda1 | 200M | EFI System |
/dev/sda2 | 92.7G | Apple HFS/HFS+ |
/dev/sda3 | 619.9M | Apple boot |
/dev/sda4 | 5.6G | Apple HFS/HFS+ |
/dev/sda5 | 795.1G | Microsoft basic data |
今日はここから作業していきます.
macOSの起動セクションを作る(1回目)
下記の手順に従います.
まず,次のようにして/dev/sda4
をマウントします.
mount /dev/sda4 /mnt
これで,ドキュメント中の/mountpoint
は/mnt
に置き換えられます.
試しに次のようにしてみます.
touch /mnt/mach_kernel
おや?書き込みができないようです.
一旦,アンマウントして,書き込みするようにしてマウントし直します.
umount /dev/sda4
mount -rw /dev/sda4 /mnt
しかし,依然として,書き込みができません.
下記の記事を見つけました.
hfsprogs
なるものをインストールするようです.
Arch Linuxのパッケージマネージャのpacmanのドキュメントを読みます.
次のようにインストールします.
pacman -Sy hfsprogs
ターゲットがないと言われますね.
調べてみたら,レポジトリと同期する必要があるようです.
pacman -Syy
この後で,もう一度,hfsprogs
をインストールします.
pacman -Sy hfsprogs
まだ見つかりません.下記をやってみても,見つからないようです.
pacman -Ss hfsprogs
次のようにアップグレードしようとすると,パーティションがいっぱいでできないと言われます.
pacman -Syyu
推測ですが,先にSSD(/dev/sda5
)にArch Linuxをインストールして,ルートディレクトリ(/
)をSSD(/dev/sda5
)にマウントしてから,この手順をやるんじゃないでしょうかね.
Arch Linux を SSD にインストールする
というわけで,Arch LinuxをSSD(/dev/sda5
)にインストールして,マウントしなおしてみたいと思います.
まず,下記のようにしてext4
で/dev/sda5
をフォーマットします.
mkfs.ext4 /dev/sda5
次に下記のようにマウントします.
mount /dev/sda5 /mnt
続いて,次のインストール手順を行います.
pacstrap -K /mnt base linux linux-firmware
続いて,次の手順に移ります.
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
ここで /etc/locale.gen
を編集しようとしてつまづきました.エディタであるvi
がありません.
pacman
でvi
をインストールします.
pacman -Syyu
pacman -Sy vi
/etc/locale.gen
を編集して,ja_JP.UTF-8 UTF-8
を有効にして,次のコマンドを実行します.
locale-gen
/etc/locale.conf
を次のように作成します.
LANG=ja_JP.UTF-8
英語キーボードなので,キーボードレイアウトはそのままにします.
/etc/hostname
を作成して,ホスト名を決めます.
Initramfsは研究してみたいので,設定します.
mkinitcpio -P
Root passwordを設定します.
passwd
macOSの起動セクションを作る(2回目)
下記に従って,ブートローダーを設定します.
今回は,Installing a boot loader to a separate HFS+ partitionに従うものと思います.
次のようにhfsprogs
をインストールします.
pacman -Sy hfsprogs
依然としてパッケージが見つかりません.
どうも調べてみると,パッケージを作成してインストールする必要があるみたい.
ただし,下記手順でroot
ではmakepkg
を実行できませんでした.
そこで,ユーザーを作成します.
参考
ユーザーzacky
を作成します.ログインシェルは/bin/bash
とします.
useradd -m -g wheel -s /bin/bash zacky
パスワードを設定します.
passwd zacky
sudo
をインストールします.
pacman -Sy sudo
visudo
で次の2行をコメントアウトします.
# Defaults env_keep += "HOME"
# %wheel ALL=(ALL) ALL
次のようにして,ユーザー権限になります.
sudo su zacky
cd
次のようにインストールします.
sudo pacman -S --needed base-devel git
次のようにhfsprogs
をチェックアウトして,インストールします.
git clone https://aur.archlinux.org/hfsprogs.git ~/hfsprogs
cd ~/hfsprogs
makepkg -si
ここまでうまく終わったら,次のようにして,root
に戻ります.
exit
下記の記事にあるようにHFS+をマウントします.
mount -t hfsplus -o force,rw /dev/sda4 /mnt
下記の手順に従います.
touch /mnt/mach_kernel
今度は無事書き込めました.
mkdir -p /mnt/System/Library/CoreServices
将来課題
次に"Now, you can install any UEFI boot loader you want."の手順をしようとするのですが,ファイルが見つかりません.
rEFIndをインストールする手順をやってみます.
まず,パッケージをインストールします.
pacman -S refind
次のコマンドを実行すると,エラーになります.
refind-install
ESPを設定していないのだそうです.
ESPの説明はこちらです.
読んだ感じ,おそらくですが,下記の/dev/sda1
を書き換えると言っているような気がします.
Device | Size | Type |
---|---|---|
/dev/sda1 | 200M | EFI System |
/dev/sda2 | 92.7G | Apple HFS/HFS+ |
/dev/sda3 | 619.9M | Apple boot |
/dev/sda4 | 5.6G | Apple HFS/HFS+ |
/dev/sda5 | 795.1G | Microsoft basic data |
しかし,デュアル・ブート環境に支障が出そうな予感がします.つまり,ここにインストールすると,Arch Linuxしか立ち上がらないのではないかという気がするのです.
そもそも,デュアル・ブート環境にしようというのは,保険の意味だったので,ここで決断して,Arch Linuxのみのシングル・ブートにしても良いのかもしれません.しかし,今後の研究材料ということで,ブート方法については,将来課題として,置いておこうと思います.
現状の起動シーケンス
現状でも,次のように操作することで,Arch Linux環境にすることができます.
- Arch LinuxのliveのUSBメモリを挿す
- optionキーを押しながら電源オン
- EFI boot (USB) を選択
- GRUBが立ち上がるので,Enterキーを入力
- (Arch Linuxが起動)
mount /dev/sda5 /mnt
arch-chroot /mnt
sudo su zacky
cd
これでユーザーzacky
のユーザー権限で起動できます.お疲れ様でした!