0から学ぶIT技術

ローカルのドキュメント載せたり、IT関連の催し物の参加報告

ArchLinuxのインストール

こんにちは。

今回は、ArchLinux*1のインストールについて執筆します。

WindowsとArchLinuxのデュアルブート!」の記事からの方も、続きとなります。

 ArchLinuxのUSBインストールメディア*2をまだ持ってない方は、「WindowsとArchLinuxのデュアルブート!」の記事にて、作成をしておいてください(Virtualbox*3にインストールする方は、この記事からで大丈夫です)。

 今回は64bitCPUのPCに、UEFIboot、GRUB*4を使うArchをインストールします。

 

 BIOS設定の変更

virtualboxにインストールする方は飛ばしてください。

まず、USBインストールメディアを起動するには、BIOSでUSBから起動するように設定を変更します。

 

ブートデバイスの優先順位(Boot Device Priority)という項目の中の「USB」という項目が1番上に来るように、並び替えてください(USBを含む項目が複数ある場合があります)。

この際、2番目に「HDD」や「SSD」が来るようにすることをおすすめします。

設定を保存し、BIOSを抜けてください。

以下の記事に詳しく書いてあります。

http://kaeru.tuzikaze.com/usbboot/usb_memory_boot.html

 

Virtualboxの事前準備

Virtualboxにインストールする方のみ行ってください。

まず、ArchのISOファイルをダウンロードします。

Arch Linux - Downloads

から「Japan」の「jaist.ac.jp」を選択し、「archlinux-[日付]-dual.iso」を選択しダウンロードします。

(「.iso」を含む項目の中では一番上にあります。)

次に、Virtualboxをインストールします。

Downloads – Oracle VM VirtualBoxから、ダウンロードして、実行しインストールまで行ってください。

インストール時に変更は特にいらないので、「次へ」連打でいいです。

インストールしたVirtualboxを起動してください。

「新規」を押します。

名前を入力するので「Arch」と入力し、「次へ」を押します。

モリーサイズは「2050M」ほどあればいいかと思います。

ハードディスクは変更せずに「作成」を押します(仮想ハードディスクを作成する)。

ハードディスクのファイルタイプも変更せずに「次へ」を押します(VDI)。

物理ハードディスクにあるストレージも「次へ」を押します(可変サイズ)。

ファイルの場所とサイズも変更せずに「作成」を押します(8.00G)。

新しく「Arch」という項目ができますので、ダブルクリックで起動してください。

起動するとどのISOファイルを参照するか聞かれますので、右のフォルダのアイコンをクリックし、先ほどダウンロードしたArchのISOを選択します。

 

ArchLinuxのインストール

 USBインストールメディアを指して、PCを起動すると、BIOSの設定、USBインストールメディアの作成に問題がなければ、(Virtualboxの方は「Virtualboxの事前準備」に問題がなければ)ArchLinuxが起動します。

f:id:naro3:20161018100657p:plain

1番上の項目を選択します。

うまくいけばCUI*5の画面が出ます。

f:id:naro3:20161018120237p:plain

ここからは、CUIでインストール作業を進めていきます。

まず、日本語キーボード配列にするために

#loadkeys jp106

# setfont lat9w-16

 

パーティションを分ける

次に、パーティション*6を分けます。

Windowsデュアルブートの方はEFIパーティションの操作はいりません。)

#cfdisk

と打ち込むと画面が変わります。

ここでパーティションを分けます。

「Select label type」は「gpt」を選択します。

f:id:naro3:20161026233744p:plain

下の「New」を選択し、新しく作るパーティションのM、Gを入力します。(今回の例なら、512Mと20Gと打ち込みました。)

「Free Space」で「New」を選択し「Enter」

「Partition size」で「512M」と入力し、「Enter」、「/dev/sda1」ができる
「Free Space」で「New」を選択し「Enter」
「Partition size」で「Enter」、「Enter」、「/dev/sda2」ができる
(swapを作成する人は、「FreeSpaceのサイズ」ー「swapに使うサイズ」を入力)
(swap作成する人は以下を行う)
「Free Space」で「New」を選択し「Enter」
「Partition size」で「Enter」、「Enter」、「/dev/sda3」ができる

次に「Type」を選択し、それぞれ「EFI」、「Linux filesystem」、「swap*7」と設定します。

「512Mのパーティション」で「Type」を選択し、「EFI System」を選択。

「1番サイズの大きいパーティション」で「Type」を選択し、「Linux filesystem」を選択。
「20Gのパーティション」で「Type」を選択し、「Linux swap」を選択。
「Write」を選択し、「yes」と入力し、その後「Quit」を選択します。

以上の操作を終えたときの、私の例は

/dev/sda1 512M EFI
/dev/sda2 445.5G LinuxFilesystem
/dev/sda3 20G swap

となっています。

 

virtualboxにインストールの方はswapはいらないかと思います。)

virtualboxにインストールする方はこうなっていればいいです。

/dev/sda1 512M EFI
/dev/sda2 7.5G LinuxFilesystem

