39
39

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.

VirtualBox 4.3.14でCentOS7対応Guest Additionsをインストールする

Last updated at Posted at 2014-07-12

はじめに結論

2014-07-21編集: 2014-07-15にリリースされたVirtualBox 4.3.14で動作確認がとれたので、それに合わせて編集しました。

centos7.0のvagrant boxを作るpacker templates.jsonを作った - Qiitaによると、CentOS 7.0にVirtualBox Guest Additionsをインストールするとエラーになるそうです。

vagrantに非公式のtemporary fixであるvStone/vagrant-centos7_fixを適用した上でVirtualBox 4.3.14を使えばGuest Additionsもインストール出来ました。

Vagrantに改変が必要

暫定対応として上がっているvStone/vagrant-centos7_fixのプラグインをインストールすればOKです。

手順

CentOS7のVagrant boxをビルド

VirtualBox 4.3.14ならcentos7.0のvagrant boxを作るpacker templates.jsonを作った - Qiitaで紹介されている packer.json のそのままでboxをビルド出来ます。

% cd
% git clone https://github.com/eigo-s/packer_templates
% cd packer_templates/centos7.0/x86_64 
% packer build packer.json
virtualbox-iso output will be in this color.

==> virtualbox-iso: Downloading or copying Guest additions
    virtualbox-iso: Downloading or copying: file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
    virtualbox-iso: Downloading or copying: http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-NetInstall.iso
==> virtualbox-iso: Starting HTTP server on port 8081
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 3213)
==> virtualbox-iso: Executing custom VBoxManage commands...
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --memory 1024
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --cpus 1
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Waiting 10s for boot...
==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Waiting for SSH to become available...
==> virtualbox-iso: Connected to SSH!
==> virtualbox-iso: Uploading VirtualBox version info (4.3.14_RC1)
==> virtualbox-iso: Uploading VirtualBox guest additions ISO...
==> virtualbox-iso: Provisioning with shell script: scripts/base.sh
==> virtualbox-iso: Provisioning with shell script: scripts/vagrant.sh
    virtualbox-iso: % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    virtualbox-iso: Dload  Upload   Total   Spent    Left  Speed
    virtualbox-iso: 100   409  100   409    0     0    793      0 --:--:-- --:--:-- --:--:--   792
==> virtualbox-iso: Provisioning with shell script: scripts/virtualbox.sh
    virtualbox-iso: mount: /dev/loop0 is write-protected, mounting read-only
    virtualbox-iso: Verifying archive integrity... All good.
    virtualbox-iso: Uncompressing VirtualBox 4.3.14_RC1 Guest Additions for Linux............
    virtualbox-iso: VirtualBox Guest Additions installer
    virtualbox-iso: Copying additional installer modules ...
    virtualbox-iso: Installing additional modules ...
    virtualbox-iso: Removing existing VirtualBox non-DKMS k[  OK  ]dules
    virtualbox-iso: Building the VirtualBox Guest Additions kernel modules
    virtualbox-iso: Building the main Guest Additions modul[  OK  ]
    virtualbox-iso: Building the shared folder support modu[  OK  ]
    virtualbox-iso: Building the OpenGL support module     [  OK  ]
    virtualbox-iso: Doing non-kernel setup of the Guest Add[  OK  ]
    virtualbox-iso: Starting the VirtualBox Guest Additions[  OK  ]
    virtualbox-iso: Installing the Window System drivers
    virtualbox-iso: Could not find the X.Org or XFree86 Window System, skipping.
==> virtualbox-iso: Provisioning with shell script: scripts/cleanup.sh
    virtualbox-iso: Loaded plugins: fastestmirror
    virtualbox-iso: Cleaning repos: base extras updates
    virtualbox-iso: Cleaning up everything
    virtualbox-iso: Cleaning up list of fastest mirrors
==> virtualbox-iso: Gracefully halting virtual machine...
==> virtualbox-iso: Preparing to export machine...
    virtualbox-iso: Deleting forwarded port mapping for SSH (host port 3213)
==> virtualbox-iso: Exporting virtual machine...
    virtualbox-iso: Executing: export packer-virtualbox-iso --output output-virtualbox-iso/packer-virtualbox-iso.ovf
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Running post-processor: vagrant
==> virtualbox-iso (vagrant): Creating Vagrant box for 'virtualbox' provider
    virtualbox-iso (vagrant): Copying from artifact: output-virtualbox-iso/packer-virtualbox-iso-disk1.vmdk
    virtualbox-iso (vagrant): Copying from artifact: output-virtualbox-iso/packer-virtualbox-iso.ovf
    virtualbox-iso (vagrant): Renaming the OVF to box.ovf...
    virtualbox-iso (vagrant): Compressing: Vagrantfile
    virtualbox-iso (vagrant): Compressing: box.ovf
    virtualbox-iso (vagrant): Compressing: metadata.json
    virtualbox-iso (vagrant): Compressing: packer-virtualbox-iso-disk1.vmdk
Build 'virtualbox-iso' finished.

==> Builds finished. The artifacts of successful builds are:
--> virtualbox-iso: 'virtualbox' provider box: ./vagrant-box/centos-7.0-x64_64-virtualbox.box

以下のコマンドでboxを追加します。

% vagrant box add centos7 vagrant-box/centos-7.0-x64_64-virtualbox.box

vagrant upでハマった

Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos7"
  config.vm.network :private_network, ip: "192.168.33.36"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
  end
  config.vm.synced_folder ".", "/vagrant"
end

というVagrantfileを作って試してみましたが、エラーになりました。

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: cent7_default_1405160474845_75801
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

ARPCHECK=no /sbin/ifup eth1 2> /dev/null

Stdout from the command:

ERROR    : [/etc/sysconfig/network-scripts/ifup-eth] Device eth1 does not seem to be present, delaying initialization.


Stderr from the command:

調べてみるとIssue with Consistent Network Device Naming on CentOS 7 · Issue #4171 · mitchellh/vagrantに一時的な修正版としてvStone/vagrant-centos7_fixを作ったというコメントがありました。

% git clone https://github.com/vStone/vagrant-centos7_fix
% cd vagrant-centos7_fix
% vagrant plugin install vagrant-centos7_fix
Installing the 'vagrant-centos7_fix' plugin. This can take a few minutes...
Installed the plugin 'vagrant-centos7_fix (0.0.1)'!

Vagrantfileのあるディレクトリに戻ってVMを削除して作りなおしたら、今度は成功しました!

% vagrant destroy -f
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: cent7_default_1405161101264_28164
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /Users/hnakamur/vagrantfiles/cent7

ゲストにログインして、Vagrantファイルで指定したIPアドレス192.168.33.36が設定されていること、/vagrantに共有フォルダがマウントされていることを確認しました。

% vagrant ssh
Last login: Sat Jul 12 19:15:54 2014 from 10.0.2.2
[vagrant@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:13:49:98 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 86334sec preferred_lft 86334sec
    inet6 fe80::a00:27ff:fe13:4998/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b4:c7:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.36/24 brd 192.168.33.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feb4:c7f6/64 scope link
       valid_lft forever preferred_lft forever
[vagrant@localhost ~]$ ll /vagrant
合計 4
-rw-r--r-- 1 vagrant vagrant 362  7月 12 17:55 Vagrantfile
39
39
6

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
39
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?