Arch Linuxを入れてみたいけれど、手順が長くてどこから始めればよいか分からない、という方へ。Windowsに入っているHyper-Vで仮想マシンを作れば、今のPCを壊す心配なしに、ISOの入手から再起動してログインするところまで試せます。
手順はArch Wikiのインストールガイド(日本語版はインストールガイド)と同じ流れです。全部を手で打つのが大変なら、ISOに入っているarchinstallを使う方法もあります(archinstallを使う場合)。

はじめに確かめること
- Hyper-Vが使えるWindows:Hyper-VはWindows 10/11のPro以上で使えます。VirtualBoxやVMwareなど、ほかの仮想化ソフトでも流れは同じです。
- メモリとディスク:Arch Wikiでは、動かすのに最低512MiBのメモリが必要で、インストール用の起動にはもっと必要とされています。仮想マシンには2048MB以上を割り当ててください。ディスクは、Arch Wikiの例ではルート(/)に23〜32GiB以上がすすめられています。
- インターネット接続:パッケージをネットから取ってくるので、つながる環境が必要です。
Arch LinuxのISOファイルを入手する
Arch Linuxのダウンロードページ(日本語はarchlinux.jpのダウンロードページ)で、日本のミラーサーバーを1つ選び、【archlinux-xxxx.xx.xx-x86_64.iso】という名前のファイルをダウンロードします。ISOは毎月新しくなるので、いちばん新しい日付のものを選んでください。

ミラーサーバーから取ったときは、同じページにあるPGP署名(.sig)で、ファイルが書き換えられていないかを確かめることがすすめられています。手順はダウンロードページの「Checksums and signatures」に載っています。
Hyper-Vで仮想マシンを作る
Windowsのスタートメニューで「Hyper-Vマネージャー」を検索して起動します。

左側のホスト名を右クリックし、【新規】→【仮想マシン】を選びます。

「仮想マシンの新規作成ウィザード」が開くので、【次へ】をクリックします。前に【今後、このメッセージを表示しない】にチェックを入れた場合は、この画面は出ません。

【名前と場所の指定】で、【名前】に好きな名前を入れます。ここでは【ArchLinux】にしています。保存先を変えたいときは【仮想マシンを別の場所に格納する】にチェックを入れて場所を指定し(例:D:\Hyper-V\ArchLinux)、【次へ】をクリックします。

【世代の指定】では、UEFIで起動させたいので【第2世代】を選び、【次へ】をクリックします。BIOSで起動させたい場合は第1世代を選びます。世代はあとから変えられないので、間違えたら仮想マシンを作り直すことになります。

【メモリの割り当て】で【起動メモリ】を【2048】(MB)以上にし、【この仮想マシンに動的メモリを使用します。】のチェックを外して【次へ】をクリックします。

【ネットワークの構成】で、インターネットにつながる仮想スイッチを選びます。ここでは【外部】という名前の仮想スイッチを選んでいます。

【仮想ハードディスクの接続】で、保存先とサイズを入れます。ここでは保存先をD:\Hyper-V\ArchLinux、サイズを200GBにしています。

【インストールオプション】で【ブートイメージファイルからオペレーティングシステムをインストールする】を選び、【イメージファイル】にダウンロードしたISOファイルを指定します。

最後の画面で内容を確かめ、【完了】をクリックします。

セキュアブートを切る(第2世代の場合)
Arch LinuxのインストールISOはセキュアブートに対応していないため、第2世代の仮想マシンではセキュアブートを切ってから起動します(Arch Wikiのインストールガイドにも書かれています)。第1世代で作った場合は、この手順はいりません。
Hyper-Vマネージャーで作った仮想マシンを右クリックし、【設定】を選びます。

左側の【セキュリティ】を選び、【セキュアブートを有効にする】のチェックを外して【OK】をクリックします。

インストール用のISOで起動する
仮想マシンを起動する
仮想マシンを右クリックして【接続】を選びます。

別のウィンドウが開くので、【起動】をクリックします。

起動メニューが出たら【Arch Linux install medium (x86_64, UEFI)】を選んで【Enter】キーを押します。第1世代(BIOS)の場合は、BIOS用の表示になります。

しばらくすると、rootユーザーでログインした状態のプロンプトが出ます。

キーボードを日本語配列にする
最初はUS配列になっています。日本語キーボードを使っている場合は切り替えます。
loadkeys jp106
UEFIで起動しているか確かめる
cat /sys/firmware/efi/fw_platform_size
64と出ればUEFI(64ビット)で起動しています。「No such file or directory」と出たら、BIOSで起動しています。第2世代で作ったのにBIOSと出る場合は、仮想マシンの設定を見直してください。
ネットワークにつながっているか確かめる
ネットワークの機器(NIC)が見えているかを確かめます。
ip link

