LoginSignup
118
90

More than 3 years have passed since last update.

ArchLinuxのインストール(3つのブート方式ごとの設定)

Last updated at Posted at 2015-11-05

前置き

自分がArchをインストールした際詰まった箇所を見直すためと
自分自身とても詰まったブート方式の違いについて(64bitUEFI・32bitUEFI・BIOS)
これからArchLinuxをインストールする方の力に少しでも力に慣れたらと思い記事を書かせていただきました。

本文はブート方式ごとの設定を記述しており、各項目ごとに64bitUEFI・32bitUEFI・BIOSの設定があります。
自分の環境にあったものを選択してください。

初投稿で文章力もないので読みづらい文書となっていますがご了承ください

ArchLinuxをインストールする際Archの公式wikiのビギナーズガイドが優秀なのでこちらを見ながらの作業をおすすめします。

インストールディスクの作成

インストールディスクはUSBで作るほうが色々便利なのでUSBでの作り方のみ記述します。
PCのブート方式によって作成手順が違うので自分のPCのブート方式をよく調べてから作業してください。

USBインストールガイド

64bitUEFI・BIOSブート

Arch Linux Downloadsからisoの入手
・ddコマンドかRufusを使いisoファイルを書き込む

※/dev/sdx1 ではなく /dev/sdx を使い。x はあなたの使うデバイスに置き換える。

ddコマンド
dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx && sync

32bitUEFIブート

Arch Linux Downloadsからisoの入手
Rufusを使いisoファイルを書き込む ※USBラベルは「ARCHISO」に設定しておく
bootia32をダウンロードする
・書き込んだUSBのEFIディレクトリを開き、ダウンロードしたbootia32を配置
・/boot/grub/grub.cfgを作成し以下を記述 ※ディレクトリがない場合は作成

grub.cfg
menuentry 'Arch Linux i686'{
echo 'Loading Linux core repo kernel ...'
linux /arch/boot/i686/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCHISO
echo 'Loading initial ramdisk ...'
initrd /arch/boot/i686/archiso.img
}
menuentry 'Arch Linux x86_64'{
echo 'Loading Linux core repo kernel ...'
linux /arch/boot/x86_64/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCHISO
echo 'Loading initial ramdisk ...'
initrd /arch/boot/x86_64/archiso.img
}

インストール作業

USBの準備ができたらいよいよインストールに入ります。現在2015年10月29日に記事を作成していますが
年数が経つとインストール方法が変わったりする場合があるのでArchインストールガイドをよくみながら作業をしてください。

起動画面にてどちらのアーキテクチャか選択できるので、自分のPCにあったほうを選択してください。
Boot Arch Linux (x86_64) 
Boot Arch Linux (i386)  ※32bitUEFIはこちらを選択

キーボードレイアウトの設定

Archが立ち上がったらデフォルトのキーレイアウトがUSになっているので変更

loadkeys jp106

※usキーボードの方は変更不要

インターネットの設定

無線

wifi-menu

有線
自動接続

※固定IPを設定する場合は下記参照
ネットワーク設定

システムクロックの更新

systemd-timesyncd を使ってシステムクロックを設定

timedatectl set-ntp true
サービスの状態確認
timedatectl status

パーティショニング

パーティニングにおいて必須なのは下記の二つ
・ルートディレクトリ / のパーティション。
・UEFI が有効になっている場合、EFI システムパーティション。
※詳細はパーティショニング参照

今回の構成
/dev/sda1 ・・・ /boot 
/dev/sda2 ・・・ swap  
/dev/sda3 ・・・ /root  
/dev/sda4 ・・・ /home  

※UEFIブートの場合、EFI System Partitionというものを作成しなければいけないのだが今回は/bootと統合して作成する

現在のパーティション確認

fdisk -l

起動モードの確認

UEFIブートで立ち上がっているか確認できます。

ls /sys/firmware/efi/efivars

※ディレクトリが存在しない場合、BIOS (または CSM) モードで起動しています。

パーティション作成

partedの起動

parted /dev/sda
BIOSブートの場合
(parted)mklabel msdos
(parted)mkpart primary ext4 1MiB 100MiB
(parted)mkpart primary linux-swap 100MiB  2GiB
(parted)mkpart primary ext4 2GiB 10GiB
(parted)mkpart primary ext4 10GiB 100% 
(parted)q
UEFIブートの場合
(parted)mklabel gpt
(parted)mkpart ESP fat32 1MiB 551MiB
(parted)set 1 esp on
(parted)mkpart primary linux-swap 551MiB  2.5GiB
(parted)mkpart primary ext4 2.5GiB 10GiB
(parted)mkpart primary ext4 10GiB 100%
(parted)q 

