archLinux
VirtualBox
Xfce
lightdm

ArchLinuxをVirtualBoxにインストールし、GUI環境を構築するまで

More than 1 year has passed since last update.

概要

VirtualBoxにArchをインストールして最低限のGUI環境を構築します。
途中まではほぼ「Vagrant Box作成メモ(Arch Linux)(Windows) - Qiita」と同じです。ユーザー名やパスワードなど細かな部分が違います。
最低限と言いつつも、個人的な好みでzshやgitなど入れてますが必要無い方は入れなくて問題無いです。

注意

  • かなり初心者向けに回りくどく、画像も多めに書いてます
  • 筆者がUSキーボードなのでloadkeys jp106してません

準備

VirtualBoxのインストール

下記リンクよりダウンロードしてインストール
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

archlinuxのISO

Index of /Linux/archlinux/isoから最新日付のISOをダウンロードしておく

手順

VMの作成

  1. VirtualBoxの「新規」よりVMを作成(名前やメモリーサイズはお好みで)
  2. 仮想ハードディスクを作成する
  3. VDI(VirtualBox Disk Image)で作成
  4. 可変サイズ(お好みで)
  5. 作成したら「システム」より「EFIを有効化」にチェック
  6. ネットワークアダプタが「NAT」で有効化されていることを確認
  7. 「ストレージ」から「コントローラー: IDE」にダウンロードしたISOをセット
  8. 「OK」を押してVMを起動する

OSのインストール

ESP(EFI system partition)の作成

参考
EFI システムパーティション - ArchWiki
GNU Parted - ArchWiki

EFI system partitionを作成

parted /dev/sda
(parted) mklabel gpt
(parted) mkpart ESP fat32 1MiB 513MiB
(parted) set 1 boot on
(parted) mkpart primary ext4 513MiB 100%
(parted) quit

ファイルシステムの初期化

lsblk /dev/sda # sda1がESP、sda2がrootパーティション
mkfs.vfat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

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

mount /dev/sda2 /mnt # /mntにrootパーティションをマウント
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot # /mnt/bootにESPをマウント

パッケージのインストール

vim /etc/pacman.d/mirrorlist # Japan以外のミラーをコメントアウトする
pacstrap /mnt base

初期設定

genfstab -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt
echo [host name] > /etc/hostname # 任意
ln -sf /usr/share/zoneinfo/Japan /etc/localtime
vi /etc/locale.gen # en_US.UTF-8の行のコメントを外す
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
mkinitcpio -p linux
passwd # vagrantに設定

GRUBのインストール

参考
GRUB インストール - ArchWiki

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

エントリのコピー

参考
GRUB UEFI ファームウェアの応急処置 - ArchWiki

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

再起動

exit
umount -R /mnt
shutdown -r now

OSの設定

ログイン

[hostname] login: root
Password: 設定したパスワード

dhcpcd.serviceの有効化

dhcpcd.serviceを有効にしてインターネットに接続出来るようにする

systemctl enable dhcpcd.service
systemctl start dhcpcd.service

ユーザーの作成

useradd -m [username]
passwd [username] # パスワード設定

sudo の設定

pacman -S sudo
visudo

以下を追記

[username] ALL=(ALL) ALL

vim,wget,git,curlのインストール

pacman -S vim wget git curl

yaourtのインストール

リポジトリの追加

vim /etc/pacman.conf

以下を追記

