Skip to content

Instantly share code, notes, and snippets.

@10sr
Last active August 29, 2015 14:02
Show Gist options
  • Select an option

  • Save 10sr/a712f708128e4848e4d5 to your computer and use it in GitHub Desktop.

Select an option

Save 10sr/a712f708128e4848e4d5 to your computer and use it in GitHub Desktop.
Vagrant box of Archlinux minimum installation on 2014/06/09

目的

  • 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 を uncomment
    • Defaults 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_configUseDNS 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 系のパッケージが軒並み入ったりしてそれが容量を増やしているような印象を受けたけど、正直分からない。

参考

@10sr
Copy link
Author

10sr commented Aug 19, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment