Arch LinuxとWindows 10をデュアルブートした話
Arch linux と Windows 10 のデュアルブートを目指す。
私自身は普段お世話になっていたUbuntu 15.10のサポートが切れそうなのとArch Linuxが気になっていたので今回インストールに踏み切った。
賢明な諸兄らには説明不要であると思うが、Arch Linuxは最小限のパッケージしかないシンプルな状態から始まる。そのため、システム全容が比較的把握しやすい(多分)。さらには、インストールから運用まですることで、Linuxの勉強になるのではないだろうか。
さて、すごく気になるのでインストールしたいのだが、今までお世話になっていたUbuntuとは異なりグラフィカルなインストーラはない。困った。その辺は、まぁ、頑張る。
なお、この記事のみ読んでインストールすべきではない。ファミ通の攻略本じゃないので大丈夫じゃない。ArchWikiを読んでインストールしよう。
基本的にビギナーズガイドのとおりに進めた。見出しもビギナーズガイドから引っ張ってきているので、見出しは対応している。
私の環境
使うのはThinkPad X1 Carbon (3rd gen)。Windows 10がプリインストールされている。
同機種かつ似た環境でArch Linuxをデュアルブートしている方が既にいた。安心してインストールできた。ありがとうございました。
事前の準備
- BIOSでセキュアブートをOFFにする
- Windows 10 の高速スタートアップもOFFにする
- すでにあるパーティションをやりくりしてArch Linux用のパーティションを準備する
- インストールメディア(USBメモリ)を準備する
さて、準備が済んだらUSBメモリからブートして作業を始めよう。
言語の選択
キーボードレイアウトの変更
# loadkeys jp106
インターネット接続の確立
有線接続で作業していたので特に何をするでもなく繋がった。
以下のコマンドで確認できる。
# ping -c 3 www.google.com
インターフェースは以下のコマンドで確認できる。
# ip link
時計を合わせる
# timedatectl set-ntp true
ドライブの準備
デバイスの確認
以下のコマンドですべてのデバイスを確認する。
# lsblk
インストール可能なデバイスは以下のコマンドで確認できる。
# lsblk | grep -v "rom\|loop\|airoot"
以下のsdxという表現を使うが、このxはデバイスによって異なるので適宜読み替える。
なお、目指すべくはデュアルブートなので、この段階で既にパーティションがいくつかあり、Windows 10のパーティション、リカバリ領域などが確認できる。Windows 10の「回復ドライブ」は用意してあるが、リカバリ領域だけは触らないように。*1
新しいパーティションテーブルの作成
前述の通りパーティションテーブルはGPTである。
パーティションは以下のコマンドで作成した。グラフィカルな感じで使いやすい。
# cfdisk /dev/sdx
必要なパーティションは以下の4つである。
- /boot
- /
- swap
- /home
ただ、今回は既にWindows 10によってEFIブートパーティションが用意されている。そのため、/bootは新しく作る必要は無く、空いているパーティションを以下3つのパーティションに分ける。なお、参考までに空きパーティションは188GBで、それを以下の通りに分けた。
- / : 20GB
- swap : 8GB
- /home : 160GB
ファイルシステムの作成
以下のコマンドでパーティションが用意できているか確認する。
# lsblk /dev/sdx
swapパーティション以外(/と/home)のファイルシステムを作成する。*2 XFSというシステムもあるみたいだが、見慣れているext4を採用。
# mkfs.ext4 /dev/sdxY
パーティションのマウント
まず最初に/をマウントする。その後、他の/bootと/homeをマウントする。前述のとおり、/bootは既にあるEFIブートパーティションを使う。この辺が正直あまり分かっていないのだが、調べたところによると、このEFIブートパーティションを/bootか/boot/efiにマウントすればいいようだ。*3今回はwikiの方を採用して/boot/efiにマウントした。それを踏まえてコマンドは以下の通り。
# mount /dev/sdxR /mnt # mkdir -p /mnt/boot/efi # mount /dev/sdxB /mnt/boot/efi # mkdir -p /mnt/home # mount /dev/sdxH /mnt/home
マウント位置などは以下とかを参考に。
ベースシステムのインストール
# pacstrap -i /mnt base base-devel
fstab の生成
# genfstab -U /mnt >> /mnt/etc/fstab
生成したfstabファイルを確認。
# cat /mnt/etc/fstab
Chroot とベースシステムの設定
システムに入る。
# arch-chroot /mnt /bin/bash
ロケール
# nano /etc/locale.gen
以下の行をコメントアウトから外す
# locale-gen # echo LANG=en_US.UTF-8 > /etc/locale.conf # export LANG=en_US.UTF-8
コンソールフォントとキーマップ
# nano /etc/vconsole.conf
以下のように編集
KEYMAP=jp106 FONT=lat9w-16
タイムゾーン
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ハードウェアクロック
# hwclock --systohc --utc
ホスト名
# echo ホスト名 > /etc/hostname # nano /etc/hosts
以下のように編集
#<ip-address> <hostname.domain.org> <hostname> 127.0.0.1 localhost.localdomain localhost ホスト名 ::1 localhost.localdomain localhost ホスト名
ネットワークの設定
注意書きに従ってこの段階では無線の設定はしない。既に接続されている有線を使う。
root パスワードの設定
# passwd
ブートローダのインストールと設定
# pacman -S intel-ucode dosfstools efibootmgr # pacman -S grub
無論、/bootにマウントしたなら/boot/efiは/bootに読み替える。
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
ここはこのページを参考にさせていただいた。
デュアルブート対応
これもこのページを参考にさせていただいた。
これでgrubにWindows 10が表示されるはず。
# pacman -S os-prober # grub-mkconfig -o /boot/grub/grub.cfg