※各パーティションのサイズは自分の環境に置き換えてください

作成後、パーティションを確認したい場合は下記コマンド実行

fdisk -l

ファイルシステム作成

ファイルシステムとスワップ領域の作成を行う

BIOSブートの場合
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4

UEFIの場合bootディレクトリはfat32で作成する

UEFIブートの場合
mkfs.vfat -F32 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4

インストール

ベースシステムのインストールになります。
マウントしないとインストールができないので以下を実行

マウント

mount /dev/sda3 /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/sda1 /mnt/boot
mount /dev/sda4 /mnt/home

ミラーリスト選択

nano /etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Sorted by mirror score from mirror status page
## Generated on YYYY-MM-DD
##
#japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
...

・Ctrl+W で「japan」と入力しURLを検索
・Ctrl+K で Server 行を切り取り。
・PageUp キーで上にスクロール。
・Ctrl+U でリストの一番上にペースト。
・Ctrl+X で終了、保存するか聞かれたら、Y を押し Enter で上書き保存。
※archisoはvimが使えるようになったのでvimでもいいですね

ベースシステムインストール

pacstrap /mnt linux base base-devel linux-firmware dhcpcd

※2019/11/7 追記 baseにlinuxカーネルが含まれなくなったようです。linuxを追加
※2019/12/10 追記 linux-firmwareとdhcpcdがないと無線使えないので追記

fstab作成

genfstab -U /mnt >> /mnt/etc/fstab

システムの設定

インストールが完了したらいよいよそのシステムに入ります。

arch-chroot /mnt /bin/bash

ロケールの設定

locale.gen ファイルのコメントアウトを解除します

nano /etc/locale.gen
locale.gen
...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
...
#ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
#ka_GE.UTF-8 UTF-8
...

解除後、以下を実行

locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf

コンソールフォントとキーマップ

nano /etc/vconsole.conf

以下を追記

console.conf
KEYMAP=jp106
FONT=lat9w-16

タイムゾーンとハードウェアクロック

タイムゾーンの設定

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ハードウェアクロックの設定

hwclock --systohc --utc

ホスト名

echo ホスト名 > /etc/hostname

同じホスト名を /etc/hosts に追加

nano /etc/hosts
hosts
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost ホスト名
::1   localhost.localdomain localhost ホスト名

ネットワークとパスワード

今回ネットワークの設定は有線の動的IPにします。
固定IPの場合はネットワーク設定を参照

無線の場合はワイヤレス設定参照

ネットワークの設定

[有線]
dhcpの有効化のみでOK

systemctl enable dhcpcd

参考:

パスワードの設定

passwd

GRUBのインストール

GRUBはそれぞれのブート方式で違うので順番に書いていきます

BIOSブート

pacman -S os-prober grub
grub-install --target=i386-pc --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

32bitUEFIブート

pacman -S grub dosfstools efibootmgr
grub-install --target=i386-efi --efi-directory=/boot --bootloader-id=grub --recheck
mkdir /boot/EFI/boot
cp /boot/EFI/grub/grubia32.efi /boot/EFI/boot/bootia32.efi
grub-mkconfig -o /boot/grub/grub.cfg

64bitUEFIブート

pacman -S grub dosfstools efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck
mkdir /boot/EFI/boot
cp /boot/EFI/grub/grubx64.efi  /boot/EFI/boot/bootx64.efi
grub-mkconfig -o /boot/grub/grub.cfg

GRUBのインストールが無事終わったらシステムから出て再起動

exit
umount -R /mnt
reboot

無事起動したら成功です。
お疲れ様でした!!

追記

もしこれでインストールできないとき、ArchのブートUSBを使ってシステムに入る方法を記述しておきます。
この方法は結構色んなトラブルで使うのでもし起動できなくなってシステムをに入れなくなったらやってみてください

Archiso起動後以下コマンド実行

mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot
mount /dev/sda4 /mnt/home
arch-chroot /mnt /bin/bash

※マウントはパーティションを分けてる場合全部やってください

更新

2019/04/15 EFIパーティション作成時、フラグ設定が抜けてたので追記

118
90
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
118
90