Help us understand the problem. What is going on with this article?

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

引越ししました

はてなブログに引っ越しました。移行はまだ完了していませんが、今後の更新ははてなブログのみとなります
移行先 => 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

ホスト環境

  • 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

SSH接続の準備

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

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

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

c9hn283.jpg

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

fdc9hn286345.jpg

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

起動

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

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

SSHのポートを変更する

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

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

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

# systemctl restart 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 www.google.com
# timedatectl set-ntp true

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

パーティションの準備

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

# 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

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

この作業で必要なパッケージをインストールしていきます
japanサーバを一番上に移動して他のサーバをすべて削除してください

# 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-12-01
##

## Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
## Japan
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
## Japan
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch

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

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

3wnjv904587.jpg
こんな感じにすればOK

fstabの生成

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

03_fstab.JPG

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

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

# pacman -S dhcpcd
# systemctl enable dhcpcd

パスワードの設定

# passwd

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

systemd-bootの設定

systemd-boot、Grub以外にもブートローダーは意外と種類があります。お好きなものをどうぞ(rEFIndはGoogleでのヒット数で言えばGrubより多いので、そっちでもいいかもしれませんね。ただ、自分はsystemd-bootに浮気しましたが、やっぱりGrubが好きなので、今は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-lts
timeout 5
console-mode max
editor no
# 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
options root=/dev/sda2 rw

GRUBのインストール

注意!! systemd-bootの設定をしていたらここはする必要が必要ありません。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

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

nmfco286543.jpg

上記画像の赤色の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
# 
# /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

v9hn283.jpg

こうなっていたら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
...

vg20bnh75.jpg

nanoが起動します

一般ユーザーを作成したら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でインストールしていきます(タイピング数が減るので)

Guestutilsのインストール

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

$ yay -S linux-lts-headers virtualbox-guest-utils

linuxを使用している場合は、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 mousepad thunar-archive-plugin thunar-media-tags-plugin 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 ntp networkmanager network-manager-applet networkmanager-dispatcher-ntpd 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 noto-fonts firefox firefox-i18n-ja ttf-myricam breeze-snow-cursor-theme
$ 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とnetworkmanager関連を有効化する
$ sudo systemctl enable lightdm
$ sudo systemctl enable NetworkManager
$ sudo systemctl start NetworkManager-dispatcher

一度再起動する
$ 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

フォントの設定

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

終わり

お疲れ様でした

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした