環境

Debian: ゲストOSのインストール

VirtualBox上に、次の設定でDebianをインストールします。Vagrantでbox化するため、ユーザ設定はVagrantの物にしておきます

  • rootのパスワード: vagrant
  • 初期ユーザ: vagrant
  • 初期ユーザのパスワード: vagrant
  • インストールするパッケージ: SSHサーバ, 開発パッケージ のみチェックを入れる

ここで「デスクトップ環境」からKDEを選択する事もできますが、何度かやり直してもエラー終了してしまうため、ここでは選択しませんでした。後ほど手動でKDEを入れます(おそらく、libxcb-cursor関係のエラー)

Debian: 日本語環境とタイムゾーンの設定

先にこのへん済ませておきます

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 必要なものインストール
# apt update
# apt install -y sudo vim git curl wget openssh-server locales chrony fonts-noto-cjk ibus-mozc

// 日本語設定
# locale-gen ja_JP.UTF-8
# localedef -f UTF-8 -i ja_JP ja_JP
# update-locale LANG=ja_JP.UTF-8
# update-locale LANGUAGE="ja_JP:ja"

// タイムゾーン設定
# timedatectl set-timezone Asia/Tokyo

// 時刻同期設定
# tee -a /etc/chrony/chrony.conf << EOF
server ntp0.jst.mfeed.ad.jp
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
EOF
# systemctl enable chrony

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

DebianにPlasmaをインストールします。ネットワーク環境によってはとても時間がかかります。

1
2
3
4
5
// 必要なライブラリ
# apt install -y libxcb-cursor-dev

// Plasmaインストール
# apt install -y xorg task-kde-desktop firefox-esr

Debian: 再起動

再起動して、Plasmaデスクトップ環境が起動するか確認します。

1
# reboot

Debian: box化に必要な作業

Vagrantのbox化をするにあたり、必要な作業をします

1
2
3
4
5
6
// vagrantユーザをsudoersに登録
$ su -
# vim /etc/sudoers

// よき所に追記
vagrant ALL=(ALL) NOPASSWD:ALL

ターミナルを閉じる等でsudoersを反映させたら、以下をvagrantユーザで実施します

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 公開鍵を入手&authorized_keysに登録
$ wget https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
$ cat vagrant.pub >> ~/.ssh/.authorized_keys
$ sudo chmod 600 ~/.ssh/authorized_keys
$ rm vagrant.pub

// テンポラリファイル削除
$ sudo rm -rf /var/log/*
$ sudo rm -rf /tmp/*

// aptキャッシュクリア
# apt clean
# apt autoclean

// ゼロ埋め
$ cd /var/tmp/
$ dd if=/dev/zero of=zero bs=4k
$ rm zero

// コマンド履歴の削除
$ su -
# cat /dev/null > ~/.bash_history
# exit
$ cat /dev/null > ~/.bash_history

Vagrant: box化

VMをシャットダウンして、ホストOS側でvagrant packageします

1
2
3
4
5
6
$ mkdir [任意のPATH]
$ cd [任意のPATH]
$ vagrant init

// [任意のPATH]に、package.boxファイルが出力されます
$ vagrant package --base [VM名]

Vagrant: pluginインストール(vagrant-vbguest, vagrant-disksize)

プラグインを2つインストールします

  • GuestAdditionsのインストールやアップデートを自動でやってくれるvagrant-vbguest
  • ゲストOSのディスクサイズをVagrantfileで変更できるようになるvagrant-disksize
1
2
$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-disksize

Vagrant: Vagrantfile作成

CPUなどのスペック部分は使用しているPCと相談しつつ、VMの設定をVagrantfileに書いていきます


※注意書き
現時点(2018/09)でのVirtualBox(5.2.18)については、OpenGLを利用するアプリが正常に表示されない問題を抱えているため、3DアクセラレーションはOFFに設定しています

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
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
config.vm.box = "package.box"
config.vm.define "[任意のVM名]"
config.disksize.size = '200GB' # ディスク容量
config.vbguest.auto_update = true # GuestAdditionを自動Update

config.vm.provider "virtualbox" do |vb|
vb.cpus = 4 # コア数
vb.memory = 8192 # MB
vb.gui = true

vb.customize [
"modifyvm", :id,
"--vram", "256", # VRAMは256MBを指定
"--clipboard", "bidirectional",
"--accelerate3d", 'off', # 3DアクセラレーションはOFFにする
"--hwvirtex", "on",
"--nestedpaging", "on",
"--largepages", "on",
"--chipset", "ich9",
"--ioapic", "on",
"--pae", "off", # PAE/NXも不要
"--paravirtprovider", "kvm",
]

# port forwarding
# config.vm.network :forwarded_port, guest: 15900, host: 15900
# config.vm.network :forwarded_port, guest: 15901, host: 15901
end
end

Vagrant: up

vagrant upするとGUIが起ち上がり、vagrant-vbguestプラグインによるGuestAdditionsのインストールが始まるので、インストールが終わったらvagrant reloadします

1
2
3
4
5
6
$ vagrant up

(GuestAdditionsのインストールが始まる)

// 終わったらreload
$ vagrant reload

Plasma: レンダリングの設定を変える

前述のOpenGLのバグでかなりもっさりしているので、Compositorのレンダリング設定をOpenGLからXRenderに変更します

  • [システム設定] → [ディスプレイとモニタ] → [Compositor] → 「レンダリングバックエンド」を XRender に変更