chatwalk’s diary

好きなことばっか書いていきます

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

最初に

この記事はQiitaに投稿したものを加筆修正したものになります。これからの更新は、はてなブログのみとなります

元記事はこちら => VirtualBoxにArchLinuxをインストール、デスクトップ環境を構築する

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

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

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

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

間違いや、こうしたほうがいいよ!などあればコメント下さい

参考にしたURL

インストールガイド

VirtualBox - ホストからゲストに SSH

systemd-timesyncd

systemd-boot

GRUB

スワップ

SWAP領域 - Red Hat

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

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

AUR ヘルパー

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

VirtualBox - Guest Additions をインストール

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

libinput

Xfce

LightDM

PulseAudio

NetworkManager

Debian 10 (buster) - 時刻同期設定(systemd-timesyncd)!

xfce4パネルの初期化方法

ホスト環境

ゲスト環境

  • チップセット : PIIX3
  • CPU : 2 Core
  • メモリ : 4096MB
  • 準仮想化インターフェース : KVM
  • グラフィックスコントローラー : VMSVGA
  • ビデオメモリ : 128MB
  • ディスク : 64GB
  • クリッボードの共有 : 双方向
  • ドラッグ&ドロップ : 双方向
  • archlinux-2020.04.01-x86_64.iso
  • x86_64bit

必要な設定

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

f:id:chatwalk:20200327002749j:plain

SSH接続の準備

ここの設定をしたら後に出てくるコマンドをいちいち入力せずにすむので、面倒くさくなければやってもいいです なお、ここで説明するにあたって私は(ホスト : 4093, ゲスト : 59623)を選択しました。これを真似してもいいし、別の番号にしても問題はないとおもいます(使っちゃだめ、もしくは使えない番号もあるかもしれません) ではやっていきます

仮想マシンを起動する前の設定

SSH接続したい仮想マシンを選択してCTRL + sで設定が開くので、ネットワークタブを開いて表示される画面に 高度 をクリックして、ポートフォワーディングをクリックしてください

f:id:chatwalk:20200327002918j:plain

1,2,3の順でクリックしてください

f:id:chatwalk:20200327002947j:plain

右上にある緑のプラスボタンを押したらルールが作られるので、ホストポートとゲストポートを変更してください(ここではホストポート4093、ゲストポート59623です)。変更したらOKを押して設定を適用してください

起動

f:id:chatwalk:20200327005830j:plain 一番上の"Arch Linux archiso x86_64 UEFI USB" を選択、一分程待機してください

f:id:chatwalk:20200327013931j:plain この画面になったらコマンドを入力していきます

SSHのポートを変更する

仮想マシンの起動が完了したら、デフォルトで空いている22番ポートを別の番号に指定します ついでにキーボードマップとフォントを変更しておきます。英語キーボードを使っている人はキーマップを変更する必要はありません

# loadkeys jp106
# passwd
# nano /etc/ssh/sshd_config
......
# Port 22 // 最初はこんなふうに書かれているので、コメントを外して22と書いてある部分を59623にしてください
......

以上のように設定を変更したら、保存して終了してください

# systemctl start sshd

このコマンドでSSHが起動するので、あとはホスト側から接続するだけです

PowerShellを使って接続する

最新バージョンのWindows 10ならOpenSSHが入っているので、後はPowerShellを起動してコマンドを入力してゲストOSに入るだけです。コマンドは

>ssh -p 4093 root@localhost

コマンドを実行したときにこんなエラー Host key verification failed. が出たら、PowerShell側で下のコマンドを試してもう一度SSHで接続してみてください

>ssh-keygen -R '[localhost]:4093'

もしくは C:\Users\username\.ssh\known_hosts をバックアップしてから削除してください

これでゲストマシンにSSHログインできたかと思います。あとは、下に書いてあるコマンドたちをコピペしていけばインストールは完了します では続きをどうぞ

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

# ping -c 3 archlinux.jp
# timedatectl set-ntp true

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

パーティションの準備

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

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

f:id:chatwalk:20200327034640j:plain

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

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

f:id:chatwalk:20200327034825j:plain

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

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

baseと一緒にlinuxパッケージも指定する必要があります。(linuxパッケージではなくlinux-ltslinux-zen等でもOKです)

virtualbox-guest-dkmsのインストールにlinux-lts-headersが必要なので、この段階で入れておきます

# pacman -Syy
# pacstrap /mnt base base-devel linux-lts linux-lts-headers

f:id:chatwalk:20200327035331j:plain こんな感じにすればOK

fstabの生成

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

f:id:chatwalk:20200327040241j:plain

chrootでの作業

# arch-chroot /mnt
# pacman -S nano
# 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
KEYMAP=jp106
FONT=lat9w-16

f:id:chatwalk:20200327040522j:plain

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

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

ホストネームを追加する

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

# echo archlinux > /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       archlinux.localdomain archlinux
...

f:id:chatwalk:20200327041315j:plain

dhcpcdをインストール、起動されるようにする

# pacman -S dhcpcd
# systemctl enable dhcpcd

パスワードの設定

# passwd

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

systemd-bootの設定

私と同じ手順で行くならsystemd-bootは飛ばしてGrubのインストールをお願いします

systemd-boot、Grub以外にもブートローダーは意外と種類があります。お好きなものをどうぞ(rEFIndはGoogleでのヒット数で言えばGrubより多いので、そっちでもいいかもしれませんね。自分はsystemd-bootに浮気しましたが、やっぱりGrubが好きなので、今はGrubを使っています) dm-cryptなど、ディスクのフル暗号化をするなら GRUB のほうが情報量も多いし、暗号化した /boot を復号化する機能も付いてるので、そういった面で見ると GRUB のほうが何かと便利です(ただ、暗号化自体は systemd-boot もできますし、パッケージをインストールする手間も省けるので、こっちも便利ではあります)

# bootctl --path=/boot install
# bootctl update
# nano /boot/loader/loader.conf
default arch-lts
timeout 5
console-mode max
editor no
# nano /boot/loader/entries/arch-lts.conf
title Arch Linux - LTS Kernel
linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.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

f:id:chatwalk:20200327041646j:plain

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

# exit
# umount -R /mnt
# shutdown -h now

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

f:id:chatwalk:20200327042041j:plain

上記画像の赤色の1(ダウンロードした年月によってファイルの名前が変わります)をクリック → 青色の2をクリックして仮想ドライブからディスクを除去を選択してください これで仮想マシンからisoファイルがとりのぞかれました

ArchLinuxのインストールは終了しました 以降はインストール後の作業です

Swapfileの作成

もしswapが必要でなければこのステップは飛ばしてください メモリが潤沢に搭載している場合もスキップしてください。あくまでメモリが心もとない場合の手段ですので、8GB以上搭載しているなら必要ないかもしれません swapとは、マシンに搭載しているメモリでは足りなくなってしまったときにあらかじめハードディスクに作っておいた仮想メモリを一時的に使う技術...かな?詳しくは知らないので興味がある方はご自分で検索してみてください

# fallocate -l (必要なサイズ)M,G /swapfile
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# nano /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 -h

f:id:chatwalk:20200327053354j:plain

こうなっていたらOKです

一般ユーザーの作成

# useradd -m -G wheel -s /bin/bash "ユーザー名"
# passwd "ユーザー名"
# EDITOR=nano 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
...

f:id:chatwalk:20200327053729j:plain

nanoが起動します

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

systemd-timesyncdの設定

$ sudo timedatectl set-ntp true
$ sudo nano /etc/systemd/timesyncd.conf

NTPとFallbackNTPのコメントを解除して好きなNTPサーバを入れる

...
[Time]
NTP=ntp.nict.jp
FallbackNTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp
...
$ sudo systemctl restart systemd-timesyncd

pacmanの色付け

$ sudo nano /etc/pacman.conf
...
# Misc options
#UseSyslog
Color // ここのコメントを外す
#TotalDownload
CheckSpace
#VerbosePkgLists
ILoveCandy // このオプションを追加すると、パッケージをダウンロードするときにパックマンが出てくる
...

yayのインストール

この手順以降はyayコマンドを使用してパッケージのインストールをしているので、適宜pacmanコマンドに置き換えてください

AURに登録されているパッケージをインストールするためのパッケージを導入します ここではyay-bin(Yet another Yogurt)をインストールします ほかにもいろいろとあるのですが、私のおすすめは yay です aliasを設定すれば好きな文字列で使用できるので、お好きなようにしてください