[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

以下のコメントアウトを外す

[multilib]
Include = /etc/pacman.d/mirrorlist

リフレッシュ

pacman --sync --refresh yaourt
pacman -Syu

yaourtのインストール

pacman -S yaourt

zshのインストール

pacman -S zsh
chsh
/bin/zsh を追記
su - [username]
$ chsh
/bin/zsh を追記
$ vim ~/.zshrc
# 色を有効
autoload -Uz colors
colors

# 補完機能
autoload -Uz compinit
compinit

# ヒストリ
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

# 日本語ファイル名を表示可能にする
setopt print_eight_bit

# プロンプトを2行表示にする
PROMPT="%{${fg[cyan]}%}[%n@%m]%{${reset_color}%} %~
%# "

デスクトップ環境

ここからが本題です。

Xのインストール

まずは裸の状態のLinuxのデスクトップ環境を立ち上げてみましょう

参考
Xorg - ArchWiki

今回はVirtualBoxを使っているのでグラフィックドライバを考えなくて良い分、実際のPCにインストールするよりは楽でしょう。
まずは必要なXorgのパッケージ群をインストールします。

$ zsh
% sudo pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm # グラフィックについて問われるがdefaultでOK

試しに立ち上げます

% startx

image

ターミナルが3つ立ち上がり、右上に時計があるだけのデスクトップ環境が立ち上がりました。
とはいえ、これで最低限のデスクトップ環境は完成しましたので再起動してみます。
どのウィンドウでも良いのでsudo shutdown -r nowしてみてください。
すると、結局もとのコンソールが開いただけであまり変わり映えしないですね。
毎回startxすればデスクトップ環境が立ち上がるので、コレで終わりです。

と言いたいところですが、このままでは怒られそうなので、挙動を見ながら少しずつ環境整備していきます。

まずは自動でデスクトップ環境が立ち上がるようにします。

% vim ~/.zprofile
~/.zprofile
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

bashの方は~/.bash_profileに記述

sudo reboot or sudo shutdown -r nowで再起動

ログイン時に~/.zprofileが読み込まれる為、ログインした際に自動でxのデスクトップ環境が立ち上がるはずです。
まだ、あまり劇的に変化した感じはしないですね。

このまま次の作業に移っても良いのですが、Xのデスクトップのターミナルはスクロールがうまくいかず、使いにくいので、再度開いて下記のようにコメントアウトして再起動しておくことをオススメします。

# [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

デスクトップ環境Xfceのインストール

もう少しまともな見た目にしましょう
GNOMEなど様々なデスクトップ環境が存在していますが、今回は比較的軽量なXfceをインストールします。

参考
Xfce - ArchWiki

% sudo pacman -S xfce4 # 全てEnterでOK
% vim ~/.xinitrc # 自動でxfceが立ち上がるようにstartx時に動くスクリプトを記述
~/.xinitrc
exec startxfce4

Xfceを立ち上げてみましょう

% startx # 少し時間がかかりますが、待ちます

フォントが微妙ですが、さっきよりはPCらしくなったのでは無いでしょうか?
VirtualBox_Arch_09_04_2017_18_59_56.png

Use default configを選択します。
VirtualBox_Arch_09_04_2017_19_10_15.png

One empty panelを選択すると上下のパネルもランチャーも無いので、初めてXfceを使う人はやめた方がいいと思います。

既にお気づきの方もいるかと思いますが、ここでコメントアウトしていた~/.zprofileのコメントアウトを外すと「ログイン時zprofileを読み込み自動でXが起動」 > 「X起動時にxinitrcが読み込まれXfceが起動」されます。
ランチャーにあるターミナルのアイコンをクリックしてターミナルを開き、コメントアウトを外しましょう。

~/.zprofile
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

再起動してみます。

% sudo reboot

ログインすると自動でXfceが開いたのを確認できたかと思います。

ディスプレイマネージャ(LightDM)のインストール

ここまで来るとログイン画面ももう少し整えたいところ

参考
LightDM - ArchWiki

% sudo pacman -S lightdm lightdm-gtk-greeter
% sudo systemctl enable lightdm.service # lightdmの自動起動
% sudo reboot # 再起動

WindowsやMacで見慣れているようなログイン画面が出てきました。
VirtualBox_Arch_09_04_2017_19_32_20.png

なお、ディスプレイマネージャが起動時にまず読み込まれ、その後デスクトップ環境を立ち上げるところまでやってくれるので、zprofileとxinitrcはお役御免となります。

% rm ~/.zprofile ~/.xinitrc
% sudo reboot

如何でしょうか?
削除してもちゃんとLightDMが起動し、ログインするとXfceが立ち上がるはずです。

VirtualBox Guest Additionsをインストール

参考
VirtualBox Guest Additions- ArchWiki

解像度をVirtualBoxのウィンドウサイズに合わせて変更したり、フルスクリーンを有効にするため、Guest Additionsをインストールします。

% sudo pacman -S virtualbox-guest-utils
Enter a number (default=1): 2

VirtualBoxカーネルモジュールのロード

$ sudo modprobe -a vboxguest vboxsf vboxvideo
$ sudo vim /etc/modules-load.d/virtualbox.conf
/etc/modules-load.d/virtualbox.conf
vboxguest
vboxsf
vboxvideo
% sudo reboot

これでウィンドウサイズに合わせてゲストの解像度が勝手に変わってくれます。

今回は終わりです

次回

日本語環境の構築やXfceとLightDMの見た目を変えたりしたいです。