Windows 10 Pro にVirtualBoxでUbuntuの仮想環境を作った話

rubyの勉強用に普段使いのノートPCに開発環境を作りました。Windowsに直接、rubyをインストールして開発するのは嫌だったので、仮想マシンを建てることにしました。
## 今回使ったもの
- ホストOS : Windows 10 Pro 64bit（バージョン 1709 / OSビルド 16299.192）
- 仮想化ソフトウェア : VirtualBox（バージョン 5.2.6）
- ゲストOS : Ubuntu（バージョン 16.04 LTS）

## VirtualBoxのインストール
以下のリンクからVirtualBoxをインストールする環境にあったインストーラーをダウンロードします。
今回はWindows用のインストーラーとExtension packをダウンロードしました。

[Oracle VM VirtualBox - Download](http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp)

Extension packにはUSB2.0/3.0コントローラーやリモートデスクトップなどの機能が含まれています。
VirtualBoxのインストール後に、ダウンロードしたExtension packのファイルをダブルクリックして適用できます。簡単です。
## Ubuntuのダウンロード
ゲストOSはUbuntuにしました。ググラビリティは大切です。
以下のリンクから Ubuntu 16.04 LTS の**ISOイメージ**をダウンロードしました。

[Ubuntu Desktop 日本語 Remixのダウンロード](https://www.ubuntulinux.jp/download/ja-remix)

## 仮想マシンの作成
VirtualBoxを起動し、メニューバーの「新規」ボタンをクリックして新規仮想マシンを作ります。
設定はこんな感じにしました。

![vm-createion-setting1.png](https://qiita-image-store.s3.amazonaws.com/0/236558/26c28cb4-649b-fd3f-9dcb-d5e1acd21096.png)
![vm-createion-setting2.png](https://qiita-image-store.s3.amazonaws.com/0/236558/e87969ee-ef84-9e13-92f1-d343d63aa879.png)

仮想マシン作成後、メニューバーの「設定」ボタンをクリックし仮想マシンの設定を行います。
今回は、ほとんどデフォルトのまま使っています。変更したのは以下。

- 「一般」→「高度」タブ→「スナップショットの保存先」を適当なフォルダに変更
- 「一般」→「高度」タブ→「クリップボードの共有」にチェック
- 「一般」→「高度」タブ→「ドラッグ＆ドロップ」にチェック
- 「システム」→「プロセッサー」タブ→「プロセッサー数」をホストコンピューターに合わせて変更
- 「ディスプレイ」→「スクリーン」タブ→「ビデオメモリー」を増量。

## Ubuntuのインストール
ゲストOSのUbuntuをVirtualBoxの仮想マシンにインストールします。

![iso-image-setteing.png](https://qiita-image-store.s3.amazonaws.com/0/236558/3609a631-1c00-1576-eb81-dc0300ec3852.png)

仮想マシンの設定画面で「ストレージ」を選択し、"空"となっている光学ドライブにUbuntuのISOイメージを設定します。光学ドライブの横にあるCDのアイコンをクリックすると、ISOファイルを指定できます。前の手順でダウンロードしておいたUbuntuのISOイメージを指定してください。

ISOイメージを指定したら、設定を保存して戻り、VirtualBoxのメニューバーから「起動」をクリックして仮想マシンを起動すればUbuntuのインストールが始まります。

![ubuntu-installation.png](https://qiita-image-store.s3.amazonaws.com/0/236558/7f828d02-c952-6d8f-4599-efa9b9747694.png)

インストール準備で上の画像のところだけを変えて、後はデフォルトで入れました。

![after-install-message.png](https://qiita-image-store.s3.amazonaws.com/0/236558/59d8bc39-074e-4e4d-eb50-5add1244cf0c.png)

私の環境では、Ubuntuインストール後に促される再起動に失敗し、上の画像のようなエラーが表示されました。
仮想化ソフトウェアが電源管理のドライバをサポートしていないため表示されているメッセージで、特に害はないそうです。

[askubuntu.com : “intel_rapl: no valid rapl domains” message upon boot](https://askubuntu.com/questions/449574/intel-rapl-no-valid-rapl-domains-message-upon-boot)

その後、手動で仮想マシンの電源断→仮想マシンの再起動をすると問題なくUbuntuにログインできました。

## Ubuntuのアップデート
![ubuntu-system-setting.png](https://qiita-image-store.s3.amazonaws.com/0/236558/b2b2beae-8e34-5412-13f8-9607879357a6.png)

ログイン後はUbuntuをアップデートします。「システム設定」の右下にある「詳細」をクリックすると、更新するダイアログが開きますので、そこから「更新をインストール」できます。

![ubuntu-update-error.png](https://qiita-image-store.s3.amazonaws.com/0/236558/f8cde4b4-cf9a-8d8d-40a8-ee527c70ad0d.png)

私の環境では「更新をインストール」したところ、エラーが表示されました。しんどい…
とりあえず「OK」ボタンを押すと「ソフトウェアの更新」というダイアログが出て、アップデート自体はできましたように見えます。
どうも16.04の初期状態では、appstreamというパッケージに不具合があったようです。面倒くさいなぁ。

[Ubuntu 16.04 その57 - ソフトウェアの更新が途中で停止する不具合と不具合の回避策（appstream）](https://kledgeb.blogspot.jp/2016/05/ubuntu-1604-57.html)
[Ubuntu 16.04 その58 - ソフトウェアの更新が途中で停止する不具合が修正されました（appstream）](https://kledgeb.blogspot.jp/2016/05/ubuntu-1604-58-appstream.html)

これで、ひとまず仮想マシン上で動くUbuntuができました。