追記:
cfdiskでうまく行かない人もいるみたいです。
具体的には、arch-chroot打ったあとにEFIパーティションのマウントがされてないということが確認できてます。そのような方はgdiskでパーティションを分けてください。

# gdisk /dev/sda
Command (? for help):o //新品のドライブや、やり直しをしたい場合にこのコマンドを入力する
Command (? for help):n //このコマンドで新しいパーティションを作る
Permission number: 1
First sector     : Enter
Last sector      : +512M
Hex code or GUID : EF00
Command (? for help):n
Permission number: 2
First sector     : Enter
Last sector      : Enter
Hex code or GUID : 8300
Command (? for help):w
Do you want to proceed? (Y/N)y

 

パーティションのフォーマット

まずは、「EFIパーティションのフォーマットです。

# mkfs.vfat -F32 /dev/sda1

次に、「LinuxFilesystem」パーティションのフォーマットです。

# mkfs.ext4 /dev/sda2

最後に、「swap」パーティションのフォーマットです(virtualboxの方は行わない)。

# mkswap /dev/sda3

 

パーティションのマウント

ディレクトリを作成します。

# mkdir -p /mnt/boot

まずは、「EFIパーティションのマウントです。

# mount /dev/sda1 /mnt/boot

次に、「LinuxFilesystem」パーティションのマウントです。

# mount /dev/sda2 /mnt

最後に、「swap」パーティションのマウントです(virtualboxの方は行わない)。

# swapon /dev/sda3

 

インターネットへの接続

元々、有線については有効になっているので、無線を使う方のみ行ってください。

Virtualboxの方は飛ばしてください。

# wifi-menu

接続したいSSIDを選び、接続してください。

 

システムクロックの更新
# timedatectl set-ntp true

 

ミラーの選択
#vi /etc/pacman.d/mirrorlist

の中から、「Japan」のサーバーのうち「jaist」を含むサーバーを一番上に持ってきます。

## Score: 2.0, Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

viは、入力モードでないときに、「dd」で1行切り取り、「p」で貼り付けですので、うまく使用してください。
また、手動入力する方は、「i」で入力モード、「ESCキー」で入力モード終了、入力モードでないときに「:wq」で保存して終了です。

また、入力モードでないときに「x」で1文字削除もコメントアウトを消すときに便利です。
viはこのあとも使うので覚えておいてください。

 

データベースの更新もしておきます。

# pacman -Syy
ベースシステムのインストール
# pacstrap /mnt base base-devel

少し時間がかかります。

システムの設定

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

 

chroot
# arch-chroot /mnt

タイムゾーン
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc
ロケール
# vi /etc/locale.gen

中の

en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

コメントアウトをはずします(行頭の「#」を消せばいいです)。

変更を有効にします。

# locale-gen

/etc/locale.confも設定します。

# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8
# vi /etc/vconsole.conf

の中に

KEYMAP=jp106
FONT=lat9w-16

を追記します。

 

次回以降のために

インストールしておくと、次回のネットワーク接続がスムーズです。

# pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

ネットワーク接続も有効にします。

# systemctl enable dhcpcd
パスワード設定
# passwd

新しいパスワードの入力を求められますので、入力してください。

GRUB
# pacman -S grub dosfstools efibootmgr

(intel cpu搭載の方はintel-ucodeもインストール)

# pacman -S intel-ucode (intel cpuの方のみ)
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

# grub-mkconfig -o /boot/grub/grub.cfg
# mkdir /boot/EFI/boot
# cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi

Windowsとのデュアルブートの方のみ行ってください。)

# pacman -S os-prober
# grub-mkconfig -o /boot/grub/grub.cfg

 

再起動
# exit
# umount -R /mnt
# reboot

再起動の際は、インストールメディアを抜いてください。
virtualboxにインストールする方は、再起動後、1枚目の画像の画面になるので1番下の項目の「poweroff」を選択、virtualboxの設定を選択し、「ストレージ」から、archのISOを除去してください。しないとずっとループします!また、設定を選択し、「システム」から「EFIを有効化」にチェックをつけます。)
これでArchのインストールは終わりです。
しかし、まだGUIがなく、日本語入力もできないような環境なので、次回は「ArchLinuxの基本的な環境構築」という名前の記事で、基本的な環境構築をしていきます。

 

参考にしたサイト

インストールガイド - ArchWiki

Arch LinuxをVirtualBox上にインストール - Qiita

Arch Linux インストール から Xfce 快適環境を構築するまで - Qiita

VirtualBoxにArchLinuxをインストールする - Qiita

Arch LinuxとWindows 10をデュアルブートした話 - twitterよりちょっと長いの

*1:Linuxの種類のひとつ。

*2:ソフトウェアをインストールするためのプログラムやデータファイルが収録された記録媒体。

*3:別のx86ベースのホストOS上で、ほとんどゲストOSを修正することなく動作させることができるソフトウェア。

*4:GNUプロジェクトにて開発されている高機能なブートローダー。

*5:文字列を入力とし、文字列が表示されるウィンドウなどのユーザーインターフェイスの様式。

*6:ハードディスクの記憶領域を論理的に分割し、その個々の領域のこと。

*7:補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能の一つ。