Arch Linuxは何度かインストールしているのですが。手順まとめないといつまで経っても慣れないのと、あと、ノートPCにインストールするのは初めてだったので(Secure Bootなどでもハマったので)、記録として残しておこうと思いました。機種はAcer Swift 5ですが、EFIでセキュアブートなものなら似た手順かと思います。
また、これは今のところ、理由が分からないのですが、Swift 5に内蔵の無線LANは、インストール時にWi-Fiにつながりませんでした。他のUSBの無線LAN装置を使ってようやく接続ができました。(これについては、単に私のミスかもしれませんし、本当にダメなのかもしれません。調査不足です。)
他のディストロをインストールされる方も、Secure Bootの設定の部分などは役に立つかもしれません。
ちなみに。Arch Linuxは、Linuxディストリビューションの中では、インストールは難しい部類に入ります。過去にFedora, Ubuntu, OpenSuSEも使ったことがありますが、これらはWindowsのセットアップとそうそう変わらないほど簡単です。けれどArch LinuxはGUIインストーラがなく、自分で説明読みながらコマンド打てる人じゃないとインストールできません。たーのしー!
そして、Qiitaの番号箇条書きの仕様なのか、番号が面白いところでリセットされてますね。かといって、手動で直そうとも思えないので、このままにします。
また、X11のインストールなども別で書くかもしれませんが。なんかドライバ入れ忘れたりゴタゴタしたので、書かないかもしれません。
おやくそくのやつ
- 電源ボタンを押すと、Windowsの初期設定画面が起動しました。ライセンスを熟読しましたが、Microsoftのライセンス条項に承諾したくなかったので、Arch Linuxを入れようと決意しました。ライセンスに承諾する前に、電源ボタンを長押しすることで電源を切ることができました。
Arch Linux のISOファイル準備(別PCと、USBメモリなどが必要)
- 別PCで https://www.archlinux.org/download/ にアクセスし、ISOファイルをダウンロードしました。
- ddコマンドで、ブータブルUSBを作りました。手順を忘れたので https://wiki.archlinux.org/index.php/USB_flash_installation_media を参考にしました。また、できたUSBメモリは、早速ノートPCに差しました。
ノートPCのBIOSを設定する
- BIOS設定画面を起動するために、F2を押しながら電源ボタンを押しました。
- Mainタブの
F12 Boot Menu
をEnabledにかえて、F12を押しながら電源ボタンを押した時、どのデバイスからブートするかを選べるようにしました。 - Secure Bootの設定を削除しないといけないのですが、グレーアウトしていて設定できないので、
Set Supervisor Password
でパスワードを適当に設定しました。すると、グレーアウトしていた設定が触れるようになりました(ゼルダの伝説かよ!) -
Erase all Secure Boot Setting
でEnterを押し、セキュアブートの設定を削除しました。 -
Supervisor Password
を忘れるといけないので、再度Set Supervisor Passwordをし、空に設定しなおしました。(再びSecure Bootの設定がグレーアウトしました) - USBメモリがノートPCに刺さっていることを確認し、F10
Save and Exit
で、セーブしExitしました。再起動されますので、F12を押しっぱなしにしておきました。
Arch Linux のISOファイルからブートする
- 前回の手順のとおり、F12を押しっぱなしでノートPCを起動しました。
- Boot Option Menuが表示されますので、USBメモリから起動しました。
- Arch Linuxのブートメニューが表示されますので、一番上を選択しました。
Arch Linuxのインストール (別PCで方法確認しながらが吉)
インストール先のパーティション準備まで
- install.txtの内容を確認し、インストールの流れを確認しました。
- 別PCで https://wiki.archlinuxjp.org/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89 を開き、大体の流れを確認しました。
-
loadkeys jp106
で、日本語キーボードに切り替えました。 - EFIでブートされているのを確認するため、 ls /sys/firmware/efi/efivars で、efivarsディレクトリがあるのを確認しました。
-
fdisk -l /dev/sda
しました。パーティションが4つ切られていました。sda1はEFI System 100MB, sda2はMicrosoft reserved 16MB, sda3はMicrosoft basic data 237.4G, sda4はWindows recovery environment 1GB なので、sda2とsda3を消して、そこにArch Linuxを入れることに決めました。EFI領域はArch LinuxでもEFI使うなら必要です。また、リカバリ用っぽい領域は、今後、Linux教からMicrosoft教に宗旨替えすることになったときのために置いとくことにしました。 - 【!!重要: この動作でディスクの中身を変更して以降、しばらくの間、ディスクにWindowsもLinuxも入っていない、どちらも起動できない状態となります!!】fdiskの操作
fdisk /dev/sda
次の手順で行いました。 dで削除、2を選ぶ。dで削除、3を選ぶ。nで作成。サイズはデフォルトで(全部)割り当てて、あと、パーティションタイプはLVMにしました。wで保存してfdisk終了(qだと、保存せずに終了できる) - LVMの設定。 https://wiki.archlinuxjp.org/index.php/LVM を見ると便利です。
pvcreate /dev/sda2
vgcreate VolGroup00 /dev/sda2
lvcreate -l 100%FREE VolGruop00 -n volarch
pvdisplay
- ディスクのフォーマット。
mkfs.ext4 /dev/mapper/VolGroup00-volarch
して、mount /dev/mapper/VolGroup00-volarch /mnt
しました。また、今回私はやり忘れてたのですが。EFIの場合、EFI system partitionを/mnt/bootにマウントした方がブートローダのインストールがスムーズです。mount /dev/sda1 /mnt/boot
です。
ネットワーク接続
ここの手順でコケました。
何かやり方がまずかったのか、ハードウェアが対応していなかったのか、正直よく分かりません。
幸い、USBの別の無線LAN接続機器を持っていたので、それで事なきを得ました。
-
https://wiki.archlinuxjp.org/index.php/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A と https://wiki.archlinuxjp.org/index.php/WPA_supplicant に従い、wpa_supplicantの設定ファイルを作成しました。
wpa_passphrase SSID passphrase >> /etc/wpa_supplicant/example.conf
で、Wi-Fiパスワードを設定ファイルに追記しました。ip link set インタフェース名 up
とwpa_supplicant -B -i インタフェース名 -c /etc/wpa_supplicant/example.conf
をしました。 -
dhcpcd インタフェース名
をしました。 - なぜかつながりませんでした。dmesgには、以下のようにありました。
wlp1s0: associate with MACアドレス (try 1/3)
wlp1s0: RX AssocResp from MACアドレス (capab=0x411 status=0 aid=3)
wlp1s0: associated
wlp1s0: deauthenticated from MACアドレス (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)
wlp1s0: authenticate with MACアドレス
wlp1s0: send auth to MACアドレス (try1/3)
wlp1s0: authenticated
ath10k_pci 0000:01:00.0 wlp1s0: disabling HT as WMM/QoS is not supported by the AP
ath10k_pci 0000:01:00.0 wlp1s0: disabling VHT as WMM/QoS is not supported by the AP
- USBの別の無線LANモジュールをさして、上の手順を行いました。すると、問題なくつながりました。
-
ping archlinuxjp.org
で接続の確認をしました。
baseのインストールまでやってしまう
- Archのインストールガイドにあるとおりの手順でどんどんいきました。まず
timedatectl set-ntp true
しました - /etc/pacman.d/mirrorlist から Japanを検索して、日本のミラーをファイルの上に持ってきました
-
pacstrap /mnt base base-devel
を行いました -
genfstab -U /mnt >> /mnt/etc/fstab
で、自動でfstabを作ってもらいました -
arch-chroot /mnt
で、新しいシステムにchrootしました。ここから、シェルがzshからbashになります。 - タイムゾーン設定
ln -s /usr/share/zoneinfo/Asia/Tokyo
と、 /etc/locale.genの編集(en_US.UTF-8とja_JP.UTF-8のコメントアウトを外す)、locale-gen
を終わらせたらecho LANG=en_US.UTF-8 >/etc/locale.conf
しました。(LANG=ja_JP.UTF-8としたいところでしたが、コンソールでどうせ文字化けするだけですので、日本語にするのはX11入れてからでいいかな、と思いました) - キーマップの設定の前に、私はCtrlとCapsを入れ替えるのが好みなので、そういうキーマップ設定を作りました。(X11でも別途設定が必要になったはずですので、あえてやる必要もないです。)
cd /usr/share/kbd/keymaps/i386/qwerty
zcat jp106.map.gz > jp106_swapctrlcaps.map
viなどでjp106_swapctrlcaps.mapを編集し、CtrlとCapsのキーコードを入れ替える
zgip jp106_swapctrlcaps.map
- キーマップの設定をしました。先程jp106_swapctrlcapsを作ったので、
echo KEYMAP=jp106_swapctrlcaps >/etc/vconsole.conf
としました。 -
echo ホスト名 >/etc/hostname
しました。/etc/hostsもインストールガイドの通りに編集しました。 - 今のうちにネットワークの設定をしておくみたいです。(とはいえ、内蔵つながらないのですが) また、さっさと入れちゃいたいパッケージを
pacman -S パッケージ名
でインストールします。pkgfileはあると便利(このコマンドってどのパッケージなの? を探す機能)です。bash補完を強くするbash-completionも私はいつも入れてます。ノートパソコンなので、NetworkManagerがあると便利かな、と思ったので、インストールしときます。(Wi-Fiつながらねーけどな!)pacman -S networkmanager pkgfile bash-completion
してsystemctl enable networkmanager
- 【※私は忘れてましたが。この手順の前に、LVM使った場合はmkinitcpio.confの編集が必要です。HOOKS="..."の行の、blockとfilesystemsの間に、lvm2を書く必要があります】
mkinitcpio -p linux
しました。"possibly missing firmware"みたいなWARNINGが出ましたが、ぐぐったところ、さして問題ではなさそうだったので、見なかったことにしました。 -
passwd
でrootパスワードを設定しました。 - 使用している機器がIntel CPUなので、intel-ucodeパッケージのインストールが必要なようです。
pacman -S intel-ucode
しました。 - ここで、EFIブートの場合、/bootがEFI system partitionの方がよかったことに気づきました。/bootの中身をどっかに移して、
mount /dev/sda1 /boot
して中身を戻しました。まだfstab書き換えてないですが、それは後でgenfstabします。(chroot環境には、genfstabがない) -
bootctl --path=/boot install
で、ブートローダをインストールしました。 - https://wiki.archlinuxjp.org/index.php/Systemd-boot にしたがって、/boot/loader/entries/arch.confのようなエントリーを作りました。LVMの場合はPARTUUIDではなくUUIDを指定する必要があることに注意が必要です。(べつに、/dev/mapper/... でもいいですが) UUIDは、blkidか、自動生成されたfstab見るとわかります。
-
exit
でchroot環境を抜けました。先程、後から/bootをマウントしたので、再度genfstabしました。genfstab -U /mnt > /mnt/etc/fstab
-
reboot
しました
BIOS設定ふたたび
- 再起動されてる間、F2キーを押し続け、再びBIOS設定画面を起動しました。
- せっかくだから、
Select an UEFI file as trusted for executing
で、EFI/systemdのファイルを登録してみました。F10押して保存と再起動しました。 - 再びF2を押すとBootタブのブート順序のところにさっき登録したのが現れたかと思います。しつこくWindows Boot Managerも残ってますが、知らんふりして、さっき登録したのを優先順位を最上位に上げました。
- これで、F10押して、再起動かかるので、Arch Linuxが立ち上がれば成功です。おめでとう!
- 私はいろいろミスってたので、再度USBメモリから起動し、マウント、arch-chrootを繰り返しました。つかれた。