仮想マシンでは、ふつうは最初からUPになっています。実機でUPにならないときは、ドライバーが足りないことがあります。有線のDHCPは、インストール用の環境では最初から動くようになっています。
インターネットにつながるかを確かめます。止めるときは【Ctrl + C】を押します。
ping archlinux.jp

ドメイン名でpingが通れば、インターネットにつながっていることと、名前からIPアドレスを引けていること(DNS)を一度に確かめられます。
時刻が合っているか確かめる
時刻がずれていると、パッケージの署名の確認に失敗することがあります。インストール用の環境では、ネットにつながると自動で時刻が合います。
timedatectl

パーティションを作る
ディスクを確かめる
lsblk

loop0とsr0はインストール用ISOのものなので、気にしなくて大丈夫です。ここでは/dev/sdaにインストールします。
パーティションの分け方
Arch Wikiの「UEFIとGPT」の例に合わせて、3つに分けます。
| マウントポイント | パーティション | 種類 | 大きさ(Arch Wikiの目安) |
|---|---|---|---|
| /mnt/boot | /dev/sda1 | EFIシステムパーティション | 1GiB |
| swap | /dev/sda2 | Linux swap | 4GiB以上 |
| /mnt | /dev/sda3 | Linux x86-64 root (/) | 残り全部 |
ここからの画像は、EFIシステムパーティション300MiB・swap 512MiBで作ったときのものです。サイズの表示だけ違いますが、操作は同じです。
BIOSで入れる場合や、自分で分け方を決めたい場合は、Arch Wikiのパーティショニングを見て決めてください。
gdiskでパーティションを作る
GPTで作るのでgdiskを使います(MBRならfdiskです)。ディスクの中身はすべて消えるので、仮想マシンのディスクであることを確かめてから実行してください。
gdisk /dev/sda
「Command (? for help):」と出たら、1文字のコマンドを打って【Enter】キーを押します。【?】でヘルプが出ます。

よく使うのはこの7つです。
| コマンド | 意味 |
|---|---|
| o | 新しいパーティションテーブル(GPT)を作る |
| n | パーティションを追加する |
| p | 今のパーティションを表示する |
| t | パーティションの種類を変える |
| l | 種類のコード一覧を表示する |
| w | ディスクに書き込んで終わる |
| q | 保存しないで終わる |
聞かれる順に入力します。「何も入れずにEnter」は、表示されている初期値(default)を使うという意味です。
| 聞かれること | sda1(EFI) | sda2(swap) | sda3(root) |
|---|---|---|---|
| Command | n | n | n |
| Partition number | Enter(1) | Enter(2) | Enter(3) |
| First sector | Enter | Enter | Enter |
| Last sector | +1G | +4G | Enter(残り全部) |
| Hex code or GUID | ef00 | 8200 | 8304 |
最初にoで新しいパーティションテーブルを作り(確認にはY)、3つ作ったらpで中身を確かめ、wで書き込みます(確認にはY)。種類のコードは、ef00がEFIシステムパーティション、8200がLinux swap、8304がLinux x86-64 root (/)です。8304の代わりに8300(Linux filesystem)にしても動きます。
終わったら、もう一度lsblkで確かめます。sda1〜sda3ができていれば大丈夫です。
lsblk

パーティションをフォーマットする
EFIシステムパーティションはFAT32でフォーマットします。
mkfs.fat -F 32 /dev/sda1
swap用のパーティションはmkswapで準備します。
mkswap /dev/sda2
ルート(/)はext4でフォーマットします。
mkfs.ext4 /dev/sda3
lsblk --fsで、FSTYPEがvfat・swap・ext4になっていれば大丈夫です。
lsblk --fs

