mirror of https://github.com/ceph/ceph
62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 KiB
Bash
Executable File
#!/bin/sh -x
|
|
set -e
|
|
|
|
IMAGE_URL=http://cloud-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img
|
|
|
|
wget -O base.qcow2 $IMAGE_URL
|
|
|
|
image=base.raw
|
|
qemu-img convert -O raw base.qcow2 $image
|
|
rm -f base.qcow2
|
|
|
|
# Note: this assumes that sector size is 512, and that there's only one
|
|
# partition. very brittle.
|
|
START_SECT=$(fdisk -lu $image | grep ^$image | awk '{print $3}')
|
|
START_BYTE=$(echo "$START_SECT * 512" | bc)
|
|
|
|
root=/tmp/$$
|
|
|
|
cleanup() {
|
|
sudo chroot $root rm -f /etc/resolv.conf || true
|
|
sudo chroot $root ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf || true
|
|
sudo umount $root/proc || true
|
|
sudo umount $root/sys || true
|
|
sudo umount $root/dev/pts || true
|
|
sudo umount $root
|
|
sudo rmdir $root
|
|
}
|
|
trap cleanup INT TERM EXIT
|
|
|
|
sudo mkdir $root
|
|
sudo mount -o loop,offset=$START_BYTE $image $root
|
|
|
|
# set up chroot
|
|
sudo mount -t proc proc $root/proc
|
|
sudo mount -t sysfs sysfs $root/sys
|
|
sudo mount -t devpts devptr $root/dev/pts
|
|
|
|
# set up network access
|
|
sudo chroot $root rm /etc/resolv.conf
|
|
sudo cp /etc/resolv.conf $root/etc/resolv.conf
|
|
|
|
# packages
|
|
# These should be kept in sync with ceph-qa-chef.git/cookbooks/ceph-qa/default.rb
|
|
sudo chroot $root apt-get -y --force-yes install iozone3 bonnie++ dbench \
|
|
tiobench build-essential attr libtool automake gettext uuid-dev \
|
|
libacl1-dev bc xfsdump dmapi xfslibs-dev
|
|
|
|
# install ltp without ltp-network-test, so we don't pull in xinetd and
|
|
# a bunch of other unnecessary stuff
|
|
sudo chroot $root apt-get -y --force-yes --no-install-recommends install ltp-kernel-test
|
|
|
|
# add 9p fs support
|
|
sudo chroot $root apt-get -y --force-yes install linux-image-extra-virtual
|
|
|
|
cleanup
|
|
trap - INT TERM EXIT
|
|
|
|
qemu-img convert -O qcow2 $image output.qcow2
|
|
rm -f $image
|
|
|
|
exit 0
|