phoenix-powerArch LinuxのGUI環境設定

Arch Linuxのインストール

Archのインストールは、非常に簡単に終わります。起動に必要なものは、実際、いくつかのパッケージ群と、ブートローダーの設定くらいです。以下、最小限のインストール手順を紹介します。

はじめに、ディスクパーティションの作成、パッケージのディスクへのインストールなどを行います。

次に、パッケージをルートフォルダにインストールします。

最後に、ブートローダーGRUBを設定します。

方針としてスワップは設定しませんし、ブートディスクなども分けません。

まず、4G以上あるパソコンは、基本、スワップは不要であり、稀に遅くなる状況が存在するからです。また、homebootrootなども分けたい人は分けてください。変更、追加されるコマンドは、mkswapmountpacstrapくらいです。

コマンド

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ loadkeys jp106
# キーボードをJISに変更

$ cfdisk /dev/sda
sda1 / 256GB
sda2 空 残り全部
# ディスクパーティションを設定

$ mkfs.ext4 /dev/sda1
# ディスクをフォーマット

$ mount /dev/sda1 /mnt
# 先ほどフォーマットしたディスクで、ルートに設定したものをマウント

$ pacstrap /mnt base base-devel
# 基本コマンドなどをインストール。場合によっては、 /etc/pacman.d/mirrorlist を編集

$ genfstab -U -p /mnt >> /mnt/etc/fstab
# ディスク情報を追加

$ arch-chroot /mnt
# 指定したディレクトリをルートとしてみなします

$ pacman -S grub
# ブートローダーであるGRUBをインストール

$ grub-install --force --recheck /dev/sda
# ブートローダーをインストールするディスクを指定し、 /boot/grub にブートローダーをインストール

$ grub-mkconfig -o /boot/grub/grub.cfg
# /etc/defaults/grub からブートローダーの設定である /boot/grub/grub.cfg を作成

$ pacman -S wireless_tools wpa_supplicant wpa_actiond dialog ifplugd
$ systemctl enable netctl-auto@wlp2s0
$ systemctl enable dhcpcd.service
# インターネットの設定をしておかないと、起動した時にパッケージなどのダウンロードが出来ないので困る

$ exit
# arch-chroot を終了

$ umount -R /mnt
# /mnt をアンマウント

$ reboot
# 再起動

これで終わりです。

ヒント

  • 起動画面のBoot existing OSを選択するとHDDが起動します。

Arch Linuxが起動しなくなった時などは、CD/DVD/USBなどのライブディスクを挿入し、そこから修正していきます。具体的には以下のコマンドを実行します。この手順は、重要なので覚えておきましょう。通常は、Boot existing OSの項目を選択すると、先ほど作成したディスク、つまり、HDD/SSDが起動することになります。

起動しない時は、一番上の項目を選択して、以下のコマンドを実行し、修正します。

1
2
3
4
5
6
7
8
$ mount /dev/sda1 /mnt

$ arch-chroot /mnt

# あとは、設定ファイルを直したり、ログを見たりします。
# 再起動は、 "exit && umount /mnt && reboot" でも良いし、 "reboot" だけでも良いです。終了は "poweroff" です

$ reboot

したがって、慣れないうちは、DVDなどを挿入しっぱなしでも良いかもしれません。起動時に、Boot existing OSを選択すればよいだけです。

  • cfdiskは、wirteを選択し、yesを入力すると、一括保存できます。終了は、quitです。また、typeを選択すると、色々便利です。

  • roothomeに設定した場所を/mntにマウントします。

  • パッケージのダウンロードが出来ない場合や遅い場合は、/etc/pacman.d/mirrorlistを編集して、対象のURLを上に持ってきます。

カスタマイズ

カスタマイズでは、ユーザーの作成、設定を行っていきます。

インターネット接続

実は、この設定はインストール時に行っておくのがベストです。そのままではインターネットに接続できず、設定を変更したいのなら、再度、CD/DVDを使ってArchを起動し、そこから設定しなければならないからです。ちなみに、Archインストール時に実行した場合は、この手順は不要です。

1
2
3
4
5
$ pacman -S wireless_tools wpa_supplicant wpa_actiond dialog ifplugd

$ systemctl enable netctl-auto@wlp2s0

$ systemctl enable dhcpcd.service

ちなみに、もし、接続設定を忘れてしまった場合は、DVDから起動し、以下のコマンドを叩くしかないです。

1
2
3
4
5
6
7
$ mount /dev/sda1 /mnt

$ arch-chroot /mnt

$ pacman -S wireless_tools wpa_supplicant wpa_actiond dialog ifplugd

