VirtualBoxにArchLinuxをインストール、デスクトップ環境を構築する


最初に

VirtualBoxにArchLinuxをインストール、XFCEをインストールしていきます

このページではArch Linuxのインストールから、Xfceの設定までを書きます

UEFI-GPT環境でインストールします、その他の環境でインストールする方はご注意ください

なおディスクの名前は /dev/sda とします

そのうち NetworkManager のインストールから設定を加筆しますのでお持ちください

間違っている所があればコメント下さい


参考にしたURL

インストールガイド

systemd-timesyncd

systemd-networkd

systemd-boot

GRUB

スワップ

SWAP領域 - Red Hat

ネットワーク設定 - IP アドレスの設定

コンソールのカラー出力 - pacman

AUR ヘルパー

Arch Linux の安定化 - linux-lts パッケージをインストール

VirtualBox - Guest Additions をインストール

Xorg - ドライバーのインストール

libinput

Xfce

LightDM

PulseAudio


ホスト環境


  • Windows 10 Home 64bit

  • VirtualBox 6.0.8


ゲスト環境


  • CPU : 2 Core

  • メモリ : 4096MB

  • ビデオメモリ : 256MB

  • ディスク : 64GB

  • archlinux-2019.06.01-x86_64.iso

  • x86_64bit


必要な設定

"EFIを有効化"にチェックを入れないとGPT/UEFI環境で起動できないので必ずチェックを入れてください

cno28735.jpg


起動

00_uefi.JPG

一番上の"Arch Linux archiso x86_64 UEFI USB" を選択、一分程待機してください

WS000000.JPG

この画面になったらコマンドを入力していきます


キーマップやフォントの設定

キーマップを日本語にしてフォントを変更します

# loadkeys jp106

# setfont lat9w-16

英語キーボードならこの手順は必要ありません


通信できているかの確認、時計を合わせる

# ping -c 3 www.google.com

# timedatectl set-ntp true

VirtualBoxのネットワーク設定をデフォルト設定にしていれば、とくに特別な設定は必要ありませんので、このまま進めていきます


パーティションの準備

パーティションを切っていきます。今回は parted を使っていますが、他に gdisk などがあり、使いやすいものを試用してください。ただし、UEFI + GPT に対応していないものは使用しないでください

# parted /dev/sda

(parted) mklabel gpt
(parted) mkpart ESP fat32 1MiB 551MiB
(parted) set 1 esp on
(parted) mkpart primary ext4 551MiB 100%
(parted) print //このコマンドで正常にパーティショニングできているか確認できます
(parted) quit

archlinux_parted.jpg


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

# mkfs.vfat -F32 /dev/sda1

# mkfs.ext4 /dev/sda2
# mount /dev/sda2 /mnt
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot

02_format_mount.JPG


ベースシステムのインストール

この作業で必要なパッケージをインストールしていきます

日本サーバを一番上に移動させます

ctrl+w japan+enterで検索、ctrl+kで切り取り、ctrl+uで一番上に貼り付けctrl+xで終了

# nano /etc/pacman.d/mirrorlist

*URLの順番はあくまで一例ですので、自分の国に一番近いミラーリストを上に貼り付けてください


/etc/pacman.d/mirrorlist

##

## Arch Linux repository mirrorlist
## Filtered by mirror score from mirror status page
## Generated on 2019-06-01
##

## Japan
Server = http://ftp.jaist.ac.jp/pub/
...


# pacman -Syy

# pacstrap /mnt base base-devel

3wnjv904587.jpg

こんな感じにすればOK


fstabの生成

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

# cat /mnt/etc/fstab

03_fstab.JPG


chrootでの作業

# arch-chroot /mnt

# nano /etc/locale.gen
en_US.UTF-8,ja_JP.UTF-8のコメントアウトを外す
# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8


キーマップを日本語にする

# nano /etc/vconsole.conf


/etc/vconsole.conf

KEYMAP=jp106

FONT=lat9w-16

04_keymap.JPG


タイムゾーンを東京にする

# ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# hwclock --systohc --utc


ホストネームを追加する

ホスト名はとりあえずlocalhostにしておくといいかもです

# echo localhost > /etc/hostname

# nano /etc/hosts

...
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost
::1 localhost
127.0.1.1 localhost.localdomain localhost
...

vb958.png


systemd-networkd等が起動されるようにする

