今回使用するPCにはUEFIモードにてWindowsがインストール済みでArchとのデュアルブート環境を構築するものとします。
一応ちょくちょくUEFIモードだけどシングルブートで作る人向けにも書いてあります。
その場合は上記サイトを参考に先にEFIパーティション等を作って下さい。
また私は先にGPartedでArch用の領域を作っています。多分先に作った方が楽です。パーテイション操作でその辺はちょこっと書いています。GPartedで調べて先に作りましょう。
既にArchのインストーラーから起動しているものと仮定します。
~キーボード設定~
loadkeys jp106
~インターネット設定~
有線LANの場合は多分大丈夫なのでpingまで飛ばして下さい。
無線LANの場合はiwctlを使います。下記を入力します。
iwctl
無線LANのデバイスが分からなければ下記を入力。多分wlan0でしょう。
device list
周囲のWi-Fiをスキャンをします。wlan0ではないデバイスならその都度device listで出てきたものに置き換えて下さい。
station wlan0 scan
スキャンしたSSIDを表示。
station wlan0 get-networks
接続。SSID名は繋ぎたいWi-FiのSSIDに置き換えて下さい。
station wlan0 connect <SSID名>
例:SSIDがarchwifi0001の場合
station wlan0 connect archwifi0001
パスコードを入力後にEnter。接続成功の場合は何も起こりません。
exitを入力してEnterでiwctlを出ます。
正しく繋がっているか確認。下記を入力。
ping archlinux.jp
何回か繰り返して大丈夫そうならCtrl+Cを押して抜けて下さい。
~パーティション~
詳細は省きます。各自GPartedやBIOSならfdisk、UEFIならgdiskを使って作って下さい。
私はGPartedで先に作りました。その方がfdiskやgdiskを使わなくても楽に作れるので。
ちなみにGPartedもfdiskもgdiskもですが、操作を間違えるとWindowsが起動しなくなります。
特にリカバリパーティション等は消すと難儀なことになります。
なのでできるだけ先にリカバリDVDやUSBを作りましょう。
もしGPartedを使う場合の使い方は公式よりlive CDのISOをダウンロード後にUSB等に焼いて起動。
最初のCDが並ぶ画面はそのままEnter。KeyMapがどうのこうのという青画面もEnter。
次の言語選択はJapanなので15を入力してEnter。次は0を入力してEnter。
GPartedが起動したら適当なパーティションをリサイズして領域作成。
この際、必ずWindowsパーティションの後ろに作って下さい。
作成できたらext4でフォーマット。その際にラベルを付けておくと見分けがついて楽なので「Arch」とでも入れておきましょう。
今からは下記のパーテイション構成でインストール等を行います。
実際はsdaがmmcblkだったりnvmeだったりします。その都度読み替えて下さい。
/dev/sda1:EFIパーティション
/dev/sda2:Windowsのパーティション
/dev/sda3:arch(ext4でフォーマット済み)
/dev/sda4:Windowsリカバリパーティション
ちなみにシングルブートであればEFIパーティションも必要です。
archのパーテイションを作る前に500MB程の領域を作ってFAT32でフォーマットします。
その際にフラグをbootで設定しておきまししょう。そうしないとEFIパーティションとして使えません。
そうするとsda1にEFIパーテイション、sda2にArchパーテイションとかになるはず。これもまたその都度読み替えてくださいね。
なお、最近のPCならスワップ領域は作りません。もし古いPCで気になる人はスワップ領域も作りましょう。
~ファイルシステムのマウント~
もし既にパーテイション操作をGPartedで行っている人は先にlsblkと打ってパーテイションを確認しましょう。
今回は上記のファイル構成を元にマウントを行います。
mount /dev/sda3 /mnt
mkdir /mnt/boot/efi
mount /dev/sda1 \mnt/boot/efi
もしシングルブートの場合は下のものを入力しましょう。sda1がEFI、sda2がarchのパーテイションとします。
mount /dev/sda1 /mnt
mkdir /mnt/boot
mount /dev/sda2 \mnt/boot
~サーバーのミラーリスト設定~
reflector --sort rate --country Japan --latest 10 --save /etc/pacman.d/mirrorlist
~パッケージのインストール~
pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd
もしここでコケるならマウントかネットの設定がおかしいかもしれません。pingを打つなりマウント状態を確認しましょう。
baseは必須、base-devel、linux、linux-firmwareも入れておいた方が良いです。
あとnanoは後で使いますのでこれも実質必須です。vimがいい人は代わりにvimを入れましょう。
dhcpcdは有線LANは絶対に使わない!無線LANしか無い!って言うなら不要ですが、入れておいた方が後々楽です。
もしここでnew rootとか言われてエラーが出るならISOイメージが最新のものか公式サイトで確認しましょう。
古いならISOを焼き直して最初からやり直しです。その際はトラブル防止の為にarchのパーテイションを再フォーマットしましょう。
~fstabの生成~
genfstab -U /mnt >> /mnt/etc/fstab
~chrootで中に入ろう~
arch-chroot /mnt
何もエラーが出なければ大丈夫。
~タイムゾーン設定~
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
~ローカリゼーション~
言語設定です。まずはnanoで使う言語を指定します。下記を入力します。
もしpacstrapでnanoを入れなかった人は先にpacman -S nanoと打って入れましょう。
vimの人はnanoの部分をvimに置き換えましょう。
nano /etc/locale.gen
言語がアルファベット順に並んでいるので矢印キーの下を押しながら#en_US.UTF-8 UTF-8の行を探しましょう。
見つけたら先頭に付いている#を消します。
次に同じようにして#ja-JP.UTF-8 UTF-8を探し、同じように#を消します。
終わったらCtrl+Xを押し、Yを押してからEnterを押すと設定が保存されてnanoが閉じます。
次に下記のコマンドを打ちます。
locale-gen
先程#を消したものが2つ出てきたら大丈夫です。
次に下記のコマンドを打ち込みます。これはデフォルトロケールとキーマップを決めるものです。
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo KEYMAP=jp106 > /etc/vconsole.conf
ここではLANGをまだja_JPにしないでください。文字化けを起こして読めなくなります。
またキーマップはキーボードが英字キーボードならその都度替えて下さい。普通の日本語キーならjp106でいいです。
~ホスト名の設定~
echoの後のhostnameの部分は好きな名前に変えて下さい。
自分のPCのシリーズ名(ThinkPadとかLavie)とか。
echo hostname > /etc/hostname
~rootパスワードの設定~
passwd
パスワード入力中は何も表示されませんがそれが正常です。焦らず入力して下さい。
再度パスワードを入力して問題無ければ大丈夫です。パスが違うよ!って言われたらもう一度打ちましょう。
~無線LANの設定~
今はiwctlで最初に設定したので繋がっていますが、再起動後は繋がっていません。
ここを飛ばして再起動をすると、有線LANが繋げる人は最後に書かれていることさえしていればネットに繋がりますが、無線LANの人は無理です。
ここで設定しないと再起動後にネットに繋がらず詰みです。
なので普段は無線LANで繋ぐ人や無線LANでしかネットに繋ぐ方法が無い人は必ずここで設定を済ませて下さい。
ここではiwdを使います。ですが起動時に毎回手動で接続作業を行う必要があるので、後で別のものに変えます。
もしそれが面倒ならnetctlを使います。
ここはお好きな方を使って下さい。両方とも設定方法を書いておきます。私はiwdを使いました。
iwdを使うなら下記を入力していきます。
pacman -S iwd
systemctl enable iwd
systemctl enable systemd-resolved
mkdir /etc/iwd
nano /etc/iwd/main.conf
nanoが開いたら下記を入力して下さい。
[General]
EnableNetworkConfiguration=true
終わったらCtrl+X→Y→Enterで保存しましょう。
再起動後に接続設定を行います。
netctlを使うなら下記を入力していきます。
pacman -S netctl openresolv dhcpcd wpa_supplicant
dhcpcdはpacstrapで入れた人は不要です。
次にサンプルデータをコピーします。
cd /etc/netctl/examples/wirelesss-wpa /etc/netctl/wireless
ip link
ip linkではインターフェイス名を確認します。wlan0とかそういうやつね。
次にプロファイルを編集します。
nano /etc/netctl/wireless
開いたファイルにある以下の部分をそれぞれ編集します。
"Interface"に先程確認したインターフェイス名
"ESSID"にWi-FiのSSID名
"Key"にWi-Fiのパスワード
Ctrl+X→Y→Enterで保存しましょう。
最後に起動時に先程のプロファイルで接続するようにします。
netctl enable wireless
これでOKです。
有線LANの人はdhcpcdが再起動後に有効になるようにしておきましょう。
systemctl enable dhcpcd
~マイクロコードのインストール~
これはお使いのCPUがIntelかAMDかで変わります。CPUの型番を見て判断しましょう。
分かったらどちらかを入力します。
pacman -S intel-ucode
pacman -S amd-ucode
~ブートローダーのインストール~
ここまで来たらもうちょっとです。
今回はUEFIのシングルブートとデュアルブートの両方を書いておきます。BIOSの場合は参考にしたサイトを見て下さい。
まずはUEFIでWindowsとデュアルブートする場合です。下記を入力します。
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
次にUEFIでシングルブートする場合です。下記を入力します。
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
これでF12を押すと起動メニューにGRUBという項目があるのでそこから起動できます。
Windowsを起動したい場合は起動メニューのWindows Boot Managerを選択します。
起動メニューを呼び出すキーがF12かどうかはPCによって変わるので調べて下さい。
もし32bit版UEFIの記事から飛んできた人はx86_64をi386に置き換えて下さい。
何も無ければdone.等が出て終わります。
尚、GRUB上からWindowsを起動できるようにはしていないので、os-proberがどうのこうのって出るかもしれません。
今回は問題ないので無視します。
~再起動~
下記コマンドでchrootから抜け、アンマウントして再起動しましょう。
exit
umount -R /mnt
reboot
USBメモリを抜いて再起動するとGRUBから立ち上がるはずです。
これ以降は別の記事に書きます。ここらで一回お茶でも飲んで休憩しましょう。