Hyper-V のクイック作成で Ubuntu18.04 が簡単に導入できるように！

## 概要

新人研修用に、 Ubuntu が触れる環境を探してたのですが、
Hyper-V で簡単に Ubuntu 18.04 LTS が導入できたので、その備忘録になります。
手順をそのまま残していってるので無駄がありそう。。

## 環境

Windows 10 Pro バージョン1803（OSビルド17134.286）
※PowerShell or コマンドプロンプトで `winver` コマンドを打つと確認できます。

## 準備

Hyper-Vを有効化します。

- 管理者として PowerShell コンソールを開きます。
  - タスクバーの検索ボックスで powershell と入力していると候補にでてきます。
  - 右クリック -> 「管理者として実行」でいけます。
- 次のコマンドを実行して、インストール後に再起動します。<br>
`Enable-WindowsOptionalFeature -Online -FeatureName  Microsoft-Hyper-V -All`

##  導入

- Hyper-Vマネージャーを起動します。
  - タスクバーの検索ボックスで hyper-v と入力していると候補にでてきます。
  - 管理者で実行しなくてもいいのでそのまま起動します。
- 起動後、右側のパネルで「操作 -> クイック作成」をクリックします。
- 仮想マシンの作成画面がでるので、「Ubuntu 18.04.1 LTS」を選択します。
  - 選択後、「仮想マシンの作成」ボタンをクリックします。
- イメージ 'Ubuntu 18.04.1 LTS' をダウンロードするので待ちます。
  - サイズは 1.49GB でした
  - 長かった…
- インストールが完了し「仮想マシンが正常に作成されました」と表示されたら「設定の編集」をクリックします。
  - デフォルトが11GBなので、ディスクを拡張します。
    - 「ハードウェア -> SCSIコントローラー -> ハードドライブ -> メディア -> 仮想ハードディスク -> 編集」をクリックして、仮想ハードディスクの編集ウィザードを開始します。
    - 「操作の選択 -> 拡張」をクリックして、ディスクを 11GB -> 32GB に変更し、「次へ」をクリックします。
    - 「完了」をクリックして仮想ハードディスクの編集ウィザードを終了します。
- 設定を終了します。
- 仮想マシンの作成は以上です。

## セットアップ

セットアップしていきます。

- 仮想環境に接続すると、起動ボタンが表示されるので、クリックして起動します。
- Welcome 画面で言語選択の画面が表示されるので、適当に選択していきます。
  - English
- 次にキーボード設定
  - Japanese -> Japanese
- 次にTimezone
  - デフォルト（Tokyo）
- 次にアカウント情報の登録
  - Your name で名前を適当に
  - Your computer's name でPC名を適当に
  - Pick a username でログインIDを適当に
  - Chose a password でパスワードを適当に
  - Confirm your password  でChose a passwordと同じ文字列を入力
  - Require my password to log in を選択
- 設定完了

### ログイン

- Session: Xorg を選択
- username: さきほど登録したログインID
- password: さきほど登録したパスワード

### ターミナルを起動します

- 左下の Show Applications アイコンをクリック
- スクロールして、Terminal をクリック

#### Ubuntu側のディスク容量を拡張していきます。

現状の確認

```console
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            913M     0  913M   0% /dev
tmpfs           189M  1.4M  188M   1% /run
/dev/sda1        11G  4.6G  6.0G  44% /
tmpfs           942M     0  942M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           942M     0  942M   0% /sys/fs/cgroup
/dev/sda15      105M  3.4M  102M   4% /boot/efi
tmpfs           189M   16K  189M   1% /run/user/121
/dev/loop0       87M   87M     0 100% /snap/core/5145
/dev/loop1      141M  141M     0 100% /snap/gnome-3-26-1604/70
/dev/loop2       35M   35M     0 100% /snap/gtk-common-themes/319
/dev/loop3      2.4M  2.4M     0 100% /snap/gnome-calculator/180
/dev/loop4       13M   13M     0 100% /snap/gnome-characters/103
/dev/loop5       15M   15M     0 100% /snap/gnome-logs/37
/dev/loop6      3.8M  3.8M     0 100% /snap/gnome-system-monitor/51
tmpfs           189M   40K  189M   1% /run/user/1000
```

変更します。

```console
$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Warning: Not all of the space available to /dev/sda appears to be used, you can
fix the GPT to use all of the space (an extra 44048384 blocks) or continue with
the current setting? 
Fix/Ignore? Fix                                                           
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot, esp
 1      116MB   11.8GB  11.7GB  ext4

(parted) resizepart 1                                                     
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? Yes
End?  [11.8GB]? 34.4GB                                                    
(parted) print                                                            
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot, esp
 1      116MB   34.4GB  34.2GB  ext4

(parted) q                                                                
Information: You may need to update /etc/fstab.

$ sudo resize2fs /dev/sda1
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/sda1 is now 8360187 (4k) blocks long.
```

反映されたか確認

```console
tobaru@tobaru-Virtual-Machine:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            913M     0  913M   0% /dev
tmpfs           189M  1.4M  188M   1% /run
/dev/sda1        31G  4.6G   27G  15% /
tmpfs           942M     0  942M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           942M     0  942M   0% /sys/fs/cgroup
/dev/sda15      105M  3.4M  102M   4% /boot/efi
tmpfs           189M   16K  189M   1% /run/user/121
/dev/loop0       87M   87M     0 100% /snap/core/5145
/dev/loop1      141M  141M     0 100% /snap/gnome-3-26-1604/70
/dev/loop2       35M   35M     0 100% /snap/gtk-common-themes/319
/dev/loop3      2.4M  2.4M     0 100% /snap/gnome-calculator/180
/dev/loop4       13M   13M     0 100% /snap/gnome-characters/103
/dev/loop5       15M   15M     0 100% /snap/gnome-logs/37
/dev/loop6      3.8M  3.8M     0 100% /snap/gnome-system-monitor/51
tmpfs           189M   44K  189M   1% /run/user/1000
```

#### パッケージリストの更新

```console
$ sudo apt-get update
```

#### インストール済みのパッケージの更新

```console
$ sudo apt-get upgrade
```

更新中に grub の設定ファイルについて確認されたので、
`keep the local version currently installed`
を選択しました。

## 仮想環境のスナップショット

作業していて何か問題が起きたらこの時点に戻すようにします。
Hyper-V ではチェックポイント機能で作成できるらしいです。
仮想環境をシャットダウン後、 Hyper-V マネージャーから、「対象を選択 -> 右クリック -> チェックポイント」で作成できました。

戻すときはHyper-Vのチェックポイントの欄から、「対象のチェックポイントを選択 -> 右クリック -> 適用」でいけるようです。

## 参考サイト

[Windows 10 での Hyper-V の有効化 \| Microsoft Docs](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
[Windows 10のHyper-Vクイック作成、「Ubuntu」の導入を簡単に](http://www.atmarkit.co.jp/ait/articles/1809/18/news119.html)
[Hyper-V の Ubuntu 18.04.1 LTS のディスク容量を拡張する](https://qiita.com/nakat-t/items/87d0ae049a5e0b57e469)
[さくらのVPS+Ubuntuでapt-get upgrade時にgrubエラー](https://blog.keinos.com/20170501_2168)