Ubuntuのコア部分のみインストールしてみる

この記事は「[Linux Advent Calendar 2019](https://qiita.com/advent-calendar/2019/linux)」の22日目の記事です。

## Ubuntuの最小限な環境について

Ubuntuをインストールすると、もれなく色んなものがついてくる。
デスクトップ環境はもちろんのこと、

* ファイルマネージャー
* Firefox
* gedit
* Thunderbird

などなど…
今回はそれらをすべてインストールすることなく、本当に__Ubuntuのコアの部分だけ__をVirtualBoxにインストールしてみる。

## 用意するもの

* VirtualBoxをインストールしたPC
* ネットワーク環境 

## さっそくインストール

### 1. ダウンロード

1. [ダウンロードページ](https://www.ubuntulinux.jp/download)にアクセスする。
2. [jp.ubuntu.comのダウンロードページへ]をクリックする。
3. スクロールしていくと、[その他のダウンロード方法]とあるので、それをクリックする。
4. [Network installer]から好きなバージョンをクリックする。
	* 今回は「18.04 LTS」を選択。
5. アーキテクチャの選択が出てくるので、自分の環境に合わせて選択する。
	* 今回は「32-bit Intel/AMD (x86)」を選択[^1]。
6. いくつかファイルやフォルダが出てくるが、[mini.iso]をクリックしてダウンロード

今回のUbuntu18.04 LTS (i836)のmini.isoは[こちら](http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-i386/current/images/netboot/mini.iso)

VirtualBoxのセットアップからは、全て書いているときりがないので、大事そうなところを書いていく。

### 2. VirtualBoxセットアップ

#### 名前とオペレーティングシステム

名前は仮想マシン名なので自分のお好みで良いが、タイプとバージョンはちゃんと指定しなければ動かない。

|項目名|選択内容|
|:---:|:---:|
|タイプ|Linux|
|バージョン|Ubuntu (64-bit)|
![fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/d9e6a5d9-f8c7-b6f0-aa80-fb2ae573243d.png)
	
#### メモリーサイズ・ハードディスク

今回のような最小インストールの起動条件は、公式に記載されていない。似たような環境で、Ubuntu Serverがあるので、それの起動条件に従っておけば概ね問題ない。ちなみに、Ubuntu Server 18.04 LTSの起動条件は以下の通り。

|CPU|メモリ|ディスク領域|
|:---:|:---:|:---:|
|1GHz以上（64bit）|1GB以上|5GB以上|

CPUとメモリは[このサイトから](https://help.ubuntu.com/lts/serverguide/preparing-to-install.html)。ディスク領域は、自分で一度インストールして「これくらいは必要だな」と思った数値。

#### インストールディスクの挿入

先ほどダウンロードしたmini.isoを、仮想の光学ドライブに入れておく。

1. [設定]をクリック。
2. [ストレージ]をクリック。
3. 「空」と記載された箇所をクリックし、右端の円盤マークをクリックして[仮想光学ディスクファイルを選択]をクリック。
	![fig2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/1bd82c93-ecc1-0066-29e4-ed456b19e65b.png)
	* 先程ダウンロードしたmini.isoを選択。
4. [OK]をクリック。

### 3. インストール

#### キーボードの設定

1. キーボードレイアウトを自動検出するか聞かれるが<いいえ>を選択。
	![fig3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/600906c1-58c8-abd9-ad98-99e020235936.png)
2. キーボードの国について聞かれるので、[Japanese]を選択。
	![fig4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/d8821d4b-a77c-f750-883a-47f0ef91b9c2.png)
	* USキーボードは[English(US)]を選択してください。
3. キーボードレイアウトを聞かれるので、[Japanese]を選択。
	![fig5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/6444b56f-22d8-f3f5-44aa-794a8b1cdcfa.png)
	* Macの方も[Japanese]を選択する。[Japanese - Japanese (Macintosh)]を選択すると、__以後かな入力しかできなる__のでご注意！

#### ディスクのパーティショニング

1. ここの選択は、[ガイド - ディスク全体を使う]で良い。
	![fig6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/d4d204e9-ef7e-180d-986e-ee837bcc32de.png)
	* LVMは、複数のハードディスクやパーティションを1つのディスクとして扱うことのできるディスク管理機能[^2]。今回はディスクが1つしかないので関係ない。
2. パーティショニングするディスクの選択が出てくるが、先程VirtualBoxで作成した仮想ハードディスクのみ出てくるので、それを選択。
	![fig7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/97924e0f-5a32-88a1-5bc9-0ef9521988b7.png)
3. ディスクの書き込み確認が出てくるので、<はい>を選択すれば、ベースシステムのインストールが始まる。
	![fig8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/19b7be2d-b2dc-23c9-efb6-6575e08a9885.png)

#### ソフトウェアの選択

この記事の肝となるところ。他にどのようなソフトウェアをインストールするか聞かれる。ここで何も選択せずに<続ける>を選択すれば、コア部分のみのUbuntuが出来上がる。
![fig9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/761c9af6-0f5a-a63c-1062-2f20264b6f6b.png)

#### ハードディスクへのGRUBブートローダーのインストール

GRUBブートローダーのインストールをしてよいか聞かれるので、<はい>を選択する。これをインストールしないと、せっかくインストールしても起動することができない。
![fig10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/80e5b87f-0ba2-7356-e147-b68e40407ef4.png)

#### インストール完了

最後の設定。

1. システム時刻をUTCにするか聞かれるので、特にシステム時刻にこだわりがなければ<はい>で良い。
	![fig11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/acf72399-401c-7e42-bf5b-8ebc98501393.png)

2. インストール完了したから、インストールディスクを抜けと言われるので、VirtualBoxの設定から取り出す。
	![fig12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/863213f7-da6e-6ca4-3fd2-0cf4cfbadc80.png)
	* __ディスクの取り出し（VirtualBox）__
		1. [設定]をクリック。
		2. [ストレージ]をクリック。
		3. 「mini.iso」と記載された箇所をクリックし、右端の円盤マークをクリックして[仮想ドライブからディスクを除去]をクリック。 

最後に<続ける>を選択して再起動すれば、インストールは完了。
おつかれっした。

## いよいよ起動

インストール完了でディスクを取り外し、<続行>を選択すると、再起動され、インストールされたUbuntuが立ち上がる。
![fig13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/2ae38d74-9039-36fe-67ee-50bb4080549b.png)
この画面が出たら、インストール時に設定したユーザ名を入力。
![fig14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/39600fe5-e068-4126-a59d-bde7bbe581a5.png)
続いてパスワード。
![fig15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/96401e57-1e79-812d-1968-43023d5b556d.png)
ログイン完了。色々出てくるがこの初回のみ。

## インストール後のトラブル対処

### 1. 起動時に「\*ERROR\* Failed to send log」が出る問題

おそらくデフォルトの設定で使い始めると、ログイン時にこんなのが出てくる。
![fig16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/f0d005ea-f389-39b8-7427-8148b3e116a6.png)
運用していく上で問題ないが、なんか気持ち悪い。

#### 解決方法

一旦Ubuntuはシャットダウンしておく。
1. [設定]を開く。
2. ディスプレイ内の「グラフィックコントローラ」を[VBoxSVGA]にする。
	![fig17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/fb6433b0-4023-3cc2-0b99-9dc7fd6984b5.png)

#### 設定後

![fig13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/2ae38d74-9039-36fe-67ee-50bb4080549b.png)
文句なし。

### 2. 「◆」が出る問題

使用していると、文字が「◆」になって、何が何だか分からなくなる。

![fig18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/88e481d6-806d-caf9-c8f9-68e99fa1466f.png)
とまぁ、こんな感じに。

#### 解決方法

1. ホームディレクトリにある、`.bashrc`を開`nano`か何かで開く。


	```shell:nanoで開くなら
	nano ~/.bashrc
	```

2. 末尾に以下を追加して保存する。 

	```shell:~/.bashrc
	#Fix diamond character.
	case $TERM in
  	linux) LANG=C ;;
	*)     LANG=ja_JP.UTF-8;;
	esac
	```
	* nanoで保存する場合は、`Ctrl+O`→`Y`

3. .bashrcを反映させる。

	```shell:sourceコマンド
	source ~/.bashrc
	```

#### 設定後

![fig19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163288/61405234-0c3a-d4e8-6383-3182f4ee92d2.png)
良いね。

ちなみに、インストール時に言語を英語にしておけば、これに遭遇することはない。日本語でインストールしても、CUIはどのみち英語なので、英語でインストール進めてもいいかもしれない。

## まとめ

可変サイズのvdi形式でインストールした結果、仮想ハードディスクの容量が3.5GB弱ですんだ。容量が多く食われることが大っ嫌いな自分にとってはすごい嬉しいインストール方法だった。ちなみにUbuntuで`df -BM`を叩くと、2.5GB程度使っていることになっていた。

※このあたりは人によって差異が出るかも。

Ubuntuをインストールしてもターミナルしか使わないよって人はこれで十分だと思う。少なくとも自分はこれで満足。

[^1]: 「 64-bit Intel/AMD (x86_64)」をインストールすると、言語選択で日本語を選択したときにインストール過程で[ループ現象が起きてしまう](https://forums.ubuntulinux.jp/viewtopic.php?id=20057)。
[^2]: [https://tech.nikkeibp.co.jp/it/article/Keyword/20071012/284413/](https://tech.nikkeibp.co.jp/it/article/Keyword/20071012/284413/)