パーティションをマウントする
ルートを/mntに、EFIシステムパーティションを/mnt/bootにマウントし、swapを有効にします。何も表示されなければ成功です。
mount /dev/sda3 /mnt
mount --mkdir /dev/sda1 /mnt/boot
swapon /dev/sda2
Arch Linuxをインストールする
ミラーサーバーを選ぶ(必要なら)
パッケージは/etc/pacman.d/mirrorlistに書かれたミラーサーバーから取ってきます。インストール用の環境では、最初からHTTPSのミラーが使えるようになっているので、そのままでも進められます。ダウンロードが遅いときは、reflectorで速いミラーを上に並べ替えます。
reflector --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
この一覧は、次のpacstrapで新しいシステムにもコピーされます。ミラーの選び方はpacmanコマンドの使い方|よく使うオプション一覧と設定(pacman.conf)・ミラーの変え方でも確かめられます。
必要なパッケージを入れる
最低限のシステムと、設定ファイルを直すためのエディタ(ここではNeovim)を入れます。
pacstrap -K /mnt base base-devel linux linux-firmware neovim
-Kは、新しいシステム用に空のpacmanの鍵束(キーリング)を作る指定です。ダウンロードとインストールに少し時間がかかります。仮想マシンではlinux-firmwareは省いてもかまいません。
途中で「PGP signature」のエラーが出たときは、鍵束を新しくしてから、もう一度pacstrapを実行してください。
pacman -Sy archlinux-keyring
起動時のマウント設定(fstab)を作る
起動するときに、どのパーティションをどこにマウントするかをfstabに書き込みます。-UはUUIDで指定するという意味です。
genfstab -U /mnt >> /mnt/etc/fstab
中身を見て、3つのパーティションが入っているか確かめます。
cat /mnt/etc/fstab
新しいシステムの設定をする
新しいシステムに入る(chroot)
ここからは、インストールしたシステムの中に入って設定します。
arch-chroot /mnt
タイムゾーンと時計
タイムゾーンを日本時間にします。
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ハードウェアの時計の設定を作ります。
hwclock --systohc
言語(ロケール)
/etc/locale.genを開き、en_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8の行の先頭にある#を消して保存します(Neovimでは:wqで保存して終わります)。
nvim /etc/locale.gen
保存したら、ロケールを作ります。
locale-gen
システムの言語を決めます。文字だけの画面(コンソール)のフォントは256字か512字までしか持てないため、日本語は表示できません(Arch Wiki「Linux console」)。ここではen_US.UTF-8にしておき、デスクトップ環境と日本語フォントを入れてからja_JP.UTF-8に変えると、文字化けしません。
echo LANG=en_US.UTF-8 > /etc/locale.conf
コンソールのキーボード配列を、再起動後も日本語配列にします。
echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名
このPCの名前を決めます。ここではarchlinuxにしています。
echo archlinux > /etc/hostname
必要なら/etc/hostsにも書いておきます。
nvim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux
rootのパスワード
passwd
ネットワーク(DHCP)
インストール用の環境と違い、入れたシステムでは、ネットワークは自分で用意する必要があります。ここではDHCPクライアントのdhcpcdを入れます。
pacman -S dhcpcd
NICの名前を確かめます。Hyper-Vではeth0になっていることが多いです。
ip a
起動したときに自動でIPアドレスをもらうようにします。eth0は、確かめたNICの名前に変えてください。
systemctl enable dhcpcd@eth0
ブートローダー(GRUB)を入れる
GRUBと、UEFIの起動項目を書き込むefibootmgrを入れます。
pacman -S grub efibootmgr
GRUBをEFIシステムパーティションに入れ、設定ファイルを作ります。
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
再起動してログインする
chrootから出て、マウントを外してから再起動します。再起動の前に、Hyper-Vの【メディア】からISOファイルを外しておくと、インストール用のISOではなく、入れたシステムから起動します。
exit
umount -R /mnt
reboot
ログイン画面が出たら、ユーザー名にroot、パスワードに先ほど決めたものを入れます。ログインできればインストールは完了です。

archinstallを使う場合
archinstallは、質問に答えていくだけでインストールまで進められる道具です。インストール用のISOに最初から入っています(Arch Wiki「archinstall」)。ISOで起動し、キーボード配列とネットワークを確かめたら、実行します。
archinstall
ISOが作られたあとにarchinstallの新しい版が出ている場合は、先に更新してから実行することもできます。
pacman -Sy archinstall
- 手順を覚えたいなら手で入れる:パーティション、fstab、ブートローダーなどの仕組みが分かります。
- 早く使い始めたいならarchinstall:画面の質問に答えるだけで入ります。
- 初期設定がインストールガイドと違う:Arch Wikiでは、archinstallで入れたシステムは手で入れた場合と初期設定が違うので、質問するときはそのことと
/var/log/archinstall/install.logを添えるよう案内されています。 - rootのパスワードを空にしない:空にするとrootでログインできなくなります。sudoを使う設定にしない場合は、必ずパスワードを決めてください。

インストールが終わったら
- ふだん使うユーザーを作る:rootのまま使い続けず、一般ユーザーを作ってsudoを使えるようにします。ほかにやっておくことはArch Wikiの「一般的な推奨事項」にあります。
- パッケージの入れ方・更新のしかたを覚える:pacmanコマンドの使い方|よく使うオプション一覧と設定(pacman.conf)・ミラーの変え方で、入れる・更新する・探す・消すの基本を確かめられます。
- Arch Linuxがどんなディストリビューションか知る:ArchLinuxの概要で、特徴や向いている人を確かめられます。
まとめ
- Hyper-Vの第2世代で仮想マシンを作り、セキュアブートを切ってISOで起動する
- gdiskでEFI(1GiB)・swap(4GiB以上)・root(残り)の3つに分け、フォーマットしてマウントする
pacstrap -Kで入れ、fstab・タイムゾーン・ロケール(locale-genを忘れずに)・ホスト名・パスワード・ネットワークを設定する- GRUBを入れて再起動し、rootでログインできれば完了
- 手順を覚えるより早く使いたいなら
archinstallも使える
ログインできたら、まずpacman -Syuでシステム全体を最新にしてから、ユーザー作成やデスクトップ環境の準備に進んでください。

コメント