このコマンドでとりあえずsystemd-networkd,systemd-resolvedが起動されるようにしておきます

細かい設定はOSのインストール後にします

面倒くさかったら systemd-networkd じゃなくて、 dhcpcd とか、使ったことはありませんが、 netctl でもいいとおもいます dhclient はむかーし使ったことがあるんですが、タイプ数が多いのですぐに別の物に変えました(ならなんでsystemd-networkd,systemd-resolvedなんていうタイプ数が多くて2つも有効化しなきゃいけないものを採用したんだという話なんですが、なんとなくです (そのうち dhcpcd に変えるかもしれません (ちょくちょく変えてゴメンね!) ) )

# systemctl enable systemd-networkd

# systemctl enable systemd-resolved


パスワードの設定

# passwd

文字は表示されていないませんがきちんと打てているので安心してください


systemd-bootの設定

GRUB派だったんですが、systemd-bootもよかったので、GRUBからこっちにします

ただ、 dm-cryptなど、ディスクのフル暗号化をするなら GRUB のほうが情報量も多いし、暗号化した /boot を復号化する機能も付いてるので、そういった面で見ると GRUB のほうが何かと便利です(ただ、暗号化自体は systemd-boot もできますし、何かをpacmanでインストールする手間も省けるので、こっちも便利ではあります)

# bootctl --path=/boot install

# bootctl update
# nano /boot/loader/loader.conf


/boot/loader/loader.conf

default arch

timeout 5
console-mode max
editor no

# nano /boot/loader/entries/arch.conf


/boot/loader/entries/arch.conf

title          Arch Linux

linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw


GRUBのインストール

systemd-bootの設定をしていたらこの段は必要ありません

# pacman -S grub dosfstools efibootmgr

# 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

06_grub_install.JPG


仮想マシンのシャットダウン

# exit

# umount -R /mnt
# shutdown -h now

仮想マシンがシャットダウンされたらディスクを除去してください

取り敢えずArchLinuxのインストールは終了しました

以降はインストール後の作業です


ネットワークの設定

OSをインストールした段階では、まだネットワークは有効(正確にはきちんと設定がされていないのでエラーが出る)になっていません

なので、通信できるように設定をします

# mv /etc/resolv.conf /etc/resolv.conf.orig

# ln -s /run/systemd/resolve/resov.conf /etc/resolv.conf
# ip a
# nano /etc/systemd/network/20-wired.network


/etc/systemd/network/20-wired.network

[Match]

Name=en* //ここには ip aで出てきた出力の下に出てきた、例えば、enp0s3などの英数字を入れてください

[Network]
DHCP=yes




0gbnv389o547.jpg

あとはサービスを再起動してネットワークが通じるようになります

# systemctl restart systemd-networkd

# systemctl restart systemd-resolved
# ping -c 3 www.archlinux.org // ここは一度失敗します
# ping -c 3 www.archlinux.org // 二度実行するとなぜか成功します


Swapfileの作成

もしswapが必要でなければこのステップは飛ばしてください

メモリが潤沢に搭載している場合もスキップしてください。あくまでメモリが心もとない場合の手段ですので、8GB以上搭載しているなら必要ないかもしれません

swapとは、マシンに搭載しているメモリでは足りなくなってしまったときにあらかじめハードディスクに作っておいた仮想メモリを一時的に使う技術...かな?詳しくは知らないので興味がある方はご自分で検索してみてください

# fallocate -l (必要なサイズ)M,G /swapfile

# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# nano /etc/fstab


/etc/fstab

# 

# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=7d04edf6-cd65-4c96-bee5-355008c803f7 / ext4 rw,relatime,data=ordered 0 1

# /dev/sda1
UUID=F17B-8386 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2

/swapfile none swap defaults 0 0 # ここを追加してください


# reboot

スワップがきちんと機能しているか確認しましょう

# free -m

v9hn283.jpg

こうなっていたらOKです


一般ユーザーの作成

# useradd -m -G wheel -s /bin/bash "ユーザー名"

# passwd "ユーザー名"

# visudo

...

##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL // ここをコメントアウトする

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
...

08_visudo.JPG

vi(*vimではありません)が起動します

アンコメントしたい場所にカーソルを合わせてxを押すと文字を削除されます

一般ユーザーを作成したらRootからログアウトして作成したユーザーからログインしてください


pacmanの色付け

$ sudo nano /etc/pacman.conf


