概要
私事ですが、初めてArch Linux をインストールして利用し始めてから2 年近くが経ちました。
Arch Linux はLinux の中でも特にカスタマイズ性に優れている魅力がありますが、一方でそれが選択肢を多くさせてインストール手順を難解にさせている部分もあるかと思います。
ここでは自分がこの2 年間で少しずつ試行錯誤してアップデートさせてきた個人的Arch Linux のインストール手順について公開しようと思います。
Arch Linux は先に述べたとおりカスタマイズ性に優れていますので、インストールする人によって全然違う環境となるものなのですが、個人的に最高と思われる環境を構築する手順を公開しますので、これからArch Linux のインストールに挑戦する人や、既にインストールされている方々にも、一つの参考と慣ればと思います。
前提条件
今回は以下の環境にArch Linux をインストールするものとして説明を進めていきます。
- インストール環境概要
項目 値 備考 ブート形式 (U)EFI BIOS 形式のboot については、手順が冗長になりすぎるため今回は割愛します。 デスクトップ環境 KDE Linux でも特に人気で美麗なデスクトップ環境を今回はインストールしていきます。
USB ディスクを作成する
USB boot イメージを作成するワークステーション上でArch Linux のiso ファイルをdd コマンドによって書き込みます。
今回は/dev/sdc
が対象のUSB であることを想定しています。
# wipefs --all /dev/sdc
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdc status=progress && sync
イメージを書き終えたらUSB を抜き取り、インストール対象のマシンに差し込みUSB から起動するようにBIOS を調整してください。
UEFI によるセキュリティでUSB からイメージをUSB イメージから起動できない場合
Windows などがプレインストールされていたマシンにArch Linux をインストールする場合など、UEFI によるSecure boot 機能が有効になっている可能性があり、USB からArch Linux を起動できないことがあります。
その場合はUEFI Set Up (BIOS) 画面を開きこのSecure Boot 機能を無効にしてください。手順についてはお使いのハードウェアベンダ毎に異なるので割愛します。
UEFI ブートかBIOS ブートかを確認する
今回のArch Linux インストール手順はUEFI ブート環境下を想定しています。BIOS ブート環境下ではありません。
そこで、お使いの環境がUEFI ブートであることを確認するために、USB に焼いたArch Linux を起動した時に/sys/firmware/efi/efivars ディレクトリと、その下にファイルがあることを確認してください。
$ ls -l /sys/firmware/efi/efivars
また、その他の方法としてUSB にインストールしたArch Linux を起動する時のPOST 画面がどのようになっているかでもUEFI boot かBIOS boot かを確認することができます。
これより先の手順はUEFI ブート環境でのインストールを想定していますのでご了承ください(とはいっても最初のパーティション作成とGRUB インストールのオプションを幾つか変更すれば良い程度ですが…)。
また、最近のハードウェアを使っていながらBIOS 起動となってしまった場合はUEFI(BIOS) セットアップ画面からUEFI ブートがOFF になっていないか確認してください。最近のハードウェアではUEFI 起動のON/OFF の切り替えができるようになっているものがあるようです。
パーティションを作成する
USB からArch Linux を起動したらArch Linux をローカルのディスクにインストールするためにパーティションを作成します。
今回はローカルのディスクは/dev/sda
にあるものとし、既にパーティションなどは削除されているものとします。
今回は次のような構成でパーティションを作成していこうと思います。
- パーティション構成
partition size file system mount point /dev/sda1 512MiB vfat /boot/efi /dev/sda2 512MiB ext4 /boot /dev/sda3 256 GB (残り全部) xfs /
今回swap パーティションは作成せず動的に容量が変化するswap ファイル方式で実現することにします。
UEFI について簡単に理解する
UEFI はOS とfirmware 間でやり取りをするための変数を定義しており、これらはboot-loader とOS 起動時の初期の段階でのみ使用されます。
これらの変数ではfirmware のUEFI Boot Manager やUEFI Secure Boot Protocol で使用される鍵の管理等に使用することができます。
また、これらの変数として具体的にどのようなものがあるかを調べるには、efivar -l
コマンドを実行することで確認できます。
$ efivar -l
Linux カーネルにおけるUEFI 変数のサポートについて
Linux kernel version 3.8 からはuser space にefivarfs(EFI VARiable FileSystem) インタフェース(CONFIG_EFIVAR_FS) を通して変数をファイルとして公開しています。
そのファイルは/sys/firmware/efi/efivars
ディレクトリ以下にあり、変数毎のサイズ制限はなく且つUEFI Secure Boot 変数をサポートしています。
UEFI 変数のサポートについて
USB 等のメディアからArch Linux のiso を起動したら、あなたのコンピュータがUEFI をサポートしているか確認してみ見てください。
具体的な手順としては例えば以下のような手順があります。
(1) EFI Runtime Services が有効となっていること
-> zgrep CONFIG_EFI /proc/config.gz
コマンドでCONFIG_EFI=y
が表示されれば有効
(2) Kernel processor bitness とEFI bitness が同じである。/sys/firmware/efi
ディレクトリが存在していれば同じである
(3) kernel がEFI モードで起動されていること
-> /sys/firmware/efi
ディレクトリが存在していればOK
* kernel のEFI Runtime Service がkernel コマンドライン経由でdisable になっていないこと(i.e noefi
kernel parameter が使われていないこと)
-> dmesg | grep noefi
で何もヒットしない。
[ 0.000000] Lernel command line: BOOT_IMAGE=/vmlinuz-linux ... noefi ...
* efivarfs ファイルシステムが/sys/firmware/efi/efivars
にマウントされていること(注釈1)
* efivar -l
コマンドでエラー無く変数がリストアップされること
(注釈1) マウントされていない場合は下記ページを参考
https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Mount_efivarfs
上記を実施してもEFI 変数のサポートが働いていない場合、以下の事を確認してみてください。
/sys/firmware/efi/efivars/dump-*
ファイルの存在を確認する。存在する場合はそれらを削除してマシンを再起動する。
上記で改善しない場合はefi_no_storage_paranoia
kernel parameter をつけた上で起動し、efi 変数を書き込み/変更する可能性のあるkernel efi variable storage space チェックを防いだ上でマシンを再起動します。
Userspace tools
- EFI 関連の tool
コマンド名 説明 備考 efivar UEFI 変数を操作するためのlibrary, tool https://github.com/vathpela/efivar-devel efibootmgr UEFI Firmware Boot Manager Settings を操作するtool https://github.com/vathpela/efibootmgr-devel uefivars PCI 関連のinfo も含めたEFI 変数を出力するtool https://github.com/fpmurphy/Various/tree/master/uefivars-2.0 efitools UEFI secure boot platforms を操作するtool Ubuntu's Firmware Test Suite Intel, AMD のPC のfirmware に問題がないかをチェックするtool https://wiki.ubuntu.com/FirmwareTestSuite/
これからの説明はArch Linux をインストールするコンピュータがUEFI に対応していること前提で進めていきます。
パーティションを作成する
EFI System Partition (ESP) はFAT32 でフォーマットされたパーティションである必要があります。パーティションのサイズですが、推奨は512MiB ですがそれよりも小さいもしくは大きいサイズも可能です。
Microsoft の記述(1)によると最小で100MB となっていますが、それはUEFI の規定では述べられていません。
セクターあたり4 KB となっているドライブでは少なくとも256 MiB 必要となり、その理由はFAT32 形式のドライブのパーティションの最小サイズが(4 KB * 65527 = 256 MB)となっているためです。
- 参考: EFI System Partition
Arch Linux を焼いたUSB ISO 等でArch Linux を起動したらgdisk コマンドでパーティションを作成していきます。
# sgdisk -z /dev/sda
# timeout 10 dd if=/dev/zero of=/dev/sda bs=4M
# sgdisk -n 1:0:+512M -t 1:ef00 -c 1:"EFI System" /dev/sda
# sgdisk -n 2:0:+512M -t 2:8300 -c 2:"Linux filesystem" /dev/sda
# sgdisk -n 3:0: -t 3:8300 -c 3:"Linux filesystem" /dev/sda
フォーマット
新規作成したパーティションをフォーマットします
# mkfs.vfat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkfs.xfs /dev/sda3
インストール先デバイスのマウント
Arch Linux をインストールするために先程フォーマットしたパーティションをマウントしていきます。
root ファイルシステムを/mnt
ディレクトリにマウントし、/boot
, /boot/efi
用に作成したファイルシステムをそれぞれ/mnt/boot
, /mnt/boot/efi
ディレクトリへマウントしていきます。
# mount /dev/sda3 /mnt
# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
任意: Wi-Fi ネットワーク接続
インストール対象のマシンを無線LAN でつないでパッケージインストールする場合は、wifi-menu
を使って接続してください。
# wifi-menu
あとは画面の指示にしたがって、SSID をパスワードを入力しします。
Arch Linux のインストール
mirror の選択
これから/dev/sda
にArch Linux をインストールしていきますが、それらのファイル類は/etc/pacman.d/mirrorlist
に記載されているリポジトリからダウンロードされます。
USB などから起動しているlive システム上では全てのリポジトリが有効になっていますが、作業場所の地理的な事情を考慮してパッケージをダウンロードするリポジトリの優先度が変えられるようになっています(とりあえずインストールできれば良いという場合は特に変更する必要はありません)。
/etc/pacman.d/mirrorlist
ファイルを開き日本のリポジトリを上に持ってきます。
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
base パッケージのインストール
pacstrap
コマンドを使用してbase パッケージをインストールしていきます。
base-devel
パッケージはArch User Repository(AUR) もしくはArch Build System(ABS) からパッケージをビルドする時に必要になりますので、ここでインストールしておきます。
その他、今回はboot loader としてgrub の関連するパッケージ、また、ネットワークに関する設定を適用するために必要なnetctl、xfs ファイルシステム、エディタのvi 等々、必要なパッケージをこの時点でインストールしておきます。
# #有線LAN 接続マシンの場合の例
# pacstrap /mnt base base-devel linux linux-firmware grub dosfstools efibootmgr netctl xfsprogs vi
# #無線LAN 接続マシンの場合の例。Wi-Fi に関するパッケージもこの時点で入れてしまう
# pacstrap /mnt base base-devel linux linux-firmware grub dosfstools efibootmgr netctl iw wpa_supplicant networkmanager dialog xfsprogs vi
fstab の作成
genfstab
コマンドを使用してfstab ファイルを作成します。
# genfstab -U /mnt >> /mnt/etc/fstab
ファイルシステムへchroot
arch-chroot
コマンドを使用して作業場所のroot を変更します。
# arch-chroot /mnt /bin/bash
Locale の設定
Arch Linux のLocale をen_US.UTF-8 UTF-8
に設定します。
/etc/locale.gen
をvi 等のエディタで開き、en_US.UTF-8 UTF-8
, ja_JP.UTF-8 UTF-8
のコメントを解除し、locale-gen
のコマンドを実行します。
...
en_US.UTF-8 UTF-8
...
ja_JP.UTF-8 UTF-8
...
sed で実行する場合。
# sed -i -e 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
# sed -i -e 's/#ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen
# grep -E '^(en_US|ja_JP)\.UTF\-8 UTF\-8' /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
# locale-gen
LANG 環境変数を設定するために/etc/locale.conf
ファイルを作成し、以下の値を記入します。
echo "LANG=en_US.UTF-8" > /etc/locale.conf
time zone
time zone を日本に設定します。
# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Asia
5) Atlantic Ocean
6) Australia
7) Europe
8) Indian Ocean
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 4 // <- "4" を入力
Please select a country whose clocks agree with yours.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 19 // <- "19" を入力
The following information has been given:
Japan
Therefore TZ='Asia/Tokyo' will be used.
Local time is now: Sat Jun 18 21:00:10 JST 2016.
Universal Time is now: Sat Jun 18 12:00:10 UTC 2016.
Is the above information OK?
1) Yes
2) No
#? 1 // <- "1" を入力
You can make this change permanent for yourself by appending the line
TZ='Asia/Tokyo'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Tokyo
/usr/share/zoneinfo
ディレクトリ配下にZone/Subzone
形式でTZ 値がありますので、それを/etc/localtime シンボリックリンクを作成して参照できるようにします。
※今のArch Linux では既に/etc/localtime のシンボリックリンクがUTC 向けに作成されてしまっている。本手順は不要!?
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ハードウェアクロックの時間のズレを調整します。
# hwclock --systohc --utc
Initramfs
mkinitcpio
コマンドを使用してinitramfs のイメージを作成します。
mkinitcpio
コマンドの特殊なオプションについては/etc/mkinitcpio.conf
内に記載されています。
# mkinitcpio -p linux
boot loader のインストール
grub でboot ローダーをインストールします。
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --boot-directory=/boot/efi/EFI --recheck
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
boot ローダのインストールに成功したらchroot のセッションを抜けてマシンを再起動します。
デスクトップ環境のインストールについては後ほど行います。デスクトップ環境をインストールする前に一旦Linux が起動することを確認します。
# exit
# shutdown -h now
// -> Arch Linux のiso が入ったUSB を抜く
// -> Power On
起動後、CUI でログイン画面が出れば成功です。以降もroot でログインして作業を続行します。
任意: Wi-Fi 接続の実施
Wi-Fi 接続のみのlaptop の場合、後のパッケージインストール時に困るので、一旦CLI でWi-Fi 接続をしておきます。
# systemctl start NetworkManager
# systemctl enable NetworkManager
# nmcli d wifi list
> 接続可能なSSID を確認する
# nmcli d wifi connect <SSID> password <password>
> 接続完了
hostname の設定
/etc/hostname
ファイルを編集してhostname
を設定します。
arch
ネットワークの設定
有線LAN DHCP、有線LAN 固定IP、無線LAN の設定方法について説明していくのであったものを選択してください。
有線LANの設定(DHCP)
下記コマンドを実行しますが、 の部分には自分のマシンに表示されるインタフェースを指定するようにしてください(ip a コマンド等で確認)。
# systemctl enable dhcpcd@<interface>.service
ex)
# systemctl enable dhcpcd@enp0s31f6.service
有線LANの設定(固定IP)
/etc/netctl
ディレクトリに設定ファイルを作成します。
サンプルの設定ファイルがあるので、それを参考に設定するとよいでしょう。
# cd /etc/netctl
# cp ./examples/ethernet-static ens33
※"ens33" はネットワークインタフェース名
# vi ens33
Description='Ethernet config of ens33.'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.102/24')
Gateway='192.168.1.1'
DNS=('8.8.8.8' '8.8.4.4' '192.168.1.1')
設定ファイルを編集したら、作成した設定を有効化します。
# netctl enable <profile>
↓ ↓ ↓
# netctl enable ens33
上記コマンドを実行することで、OS を再起動したときに自動的にインタフェースも起動するようになります。
無線LAN の設定
無線LAN アンテナが付いている場合は、無線LAN のパッケージもインストールしておきます。
# pacman -S iw wpa_supplicant dialog
Arch Linux ではいくつかの方法で無線LAN に接続する方法がありますが、個人的にはデスクトップ環境がある場合はNetworkManager を使う方法が直感的で操作できて簡単なのでおすすめです。
# systemctl enable NetworkManager
# systemctl start NetworkManager
NetworkManager が起動すると、デスクチップ(後ほどインストールします)の右下のタスクトレイにネットワークアイコンが表示されるので、それをクリックして無線LAN 接続を直感的に行えるようになります。
補足: 無線LAN アンテナの情報について取得する(マイナーな無線LAN カードのドライバ調査)
無線LAN に関しては追加で無線LAN ドライバが必要になるかもしれません。
メジャーなIntel 系チップの無線LAN アンテナであれば大抵はkernel のベースパッケージに含まれているので追加でインストールする必要は無いでしょう。
その他の無線LAN ドライバについては以下のページを参考にしてください。
- Installing driver/firmware
自分が使っている無線LAN アンテナが何なのかについて情報を取得する方法について説明していきます。
lspci
コマンドを実行し、以下のような結果を確認することができます。
# lspci | grep -i wireless
04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
上記結果のバス番号:スロット番号.機能番号
である04:00.0
の詳細情報を検索してみます。
# lspci -vv -s 04:00.0
......
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
上記の結果より、この無線LAN アンテナはiwlwifi
モジュールを要求し、現在iwlwifi
モジュールを使っています。
更にmodinfo
コマンドを使ってiwlwifi
のmodule の詳細を見る場合は次のようにします。
# modinfo iwlwifi
......
また、ベンダとプロダクトコードを取得するコマンドは次のようになります。
# lspci -n -s 04:00.0
04:00.0 0280: 8086:24f3 (rev 3a)
0280 -> Network controller
8086:24f3 -> Intel
上記の結果より必要なWifi ドライバのインストール方法をGoogle 等で検索してインストールを実施してください。
今回は既にドライバがインストール済みだったので特に何もしません。
一般ユーザ(管理者権限あり)の作成
後々デスクトップをインストールした時にログインするためのユーザを作成しておきます。
# useradd -d /home/tsutomu -s /bin/bash -m tsutomu
# passwd tsutomu
# usermod -aG wheel tsutomu
# EDITOR=vi visudo
# %wheel ALL=(ALL) ALL
↓ ↓ ↓
%wheel ALL=(ALL) ALL
pacman の設定
/etc/pacman.conf
ファイルにColor
とILoveCandy
のを追加します。
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
ILoveCandy
KDE を導入する
任意: KDEを入れる前に、NVIDIA のグラフィクスカードを搭載しているマシンでNVIDIA 専用のドライバを使用する
インストールするマシンにNVIDIA のグラフィクスカードが搭載されている場合、汎用的なドライバではなくNVIDIA 用のドライバを入れて少しでも良いグラフィクスを実現したいですよね?
そんな場合はマシンがどのグラフィクスカードを積んでいるのかをしっかり調べ、それに適したドライバをインストールしてあげるようにしましょう。
なお本手順はIntel 内臓のグラフィクスを使用するにしろ、NVIDIA のグラフィクスカードを使用するにしろ、とりあえずデスクトップ環境を動かしたいというのであれば実施不要ですので飛ばしてしまってください。
以下手順はNVIDIA GTX680 を搭載しているマシンで実際に行ったときの手順です。
グラフィクスカードの特定
lspci コマンドを使ってあなたのマシンが搭載しているグラフィクスカードの情報を取得します。
# lspci -k | grep -A 2 -E "(VGA|3D)"
lspci: Unable to load libkmod resources: error -12
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 680] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] GK104 [GeForce GTX 680]
Kernel driver in use: nouveau
GeForce GTX 680 を積んでいることがわかります。
出力結果から、はっきりとしたグラフィクスカードがわかりずらい場合は、"NV" や"GK" で始まるグラフィクスカードのコードネームを確認します。
そして以下のページからコードネームとグラフィクスカードの対応表を見て、どのカードであるかをより詳細に特定してください。
- https://nouveau.freedesktop.org/wiki/CodeNames/
自分の場合は"GK104(NVE4)" がコードネームで、形式的にはGeforce GTX600番台、Geforce GTX700番台で形式がだいたい同じっぽいことがわかります。
ドライバのダウンロード
カードの型番が特定できたら、カードに応じたドライバをインストールしていきます。
大雑把なドライバの選択肢としては以下の通りです。
- 選択すべきドライバ一覧
カードの種類 意味 GeForce GTX 400 より新しいもの nvidia, nvidia-dkms(DKMS サポート), nvidia-lts(長期サポート) のいずれかのドライバをインストールしてください。もし搭載しているカードが結構新しいやつで、これらのドライバで動かない場合、nvidia-beta (AUR リポジトリ: https://aur.archlinux.org/packages/nvidia-beta/) をインストールしてみたら動くかもしれません。 GeForce 8000/9000, ION 100-300 番台(コードネーム: NV5x, NV8x, NV9x, NVAx) の場合(2006 - 2010 年代メインの製品) nvidia-340xx, nvidia-340xx-lts のいずれかをインストールしてください。 GeForce 6000/7000 番台(コードネーム: NV4x, NV6x)の場合(2004 - 2006 年代メインの製品) nvidia-304xx, nvidia-304xx-lts のいずれかをインストールしてください。
今回はGTX 680 なのでnvidia パッケージをインストールすることにしました。
- nvidia パッケージのインストール
# pacman -S nvidia
resolving dependencies...
:: There are 3 providers available for libgl:
:: Repository extra
1) libglvnd 2) nvidia-304xx-utils 3) nvidia-340xx-utils
Enter a number (default=1): # <- デフォルトの1 で良いはず
nvidia ドライバをインストールすることでnouveau
ドライバがブラックリスト化(新しくインストールしたり、利用したりしないようにすることだと思う)されるので、それを反映させるために一旦再起動してください。
# shutdown -r now
再起動したら、グラフィックスカードを確認してnvidia ドライバが利用されていることを確認します。
# lspci -k | grep -A 2 -E "(VGA|3D)"
lspci: Unable to load libkmod resources: error -12
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 680] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] GK104 [GeForce GTX 680]
Kernel driver in use: nvidia ## <- "nvidia" となっていれば成功
KDE をインストールする
-
KDE
-
Arch Linuxにデスクトップ環境KDEを導入する
# pacman -S plasma-meta
すると、下記のような選択肢が出力されます。
resolving dependencies...
:: There are 3 providers available for libgl:
:: Repository extra
1) libglvnd 2) nvidia-304xx-utils 3) nvidia-340xx-utils ## <- nvidia のドライバが既にインストールされている場合はおそらく出ないメニュー
Enter a number (default=1): # <- そのままEnter。CPU 内臓のグラフィクスを利用する場合や、NVIDIA グラフィクスカードを搭載していてもとりあえず動かせれば良い場合は"libglvnd" を選択
:: There are 2 proviers available for phonon-qt5-backend:
:: Repository extra
1) phonon-qt5-gstreamer 2) phonon-qt5-vlc
Enter a number (default=1): # <- そのままEnter
:: There are 2 providers available for libx264.so=148-64
:: Repository extra
1) libx264 2) libx264-10bit
Enter a number (default=1): # <- そのままEnter
......
:: Proceed with installation? [Y/n] Y # <- "Y" を入力してEnter
KDE のインストールが完了したら、追加で以下のパッケージを入れておきます。
# pacman -S mesa-libgl xorg
任意: Intel 内臓グラフィクスを利用する場合、追加でインストールするパッケージ
Intel 内臓のグラフィクスを使用している場合、追加でxf86-video-intel
をインストールしてください。
# pacman -S xf86-video-intel
任意: Nvidia グラフィクスカードを利用していて、Xorg の設定をする場合
本手順は、Nvidia ドライバとKDE をインストールしてそれでもデスクトップがうまく動かない(例えばマルチモニタ等)、もしくは細かい設定をしたいという場合のみ実施してください。
Xorg の設定を行う場合、以下のコマンドを実行します。マルチディスプレイ環境にしたい場合などは、それらのディスプレイが繋がれた状態で実行すると良いでしょう。
# nvidia-xconfig
上記コマンドを実行することで/etc/X11/xorg.conf
ファイルに定義が追加されます。一部だけ抜粋すると、グラフィクスデバイスやモニタについての設定がされていることがわかります。
...略...
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
...略...
nvidia-xconfig コマンドを使って自動的に設定ファイルを作成しましたが、手動で設定する場合は/etc/X11/xorg.conf
ファイルに追記するよりも/etc/X11/xorg.conf.d/20-nvidia.conf
に記述するのが良いでしょう。
任意: VMWare 環境で動かしている場合、open-vm-tools のインストール
VMWare 環境上で動かしている場合はopen-vm-tools パッケージもインストールしておきましょう。
# pacman -Sy open-vm-tools xf86-video-vmware
インストール後、vmtoolsd
の起動設定をします。
# systemctl enable vmtoolsd
# systemctl start vmtoolsd
sddm の設定ファイル作成
デスクトップテーマの設定ファイルを作成します。
# sddm --example-config > /etc/sddm.conf
任意: sddm のログイン画面テーマの設定
テーマを自分のお気に入りのbreeze
に変更します。
......
[Theme]
Current=breeze
......
次にsddm の自動起動設定を行います。
これでLinux 起動時にデスクトップ画面が自動的に起動するようになります。
# systemctl enable sddm
その他必要なパッケージのインストール
Linux デスクトップ環境で基本的な操作をするために必要なターミナル(gnome-terminal) とファイルエクスプローラのdolphin をはじめ、その他開発作業などで必要なもの等、適宜好みのパッケージをインストールしてください。
# pacman -S gnome-terminal dolphin git atom unzip
再起動とデスクトップ画面表示の確認
# shutdown -r now
再起動後にログイン画面が表示されれば成功です。以上にて基本的なArch Linux のインストール作業は完了です。
あとはあなたの好きなようにLinux にどんどんカスタマイズしていってください!
これ以降も説明は続けますが、完全に私個人の好みの設定になりますのであくまでも参考程度にご覧いただければと思います。
デスクトップ環境のカスタマイズ
ログイン画面が出てきてログインに成功したら、ガシガシデスクトップ環境をカスタマイズしていきます。
Web ブラウザのインストール
Web ブラウザは個人の好みで大きく分かれるところですが、ここでは自分のお気に入りのGoogle chrome(AUR), Firefox の2 つをインストールします。
Arch Linux ではChromium は公式リポジトリからインストールすることができますが、Google chrome は標準で用意されておりません。
なのでここではAUR で有志により公開されているものを利用させていただきます。
$ git clone https://aur.archlinux.org/google-chrome.git
$ cd google-chrome
$ makepkg -sri
Firefox は公式リポジトリからインストールできます。
# pacman -Sy firefox
Chromium をインストールしたい場合も公式リポジトリからインストールできます。
# pacman -S chromium
任意: デスクトップテーマの変更
KDE Plasma のデフォルトではウィンドウの縁や背景がシルバー調のテーマになっていますが、これをDark 系のテーマに変更します。
System Settings -> Colors Breeze Dark
を選択肢、Apply ボタンを押下します。
任意: ログイン画面の背景色を変更する
breeze テーマのログイン画面の背景はビビットな水色で、個人的に少し眩しく感じます。
少し色が明るすぎるのでこれをグレー色に変更したい場合はbreeze のtheme ファイル/usr/share/sddm/themes/breeze/theme.conf
をエディタで開きcolor
変数の箇所をあなたの好みの値(例えばグレーであれば"#333333")に変更します。
color=#1d99f3
↓ ↓ ↓
color=#333333
任意: スクリーンロック画面の設定
ユーザのスクリーンロック画面(操作しないで暫く放置しておくと現れるパスワードの入力画面)の背景も変更します。
また、ログインした後にユーザが何も操作しないで放置しておくと標準で5 分経過するとログイン画面に戻りロックされるようになっています。
仕事使いでは5 分くらいの短い時間にしておくべきでしょうが、家使いでは5 分は少し短いのでこれを30分に変更します。
Alt + F1 (or metakey)
を押下しLauncher を起動します。
System Settings -> Desktop Behaivior(Workspace内) -> Screen Locking(左ペイン内)
をクリックし、Screen Locking メニューを開きます。
Lock screen automatically after:
にチェックを入れ、30 mins を設定します。
次に背景色を変更します。Activation タブからWallpaper Type: Plain Color
を選択し、Color は#333333
としました。
また、Lock screen をクリックして、スクリーンロック画面を出すためのコマンドをMeta + L
(Windows と同じ)にしておくのも良いでしょう。
設定が完了したらApply ボタンを押下します。
任意: アカウントのアイコンを変更する
Launcher からSystem Settings
をクリックします。
左側のペインからAccount Details
をクリックし、アカウントの画像を変更してください(画面を見れば感覚的にわかると思うので詳細は割愛します)。
【実施不要】Launcher (スタートメニュー)起動キーの設定(ksuperkey)
※最近のArch Linux ではこの事象は解消されているので実施不要。備忘録として残しておきます。
KDE では標準でLauncher(スタートメニュー)を開くためにショートカットキーとしてAlt + F1
が標準で割り当てられています。
Alt + F1
では使用しにくいので、今回はmeta key(Windows 用のキーボードで窓のマークのキー) を押すことでLauncher を起動するようにキーを割り当てます。
ksuperkey
は公式のリポジトリから取得することができるようになっています。
# pacman -S ksuperkey
インストールが完了したら、ksuperkey
コマンドを実行します。
# ksuperkey
コマンドを実行したら、meta key を押下してみて、Launcher が起動することを確認してください。
内部的にはmeta key を押下して約500msec 以内にmeta key を離すとAlt + F1
と同じキーが送られ、Launcher が起動するようになっています。
これは単純にAlt + F1
を送信するだけなので、例えば事前にショートカットキーの設定でLauncher の起動をAlt + F1
以外に割り当てていた場合、起動しないので注意してください。
また、標準ではmeta key を押下してから500ms 以内に離すとLauncher が起動し、それ以上押しっぱなしの場合は今までのmeta key (ショートカットキーの組み合わせの一部のkey)として使用することができます。
このタイムリミットを変更したい場合は-t
オプションを使用してksuperkey -t 300ms
といったように、キーを話すまでの時間を変更することができます。
次に ksuperkey がKDE 起動時に実行されるように登録します。
KDE にログインするユーザのHOME ディレクトリ配下に以下のファイルを作成します。
$ cat << EOF > ~/.config/autostart/ksuperkey.desktop
[Desktop Entry]
Exec=ksuperkey
Icon=system-run
Path=
Terminal=false
Type=Application
EOF
ファイルを作成したら再ログインし、meta key でLauncher が起動することをテストしてみてください。
【実施不要】HHKB (キーボード)で右◇でランチャーが起動するようにする(キーバインドの変更)
※最近のArch Linux ではこの事象は解消されているので実施不要。備忘録として残しておきます。
特殊なシチュエーションですが、自分はHHKB の右◇
キーにmeta キーを割り当てています。
しかしArch Linux で右◇
キーを押下してもLauncher が起動しませんでした。
そこで、問題なく動作している他のキーボードをArch Linux に接続し、meta キーのキーコードを取得、同様にHHKB の右◇
のキーコードを取得し比較してみることにしました。
すると問題なく動いているキーボードでは134(Super_L)
が取得できたのに対し、うまく動かなかったHHKB の右◇
は133(Super_R)
が割り当てられていることが確認できました。
そこで、ここではうまく動いている方のキーコードに合わせHHKB の右◇
も134(Super_L)
に割り当てれば解決するはずなので、134(Super_L)
を割り当てるように設定をしていきます。
- 参考) Xmodmap でお好みのキーバインド
~/.Xmodmap
ファイルを作成し、以下の内容を書きます。
remove mod4 = Super_R
keycode 134 = Super_L NoSymbol Super_L
ファイルを作成したらxmodmap
コマンドを実行し、右◇
キーを押下してKDE メニューが開くことを確認してください。
$ xmodmap ~/.Xmodmap
本設定は再ログインしたときにはリセットされてしまうので、ログインしたときにxmodmap
コマンドが自動的に走るように設定します。
ここでは先ほど紹介したksuperkey を使用している想定でログインしたときにxmodmap
コマンドが実行されるようにします。
ksuperkey.desktop
ファイルにxmodmap
コマンドを追加します。
$ cat << EOF > ~/.config/autostart/ksuperkey.desktop
[Desktop Entry]
Exec=xmodmap ~/.Xmodmap && ksuperkey
Icon=system-run
Path=
Terminal=false
Type=Application
EOF
これでログインしたときに自動的にxmodmap
コマンドが実行されるようになりました。
任意: マシン起動時もしくは終了時にプロセスの起動・停止が極端に遅い問題を解消するためにwatch dog タイマーを導入する
マシン起動時、もしくは終了時に以下のようなメッセージが出力されて、起動/停止に数分以上待たされることがあります。この現象はwatch dog タイマーを導入してハングアップしているプロセスを定期的に検出して例外処理を行わせてあげることで解消することがあります。
[ ***] A start job is running for ......
[ ***] A stop job is running for ......
watch dog は公式リポジトリからインストールできます。
# pacman -S watchdog
# systemctl enable watchdog.service
# systemctl start watchdog.service
watch dog でタイムアウト検出するための値を設定します。この値については正解を述べることは難しいので、自己責任でお願いします。
DefaultTimeoutStartSec=15s
DefaultTimeoutStopSec=15s
任意: dotfiles のインストール
自分用のdotfiles 等がある人はそれもインストールしちゃいましょう。
自分の場合は以下のコマンドでインストールできるようにしているので、以下のコマンドを実行して再ログインして完了です。
$ bash <(curl -o- https://raw.githubusercontent.com/TsutomuNakamura/dotfiles/master/install.sh)
自作のdotfiles はzsh をメインに作成されているので、ログインシェルをzsh に切り替えることも忘れずに実施します。
# usermod -s /bin/zsh tsutomu
日本語フォントのインストール
日本語フォントをインストールして、Web ブラウザなどで綺麗に日本語を表示させましょう(自分の場合はdotfiles をインストールするときに自動的にフォントもダウンロードしてくるので今回はこの作業は不要)。
日本語のフォントとして個人的におすすめなのは
* M+ フォント (or Ricty系)
* IPA フォント
* 源ノ角
あたりです。
IPA フォントと源ノ角フォントはリポジトリからインストールできるので、以下のコマンドを実行するだけです。
pacman -Sy adobe-source-han-sans-jp-fonts otf-ipafont
M+ フォントはダウンロードサイト(https://ja.osdn.net/projects/mix-mplus-ipa/) からzip ファイルをダウンロード(例: migu-1m-YYYYMMDD.zip)してきて、中身をログインユーザのホームディレクトリは以下~/.local/share/fonts
に置いて以下のコマンドを実行します。
$ ~/.local/share/fonts
※Ricty 系のフォントも同じ手順です
なお、英語フォントではInconsolata が個人的にお勧めで、vim やtmux のairline で使用するパッチ適用済みフォントは以下の場所からダウンロードできます。
- https://github.com/ryanoasis/nerd-fonts
これらのフォントもM+ とかと同様にユーザのホームディレクトリ配下のfonts ディレクトリに置いてfc-cache コマンドを実行すればOK です。
日本語入力IME: Mozc のインストール
http://note.kurodigi.com/post-0-19/
今回はfcitx-mozc をインストールして日本語入力ができるようにします。
fcitx-mozc
とそれに関するパッケージをインストールします。
# pacman -S fcitx-im fcitx-configtool fcitx-mozc
fcitx-mozc
を使用する各ユーザの環境変数を~/.xprofile
設定します。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
設定が完了したら、一度ログアウトして再度ログインします。
Input Method としてMozc を追加します。
右下のタスクトレイからキーボードのマークを右クリックし、Configure
をクリックします。
Input Method としてMozc が表示されるようになれば追加完了です。
もし使っているキーボードが完全に日本語配列のキーボードである場合、English のキーボードは不要なので-
をクリックしてEnglish のキーボードは削除してください。
半角/全角キーで全角日本語と半角英数字の入力をきりかえられるようにする(日本語キーボードの場合は不要)
デスクトップの右下のタスクバーからキーボードのマークを右クリックし、Configure
をクリックします。
Input Method Configuration
ウィンドウが出てきたらGlobal Config
タブをクリックし、Trigger Input Method
をクリックして、英字キーボードと日本語キーボードの切り替えに使用するHotKey を設定します。
自分の環境ではAlt +
` に設定しておきました。
ショートカットのカスタマイズ
必要に応じてショートカットキーのカスタマイズを行います。
KDE 全般のショートカットのカスタマイズ
KDE のメニュー
-> System Settings
-> Shortcuts
- 編集するショートカット一覧
ショートカット名 変更前 変更後 変更できる場所 備考 Run Command Alt + Space Meta + R Global Shortcuts -> Run Command -> Run Command ウィンドウのポップアップメニューのために退避する Walk Through Windows of Current Application Alt + ` Alt + | Global Shortcuts -> KWin -> Walk Through Windows of Current Application 開いているアプリケーションを切り替えるショートカット。Alt + Tab で使えるのでこちらは退避 Window Operations Menu Alt + F3 Alt + Space Global Shortcuts -> KWin -> Window Operations Menu Web ブラウザやエクスプローラでサイズの変更や移動をするポップアップメニューを出すショートカット Move Zoomed Area Downwards Meta + Down None Global Shortcuts -> KWin -> Move Zoomed Area Downwards 使わないので削除 Move Zoomed Area to Left Meta + Left None Global Shortcuts -> KWin -> Move Zoomed Area to Left 使わないので削除 Move Zoomed Area to Right Meta + Right None Global Shortcuts -> KWin -> Move Zoomed Area to Right 使わないので削除 Move Zoomed Area Upwards Meta + Up None Global Shortcuts -> KWin -> Move Zoomed Area Upwards 使わないので削除 Quick Tile Window to the Bottom None Meta + Down Global Shortcuts -> KWin -> Quick Tile Window to the Bottom 現在アクティブなウィンドウを下側に詰めるショートカット Quick Tile Window to the Left None Meta + Left Global Shortcuts -> KWin -> Quick Tile Window to the Left 現在アクティブなウィンドウを左側に詰めるショートカット Quick Tile Window to the Right None Meta + Right Global Shortcuts -> KWin -> Quick Tile Window to the Right 現在アクティブなウィンドウを右側に詰めるショートカット Quick Tile Window to the Top None Meta + Up Global Shortcuts -> KWin -> Quick Tile Window to the Top 現在アクティブなウィンドウを上側に詰めるショートカット
上記のショートカットを設定済みのテキストデータがあるので、System Settings のShortcuts からインポートすることができます。
- https://gist.github.com/TsutomuNakamura/f52dfe162bf1dbf8c10369c2c5ca88a9
CapsLock とCtrl キーの入れ替え
CapsLock とCtrl キーの入れ替えを実施します。
System Settings -> Input Devices -> Advanced -> Ctrl position -> Swap Ctrl and Caps Lock
を選択し、Apply キーを押下します。
参考
-
UEFI パーティション
-
EFI System Partition (Secure Boot を実現するにはこれを作成する必要がある)
- https://wiki.archlinux.org/index.php/EFI_System_Partition
- Master Boot Record
-
https://wiki.archlinux.org/index.php/GUID_Partition_Table
- GUID Partition Table
-
https://wiki.archlinux.org/index.php/Master_Boot_Record
- gdisk でEFI パーティションを作成する
-
UEFI でArch Linux をインストールする手順
-
grub を使用してUEFI boot を設定する
-
VMware に Arch Linux をインストール
-
UEFI のboot エントリを削除する
-
[SOLVED] Timed out waiting for device sys-subsystem-net-devices-