読者です 読者をやめる 読者になる 読者になる

script day.log

大学生がなんとなく始めた、趣味やら生活のことを記録していく。

Vagrant + VirtualBox on Windows10

VagrantVirtualBoxを使ってWindows上に簡単に仮想マシンを構築します。
これを導入したからといって、環境の差異による不具合が最小限に抑えられるよ!
といった意識の高い目的より簡単に仮想マシンを構築したかった方が主な目的かも…

用語は各々でお願いします(完全には理解できてない)。

インストール手順

Vagrant
https://www.vagrantup.com/downloads.html

VirtualBox
https://www.virtualbox.org/wiki/Downloadshttps://www.vagrantup.com/downloads.html

当時はVagrant1.9.3、virtualBox5.1.18でした。

上記URLよりインストーラをダウンロードして、インストールします。
インストール終了後、PCを再起動します。

再起動後、コマンドプロンプトでインストール確認。
バージョンが表示されていれば問題ありません。

>vagrant -v
Vagrant 1.9.3

Cドライブが容量が少ない方へ

ここで、私の場合はCドライブにあったVirtual VMsと.vagrant.dをDドライブに移動させました。Cドライブを圧迫させるわけにはいかなかったのです。お金がないのでSSDも小容量でしたし…

まずはVirtual VMsの移動方法ですが、VirtualBoxマネージャーを起動し、
ファイル>環境設定をクリックします。そして一般>デフォルトの仮想マシンフォルダーを容量に余裕のあるフォルダに変更します。変更後のフォルダのアドレスは把握しておいてください。

次に.vagrant.dの移動ですが、まず容量のあるドライブに.vagrant.dのデータを移すフォルダを作成し、コピーします。
※移動前のフォルダを削除するより、移動後のフォルダで正常に動作することを確認してから移動前のフォルダを削除するほうが安全でしょう
次に環境変数の設定を行います。
スタートボタンを右クリック>システムを選択する。
システム詳細設定を選択する。
環境変数を選択する。
ユーザ環境変数を追加したい場合は上の新規追加を、システム環境変数を追加したい場合は下の新規追加を選択する。
変数名はVAGRANT_HOME
変数値には移動したフォルダまでのアドレスを指定する。

以上で移動は完了です。

コマンドプロンプト上でDドライブに移動したくてcdコマンド使おうとしたんですけど、移動できなかったので、調べてみると、

>D:

でイイみたいですね。
さあ、本題に戻ります。

仮想マシン構築

Boxを見つける

以下でインストールするBoxファイルを見つけてくる。
https://atlas.hashicorp.com/boxes/search
検索結果一覧でBox名をクリックすると、以下のようにプロバイダに応じて実行すべきvagrantコマンドが記載されているので、こちらを後で実行します。

virtualbox
Hosted (430 MB)
vagrant init bento/centos-7.3; vagrant up --provider virtualbox

フォルダを作成

Vagrant専用フォルダを作成する。

>mkdir C:\Vagrant
>cd C:\Vagrant

仮想マシン用のフォルダを作成する。

>mkdir centos7.3 & cd centos7.3

Vagrantを初期化

先ほど確認したコマンドを実行します。

>vagrant init bento/centos-7.3

centos7.3フォルダにVagrantfileが作成されます。

Vagrantfileを編集

作成されたVagrantfileを適当なテキストエディタで編集します。

…
# Create a private network, which allows host-only access to the machine
# using a specific IP.
 config.vm.network "private_network", ip: "192.168.33.10"
'↑ここのコメントアウト(#)を外す'
…
'↓VirtualBoxのGUIを表示させたい場合以下のようにコメントアウト(#)を外す'
# Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
   config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
     vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
   end

仮想マシンを起動

>vagrant up

仮想マシンの起動時にエラーが起きた方へ

>vagrant up

実行したところ、ブルースクリーンになっちゃったよ~って方は、
もしかしたらHyper-VVirtualBoxが競合してしまっているかもしれません。
Hyper-Vを無効にすれば、おそらく解決すると思います。
スタートボタンを右クリック>プログラムと機能
Windowsの機能の有効化または無効化を選択する。
Hyper-Vを探して、チェックボックスのチェックを外す。
Windowsを再起動すれば OK。

ブートローダーで分ける方法もあります。
以下の内容を管理者権限でコマンドプロンプトで実行。

//ブートエントリのコピー
>bcdedit /copy {current} /d "Windows 10(less Hyper-V)"
エントリは {ea807010-88da-11e5-b8d5-84fe47afc82d} に正常にコピーされました。
//Hyper-Vを無効
>bcdedit /set {ea807010-88da-11e5-b8d5-84fe47afc82d} hypervisorlaunchtype off
この操作を正しく終了しました。
//ブートメニューの編集結果の確認
>bcdedit 

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
…
Windows ブート ローダー //元のブートメニュー項目
--------------------------------
identifier              {current} //現在のデフォルトブート項目
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 10 //元のブートメニューの表示名
locale                  ja-JP
……<中略>……
bootmenupolicy          Standard

Windows ブート ローダー //新しくコピーして追加したブートメニュー項目
--------------------------------
identifier              {ea807010-88da-11e5-b8d5-84fe47afc82d} //新規作成されたブートメニューを識別するID文字列
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Hyper-Vなし Windows 10 //新しいブートメニューの表示名
locale                  ja-JP
inherit                 {bootloadersettings}
……<中略>……
bootmenupolicy          Standard
hypervisorlaunchtype    Off //このブートメニュー項目ではHyper-Vが無効になる

これでシステムを再起動すれば、ブートメニュ―にHyper-V無効verが追加されるはず…
もし表示されないようなら[Shift]キーを押しながら[スタート]画面の[再起動]メニューを実行する。
するとトラブルシューティングのメニューなどが表示され、そこでも起動するOSを切り替えることができる。

デフォルトではタイムアウト時間が30秒に設定されているため、これを変更する。

>bcdedit /timeout 10
この操作を正しく終了しました。

>bcdedit

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
…
timeout                 10

上記のように表示されていれば、変更完了です。

登録済みBox一覧を表示

>vagrant box list
bento/centos-7.3 (virtualbox, 2.3.4)

仮想マシンにログイン

virtualBoxGUIを表示させている場合はそちらでログインします。
表示させていない場合はTeraTermなどのSSHクライアントでログインします。

接続先ホスト名 192.168.33.10
接続先ポート 22
ユーザー パスワード
vagrant vagrant
root vagrant