Archlinux の Vagrant Box (VirtualBox) を一から作る
目的
- Archlinux の Virtualbox 用 Vagrant box を作る。 http://www.vagrantbox.es にはすでにあるけど、サイズが 400M に近いサイズのものが多く、もっと減らせるのではと思った
- 勉強
作業
仮想マシンの作成
Virtualbox で仮想マシンを作成する。
- 名前は vagrant-archlinux
- メモリは 256MB
- ディスクは VDI で約 40GB
- 接続には NAT
ArchLinux のインストール
ここからイメージを落としてくる。 マウントし、起動。
- パーティションは分けない。 swap もめんどいからなし
- ホスト名は
vagrant-archlinux
/etc/localtime
は/usr/share/zoneinfo/UTC
- passwd:
vagrant
- その他 Installation guide - ArchWiki に書かれている普通の手順を踏む
ここで再起動し、ハードディスクから起動し直す
- ネットワークは dhcpcd で設定
# useradd -m -G wheel -s /bin/bash vagrant; passwd vagrant
する。パスワードはvagrant
sudo
を設定する%wheel ALL=(ALL) NOPASSWD: ALL
を uncommentDefaults env_keep += "SSH_AUTH_SOCK"
という行を加える
- ここを見つつ、
virtualbox-guest-utils
をインストールする - ruby, rubygems, puppet, openssh をインストールする。
sudo gem install chef
する。 - ssh鍵を https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub からコピーし、
/home/vagrant/.ssh/authorized_keys
に置く。chmod 700 /home/vagrant/.ssh
をついでにする。 /etc/ssh/sshd_config
にUseDNS no
を追記する- sshd を立てる
マシンを終了する。
box の作成
$ vagrant package --base vagrant-archlinux
仮想マシンの名前を使って package を実行する。
この時点で、 .box のサイズは 545M だった。 大きすぎるので、 WEB の情報も参考にサイズを減らすことを試した。
サイズを縮める
- パッケージのキャッシュを削除する。
pacman -Scc
gem install chef
に必要だった gcc と make を削除。pacman -Rs gcc make
- ディスクの空き部分をゼロで埋める?
dd if=/dev/zero of=/empty bs=1M; rm /empty
結果
サイズは 288M になった。
縮める前に比べれば予想以上に減った。ここまで減ったのはゼロで埋めたのが大きいのかも? もしかしたら既存の http://www.vagrantbox.es/ のものもゼロで埋めるだけで減るかも??
一番初めの考えではもっと小さくなると思っていたけれど、最終的には 300M 程度になった。 virtualbox-guest-utils の依存で xorg 系のパッケージが軒並み入ったりしてそれが容量を増やしているような印象を受けたけど、正直分からない。