$ reboot

ここで使ったsystemctlコマンドは、サービスの追加などによく使いますので覚えておきましょう。また、Archでは、スクリプトの自動実行はこのコマンドが推奨されています。例えば、uimを起動時に実行したいとして、以下のように使います。ちなみに、uimは日本語入力のアプリで、下記にて紹介しているibusなどと同類のものです。したがって、実際、この手順は不要です。

~/.config/systemd/user/uim-env.service
1
2
3
4
5
6
7
8
9
[Unit]
Description=uim environment initialization
Before=xorg.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl --user set-environment XMODIFIERS=@im=uim
ExecStart=/usr/bin/systemctl --user set-environment GTK_IM_MODULE=uim
ExecStart=/usr/bin/systemctl --user set-environment QT_IM_MODULE=uim
~/.config/systemd/user/uim.service
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=uim daemon
Wants=uim-env.service
After=xorg.target

[Service]
ExecStart=/usr/bin/uim-xim
Restart=on-abort

[Install]
WantedBy=xorg.target
~/.config/systemd/user/uim-toolbar.service
1
2
3
4
5
6
7
8
9
10
[Unit]
Description=uim toolbar
PartOf=uim.service

[Service]
ExecStart=/usr/bin/uim-toolbar-of-your-choice
Restart=on-abort

[Install]
WantedBy=uim.service

以下のコマンドでサービスが有効になります。

1
$ systemctl --user enable uim.service uim-toolbar.service

ユーザー設定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# login : root
# passwd : root

$ pacman -Sy sudo

$ echo xxxx > /etc/hostname
# ホスト名を決める。user@hostnameとなり、私の場合はパソコン名称、OSなどにすることが多い

$ useradd -m -G wheel -s /bin/bash xxxx
# userをwheelグループで作成する。wheelグループは、rootの次くらいに管理ユーザー的なグループ

$ passwd
# rootのパスワードを設定

$ passwd xxxx
# userのパスワードを設定

$ su - xxxx
# userに切り替える

locale etc…

コメントアウトを外します。

~/etc/locale.gen
1
2
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
1
2
3
4
5
6
7
8
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# タイムゾーン

$ hwclock --systohc --utc
# ハードウェアクロック、時計

$ visudo
# ユーザー権限の設定

コメントアウトを外します。

1
2
Defaults env_keep += "HOME"
%wheel ALL=(ALL) ALL

GUI設定

x

デスクトップです。

1
2
3
4
5
6
7
8
$ pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm

$ lspci | grep VGA

$ pacman -S xf86-video-intel
# できない場合は、全部入りとして pacman -S xorg xorg-xinit xorg-input-drivers xorg-video-drivers を実行

$ startx

VirtualBoxの場合は、以下のコマンドを実行するとよいでしょう。

1
2
3
4
5
6
7
8
$ pacman -S virtualbox-guest-utils virtualbox-host-modules virtualbox-host-dkms

$ modprobe -a vboxguest vboxsf vboxvideo

$ echo -e "vboxguest\nvboxsf\nvboxvideo\nvboxdrv\nvboxnetadp\nvboxnetflt" > /etc/modules-load.d/virtualbox.conf

$ echo  'VBoxClient-all &' > ~/.xinitrc
# 自動起動の設定

非常に重要なXの設定は、/etc/X11/以下にあり、サービスやスタート的の設定がxinit、ハード的なものがxorg.conf.dになります。重要なので覚えておきましょう。

例えば、私は、キーボード、タッチパッドのオリジナル設定を/etc/X11/xorg.conf.d/以下に書いています。

slim

ログインマネージャーです。

1
2
3
$ pacman -S slim arhlinux-themes-slim slim-themes

$ vi /etc/slim.conf

以下の箇所をコメントアウトや編集します。

/etc/slim.conf
1
2
3
4
5
6
7
8
9
10
11
# 初回実行するコマンド
login_cmd exec /bin/zsh -l ~/.xinitrc %session

# 起動時にログインするユーザー
default_user hoge

# オートログイン有効
auto_login yes

# デーモン有効
daemon yes

awesome

ウィンドウマネージャーです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ pacman -S awesome

$ mkdir -p ~/.config/awesome
# Linux の設定ファイルは、 ~/.config 以下が推奨されています

$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/

$ pacman -S xcompmgr
# ウィンドウ透過のために必要

$ touch ~/.xinitrc
$ echo "xcompmgr -n &" >> .xinitrc
# ウィンドウ透過

$ echo "exec awesome" >> .xinitrc
# awesomeの自動起動

