#前置き
自分が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 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を作成し以下を記述 ※ディレクトリがない場合は作成
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
(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
(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
##ファイルシステム作成
ファイルシステムとスワップ領域の作成を行う
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4
UEFIの場合bootディレクトリはfat32で作成する
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
...
#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
以下を追記
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
#<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パーティション作成時、フラグ設定が抜けてたので追記