/etc/pacman.conf

...

# Misc options
#UseSyslog
Color // ここのコメントを外す
#TotalDownload
CheckSpace
#VerbosePkgLists
...


yayのインストール

AURに登録されているパッケージをインストールするためのパッケージを導入します

ここではyay(Yet another Yogurt)をインストールします

ほかにもいろいろとあるのですが、私のおすすめは yay です

aliasを設定すれば好きな文字列で使用できるので、お好きなものをどうぞ

$ sudo pacman -S git go // goはyayのコンパイル時に依存パッケージとしてインストールされるので、ここでインストールする必要はありません。気分の問題です

$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
$ cd
$ rm -rf yay

これでyayがインストールされました。以降はyayでインストールしていきます(タイピング数が減るので)


lts-kernelのインストール

仮想環境にインストールする場合、lts-kernelにしたほうがよさげなのでインストールしておきます

まあ、実機にインストールす場合でもlts-kernel入れといたほうがいいとも聞きますし、入れておいて損はないと思います

$ yay -S linux-lts linux-lts-headers

$ sudo cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-lts.conf
$ sudo nano /boot/loader/entries/arch-lts.conf


/boot/loader/entries/arch-lts.conf

title Arch Linux - LTS Kernel

linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.img

$ sudo nano /boot/loader/loader.conf


/boot/loader/loader.conf

default arch-lts

timeout 5
editor no

$ sudo reboot

$ uname -r

2vc9hn385467.JPG


Guestutilsのインストール

$ yay -S virtualbox-guest-utils

linux kernel を使用している場合は、2のvirtualbox-guest-modules-archを選択する

linux-ltsなど他のカーネルを使用している場合は、1を選択

$ sudo systemctl enable vboxservice

$ sudo reboot


Xorgのインストール

次のコマンドでPCに搭載されているグラフィックカードを確認します

VirtualBoxの場合はxf86-video-vesaです

xf86-video-fbdevも入れておくといいらしいです

$ lspci | grep -e VGA -e 3D

$ yay -S xf86-video-vesa xf86-video-fbdev mesa xorg-server xorg-apps xorg-xinit xorg-twm xorg-xclock xterm

$ startx

Xorgが立ち上がれば成功です

タッチパッドを認識しない場合はlibinputか、xf86-input-libinputを入れて設定してください


XFCEのインストール

XFCEとその他のパッケージをインストール

$ yay -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings adapta-gtk-theme papirus-icon-theme xdg-user-dirs-gtk gvfs engrampa zip unzip pulseaudio pulseaudio-alsa pavucontrol alsa-utils noto-fonts-cjk ttf-dejavu ttf-roboto firefox firefox-i18n-ja ttf-myricam breeze-snow-cursor-theme

xfce4-goodiesは、私にとっての必要最小限を選択してインストールします

fc2wohn89b354.jpg

$ sudo nano /etc/lightdm/lightdm.conf


/etc/lightdm/lightdm.conf

...

#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
greeter-session=lightdm-gtk-greeter
...

10_lightdm.JPG

lightdmを有効化する

sudo systemctl enable lightdm

一度再起動する
sudo reboot


日本語環境の設定

環境変数日本語用に変更する

$ sudo nano /etc/locale.conf


/etc/locale.conf

LANG=ja_JP.UTF-8

# LANG=en_US.UTF-8

11_locale.JPG


fcitxのインストール

$ yay -S fcitx-im fcitx-configtool fcitx-mozc


xprofileの設定

$ nano ~/.xprofile


/home/USER/.xprofile

export GTK_IM_MODULE=fcitx

export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”

12_xprofile.JPG

一度ログインしなおす変更されていなければ再起動を繰り返す


入力メソッドの追加

fcitxをインストールしてすぐに日本語の入力ができるというわけではなく、入力メソッドの設定からMozcを追加する必要があります

左下の+をクリックして

WS000000.JPG

Mozcを選択してOKをクリック

WS000001.JPG

Mozcが追加されたらOKです

WS000002.JPG

後は好みのキーバインドを設定して入力メソッドの設定は完了です

WS000003.JPG


フォントの設定

$ su

# nano /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf


/etc/fonts/conf.avail/71-no-embedded-bitmaps.conf

<?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>

13_font.JPG

# ln -s /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf /etc/fonts/conf.d/71-no-embedded-bitmaps.conf

# reboot


終わり

お疲れ様でした