$ sudo pacman -S git
$ git clone https://aur.archlinux.org/yay-bin.git
$ cd yay-bin
$ makepkg -si

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

VirtualBox Guestutilsのインストール

linux-ltsのインストールを前提に進めています

$ yay -S virtualbox-guest-utils

1) linux 2) linux-zen 3) virtualbox-guest-dkms

多分こんな感じの選択肢が出るので、3をインストールしてください

$ sudo systemctl enable vboxservice
$ sudo reboot

Xorgのインストール

次のコマンドでPCに搭載されているグラフィックカードを確認します VMSVGAは、VMware SVGAグラフィックスデバイスをエミュレートしているそうなので、xf86-video-vmwareを入れないとxorgが立ち上がりません xf86-video-fbdevとxf86-video-vesaも入れておきます

$ lspci | grep -e VGA -e 3D
$ yay -S xf86-video-fbdev xf86-video-vesa xf86-video-vmware xf86-input-libinput mesa xorg-server xorg-apps xorg-xinput xorg-xinit xorg-twm xorg-xclock xterm
$ startx

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

XFCEのインストール

XFCEとその他のパッケージをインストール
$ yay -S xfce4 mousepad thunar-archive-plugin thunar-media-tags-plugin evince ffmpegthumbnailer libgsf raw-thumbnailer xfburn xfce4-clipman-plugin xfce4-mount-plugin xfce4-notifyd xfce4-pulseaudio-plugin xfce4-taskmanager xfce4-xkb-plugin parole ristretto xfce4-whiskermenu-plugin lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings gnome-keyring networkmanager network-manager-applet adapta-gtk-theme papirus-icon-theme xdg-user-dirs-gtk gvfs engrampa zip unzip pulseaudio pulseaudio-alsa pavucontrol alsa-utils noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-dejavu ttf-roboto firefox firefox-i18n-ja ttf-myricam breeze-snow-cursor-theme
$ sudo nano /etc/lightdm/lightdm.conf
...
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
greeter-session=lightdm-gtk-greeter
...

f:id:chatwalk:20200409090825j:plain

lightdmとnetworkmanager関連を有効化する
$ sudo systemctl enable lightdm
$ sudo systemctl enable NetworkManager

一度再起動する
$ sudo reboot

日本語環境の設定

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

$ sudo nano /etc/locale.conf
LANG=ja_JP.UTF-8
# LANG=en_US.UTF-8

f:id:chatwalk:20200409091456j:plain

fcitxのインストール

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

xprofileの設定

$ nano ~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”

f:id:chatwalk:20200409091830j:plain

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

入力メソッドの追加

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

画像に操作する順番を書いているので、解説は省きます。もし、解説が必要でしたら、コメントください

f:id:chatwalk:20200410014433j:plain

f:id:chatwalk:20200410020110j:plain

f:id:chatwalk:20200410020601j:plain

f:id:chatwalk:20200410020638j:plain

こうなってたらOK

f:id:chatwalk:20200410021318j:plain

私は全角/半角を割り当てています

フォントの設定

$ sudo -i
# nano /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>

f:id:chatwalk:20200410022241j:plain

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

テーマの設定

Xfceをインストールしたときにテーマも含めていたので、ついでにテーマの設定もやっていきましょう

文章で解説すると長くなるので、画像のみとなります

f:id:chatwalk:20200410025430j:plain

f:id:chatwalk:20200410025827j:plain

f:id:chatwalk:20200410030034j:plain

f:id:chatwalk:20200410030237j:plain

f:id:chatwalk:20200410031643j:plain

タスクバーにおいてあるアイコンたちが白飛びしているのですが、もしこうなった場合、xfce4-panelの初期化することで正常に戻る場合があります。これで治らなかった場合、解決法がわからないので、別のテーマを試してみるか、デフォルトのテーマでしのいでください

初期化の手順は以下の通りです

$ xfce4-panel --quit
$ pkill xfconfd
$ rm -rf ~/.config/xfce4/panel
$ rm -rf ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
$ xfce4-panel

以上のコマンドを入力した結果、こうなります

f:id:chatwalk:20200410034054j:plain

初期化したあとちょっと調整した結果がこうなりました

f:id:chatwalk:20200410034140j:plain

終わり

長くなりましたね。お疲れさまでした