$ grep -n wallp /usr/share/awesome/themes/default/theme.lua
# 壁紙の設定、この箇所を編集します

ちなみに、Linuxでも他のOSでもそうですが、設定ファイルのテンプレート等を欲しい時は、/usr/shareなどのフォルダを漁ると大体見つかるのでオススメです

spacefm

ファイルマネージャーです。

1
$ pacman -S spacefm

端末設定

ターミナルで使うものなどをインストールしていきます。

1
2
3
4
$ pacman -S mlterm lilyterm terminator
# お勧めのターミナルです。私は lilyterm を使ってます

$ pacman -S zsh vim tmux w3m git curl wget openssl openssh

パッケージマネージャー

yaourt

専用のリポジトリを追加します。

/etc/pacman.conf
1
2
3
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

リポジトリを追加した後、次を実行してください:

1
2
$ pacman -Sy yaourt
# S --sync, y --refresh, -u --upgrades

日本語設定

ibus-mozc

日本語入力環境を整えます。

mozcをインストールするために専用のリポジトリを追加します。

/etc/pacman.conf
1
2
3
[pnsft-pur]
SigLevel = Optional TrustAll
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/$arch

リポジトリを追加した後、次を実行してください:

1
2
3
4
5
6
$ pacman -Sy ibus ibus-mozc

$ ibus-setup

$ /usr/lib/mozc/mozc_tool --mode=config_dialog
# 注意点としては、 mozc は root では開けません

端末からmozcの設定を開くには/usr/lib/mozc/mozc_tool module=config_dialogを実行します。

自動起動するには、以下の設定を行います。

~/.xinitrc
1
2
3
4
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -drx

また、現在は、fctixというものが人気みたいです。

fctix-anthy

1
$ pacman -S fcitx fcitx-anthy
~/.xinitrc
1
2
3
4
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx

Anthyの設定では、オリジナルを作るよりも、MS IMEなど適当なキーバインドを選びましょう。

system-font

embeddedのビットマップフォントの無効化と、ヒンティングを無効化します。

~/.config/fontconfig/font.conf
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit mode="assign" name="embeddedbitmap">
      <bool>false</bool>
    </edit>
    <edit mode="assign" name="hintstyle">
       <const>hintnone</const>
    </edit>
  </match>
</fontconfig>

ttf-font

1
$ yaourt -S ttf-migmix

高度な設定を/etc/vconsole.confですることができ、起動時にsystemdによって読み込まれます。

/etc/vconsole.conf
1
2
FONT=lat2-16
FONT_MAP=8859-2
/etc/locale.conf
1
LANG=ja_JP.UTF-8

ブートローダー設定

ダサい起動画面は、変更するのが良いでしょう。

grub

まず、テーマをダウロードしてきます。たくさん公開されてますので、検索とかすれば良いのが見つかるでしょう。

https://github.com/Generator/Grub2-themes

1
2
3
4
5
$ cd ~/Downloads

$ git clone git://github.com/Generator/Grub2-themes.git

$ cp -r ~/Downloads/Grub2-themes/{Archlinux,Archxion} /boot/grub/themes/

そして、設定ファイルを編集します。

/etc/default/grub
1
2
GRUB_THEME="/boot/grub/themes/Archlinux/theme.txt"
GRUB_GFXMODE=1024x768

次に、設定ファイルを変換します。

1
$ grub-mkconfig -o /boot/grub/grub.cfg

GRUBの設定は、元の設定ファイルである/boot/grub/grub.cfgを編集する方法と、簡易化された/etc/default/grubを編集して、grub-mkconfig -o /boot/grub/grub.cfgまたは、 update-grubコマンドで変換する方法があります。ここでは、後者の方法を採用しています。

私の場合は、ついでの設定として、以下を変更しました。

/boot/grub/grub.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz

# GRUB メニューインターフェイスを表示しないようにし、timeout 期間の経過後に default エントリをロードします。[Esc] キーを押すと、標準の GRUB メニューを表示できます
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.8-1.523)
        # Linux カーネルのデバッグ出力など
        linux $grub_boot/vmlinuz-linux root=/dev/disk/by-uuid/$the_root_uuid ro quiet

# section to load Windows
title Windows
        rootnoverify (hd0,0)
        chainloader +1

注目すべきは、linuxの最後のオプションです。

オプション 内容
ro root 読み取りマウント
rw root 読み書きマウント
quiet デバッグ出力削減
rhgb グラフィカル表示
splash/nosplash スプラッシュ表示

4.2 GRUBブート・ローダーについて

GRUB LPIC対策