6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Vagrant] VirtualBox作成時にストレージを追加

Posted at

はじめに

Vagrantfile内でのディスク追加の記述に苦労したのでメモ。

以下の環境で実行しました

  • Vagrant 1.9.3
  • VirtualBox 5.1.20
  • ゲストはubuntu/xenial64
  • ホストはWindows7

ディスク追加

Vagrantfile内で以下の記述を行います。
ストレージのサイズは今回は200GBです。

Vagrantfile
Vagrant.configure(2) do |config|

  # 省略

  config.vm.provider "virtualbox" do |vb|
    disk_file = "./tmp/disk.vdi"
    unless File.exists?(disk_file)
      vb.customize ['createhd', '--filename', disk_file, '--format', 'VDI', '--size', 200 * 1024]
    end
    vb.customize ['storageattach', :id, '--storagectl', 'SCSI', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', disk_file]
  end
end

--storagectl'SATA''SATA Controller'といった記述をよく見ますが、上記構成では'SCSI'でした。
調べる方法は以下を参照
http://qiita.com/kjtanaka/items/8f3e92e029e46f826754#%E8%A3%9C%E8%B6%B3

また、--port1を指定しているのをよく見かけますが、上記構成では/dev/sdbはすでに使用されており、1を指定してしまうと、タイムアウトしてしまう(ことのきエラー情報等の出力はないため結構はまります)ため2を指定しています。デバイスファイルは/dev/sdcが使用されます。

その他、customizeのコマンドとオプションに関しては以下を参照して下さい。
https://www.virtualbox.org/manual/ch08.html

マウント

Vagrantfile内で以下のようにシェルを実行してマウント処理を行います

Vagrantfile
config.vm.provision "shell", path: "mount.sh"

GNU partedを用いてフォーマットを行い、マウントを実行します。
マウントポイントは今回は/optとしました。

mount.sh
#!/bin/bash -eux

apt-get -y install parted

parted /dev/sdc mklabel gpt
parted /dev/sdc mkpart primary ext4 0% 100%
mkfs.ext4 /dev/sdc1
mkdir -p /opt
mount /dev/sdc1 /opt
echo '/dev/sdc1 /opt ext4 defaults 0 0' >> /etc/fstab
6
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?