AzureでLinux VMにManaged Diskをマウントする

### こんな人に向けた記事
急にメモリ16Gで256GBくらいディスクがある「安い構成の」Linuxサーバーを検証用に1台用意しなければいけないけど、頼む相手がいなくて自分で用意しなければいけないけど、まとめ記事があればそれ見てポチポチやればいいから楽なのになぁ、という人向け。
ついでにCentOSの記事はぐぐれば出てくるけどUbuntuあんまりなかったぞ、という人にも。

ちなみに[SSD使って楽に構築できる方法](https://qiita.com/yukio_tokuyoshi/items/8c8b0448ee7007edcd52 "SSD使って楽に構築できる方法")もありますが、今回は比較記事としてめんどくさい方法を記載しています。

### 前提
明記していな場合は全てAzure西日本DCを利用しました。金額当は執筆時のものです。

### VMを選ぶ
メモリが多いVMシリーズは「E」(Ubuntu)
E2S v3 2CPU 16GB-RAM ￥13,332.48/month

管理ディスク
S15:256GB ￥1,268.74/month

### VMをデプロイする
Azureポータルでぽちぽちやってね。OSのテンポラリディスクをSSDかHDDのどちらにするのか、このタイミングで選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/6eb498dd-7224-cf4a-7cb0-72571bf86bc9.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/c36c7113-bf26-10ee-276b-89fe2a3a85dc.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/ee349a71-3783-c841-dc0f-9c539aa6c403.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/fb1ce53d-c76e-aee0-ddc6-ca5227a06d10.png)

### IPを固定にする
Azureポータルで仮想ネットワークのところで動的→静的に変更する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/22165991-e67b-a938-df68-f0da34996b8f.png)

### ディスクを増やす
仮想マシーン＞ディスクのところで「データディスクの追加」で追加します。
価格のところでS15は256GBとありますが、Sxxの選択肢で選ぶものではない、という軽い罠。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/b80ab522-5bf2-4d20-fca9-007e5587cc8f.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/b6b39ec6-ec44-ce27-48c1-27e613b2dcc5.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/1ada325d-7887-837f-1ef3-4276793b5a50.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/242111/4ec128f4-c8db-de07-af1b-bb45d486cf35.png)

### ディスクを初期化する（その１：パーティション作成）
ここから先はSSH接続したLinux上で作業します。<font color="Red">赤字は入力したコマンド</font>です。
要約すると「parted使ってラベルつけてセクタ指定でパーティション作成するために、先に指定可能なセクタ領域確認してからキャンセルしてから改めてパーティション作成した」です。
The closest location we can manage is 2048s to 536870878s (sectors
2048..536870878).
のTOのところの数字を使っているところを各自でやるときは変更しなければいけないっていう所だけ気を付ければよいでしょう。

tokutestadmin@tokutest201803:~$ <font color="Red">df -h</font>
Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G     0  7.9G   0% /dev
tmpfs           1.6G  8.6M  1.6G   1% /run
/dev/sda1        30G  1.3G   28G   5% /
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/sdb1        32G   48M   30G   1% /mnt
tmpfs           1.6G     0  1.6G   0% /run/user/1000

tokutestadmin@tokutest201803:~$ <font color="Red">sudo parted /dev/sdc</font>
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) <font color="Red">mklabel gpt</font>
(parted) <font color="Red">p</font>
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 536870912s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) <font color="Red">unit s</font>
(parted) <font color="Red">p</font>
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 536870912s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) <font color="Red">mkpart ext4 2048s 536870911s</font>
Warning: You requested a partition from 2048s to 536870911s (sectors
2048..536870911).
The closest location we can manage is 2048s to 536870878s (sectors
2048..536870878).
Is this still acceptable to you?
Yes/No? <font color="Red">n</font>
(parted)

(parted) <font color="Red">mkpart ext4 2048s 536870878s</font>
(parted) <font color="Red">p</font>
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 536870912s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End         Size        File system  Name  Flags
 1      2048s  536870878s  536868831s               ext4

(parted)

(parted) <font color="Red">unit GiB</font>
(parted) <font color="Red">p</font>
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 256GiB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start    End     Size    File system  Name  Flags
 1      0.00GiB  256GiB  256GiB               ext4

(parted)
(parted) <font color="Red">quit</font>
Information: You may need to update /etc/fstab.

### ディスクを初期化する（その２：フォーマット）
tokutestadmin@tokutest201803:~$ <font color="Red">sudo mkfs.ext4 /dev/sdc1</font>
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: done
Creating filesystem with 67108603 4k blocks and 16777216 inodes
Filesystem UUID: 7cf2a38e-50e7-4058-879f-1d789dea287e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

### ディスクをマウントする
$ sudo mkdir /datadisk
$ sudo chmod 775 /datadisk
$ sudo mount /dev/sdc1 /datadisk

これでマウントできたはず。再起動しても外れないようにfstabにも書く・・・前にUUIDを確認する。

tokutestadmin@tokutest201803:~$ <font color="Red">lsblk -f</font>
NAME   FSTYPE LABEL           UUID                                 MOUNTPOINT
sdb
mqsdb1 ext4                   86163c19-93ae-42af-b023-f54bffc6a976 /mnt
sr0
sdc
mqsdc1 ext4                   7cf2a38e-50e7-4058-879f-1d789dea287e /datadisk
sda
mqsda1 ext4   cloudimg-rootfs 75604357-9029-4b6f-8c13-6201b689c664 /

$ sudo vi /etc/fstab

UUID="xxxx" /datadisk defaults 1 2
を記載する。結果は以下。

tokutestadmin@tokutest201803:~$ cat /etc/fstab
UUID=75604357-9029-4b6f-8c13-6201b689c664       /        ext4   defaults,discard        0 0
<font color="Red">UUID=7cf2a38e-50e7-4058-879f-1d789dea287e /datadisk ext4 auto 1 2</font>
/dev/disk/cloud/azure_resource-part1    /mnt    auto    defaults,nofail,x-systemd.requires=cloud-init.service,comment=cloudconfig       0       2

$df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G     0  7.9G   0% /dev
tmpfs           1.6G  8.6M  1.6G   1% /run
/dev/sda1        30G  1.3G   28G   5% /
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/sdb1        32G   48M   30G   1% /mnt
tmpfs           1.6G     0  1.6G   0% /run/user/1000
<font color="Red">/dev/sdc1       252G   60M  239G   1% /datadisk</font>

でマウントされたことを確認して完了。念のためrebootしてマウント外れないかを確認しておく。
お疲れさまでした。