From: Theodore Ts'o <tytso@mit.edu>
To: Dmitry Monakhov <dmonakhov@openvz.org>
Cc: linux-ext4@vger.kernel.org, root <root@deb7build>
Subject: Re: [PATCH 1/2] xfstests-bld: Split system images in two parts
Date: Wed, 22 Oct 2014 20:48:12 -0400 [thread overview]
Message-ID: <20141023004812.GA7841@thunk.org> (raw)
In-Reply-To: <20141022212535.GC6295@thunk.org>
On Wed, Oct 22, 2014 at 05:25:35PM -0400, Theodore Ts'o wrote:
> So what I suggest instead is that we have a new script, update-image,
> which takes an existing root_fs.img, and installs the updated
> xfstests, the configuration files, and startup files, leaving the
> existing debian base image intact.
Here's an enhancement to the gen-image script which adds a new
--update option.
- Ted
commit debd9734bc23108f37c6f62914cb5f9e16da20cc
Author: Theodore Ts'o <tytso@mit.edu>
Date: Wed Oct 22 20:42:32 2014 -0400
test-appliance: add --update option to the gen-image script
This allows gen-image to to update the xfstests.tar.gz tarball and the
xfstests driver scripts into an existing root_fs.img file, keeping the
original operating systems files unchanged. This takes less than 15
seconds, compared to about 90 seconds to do a full gen-image build
using a local disk debian mirror. It also allows a xfstests developer
to generate new versions of the root_fs.img more simply on a system
that does not have debootstrap installed or has access to a Debian
archive or mirror.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/kvm-xfstests/test-appliance/gen-image b/kvm-xfstests/test-appliance/gen-image
index 550d070..27f9d96 100755
--- a/kvm-xfstests/test-appliance/gen-image
+++ b/kvm-xfstests/test-appliance/gen-image
@@ -12,6 +12,7 @@ ROOT_FS=$DIR/root_fs.img
COMPAT="-o compat=0.10"
SAVE_RAW_ROOT=no
DO_GCE=no
+DO_UPDATE=no
if test -r config.custom ; then
. $(pwd)/config.custom
@@ -29,8 +30,11 @@ while [ "$1" != "" ]; do
DO_GCE=yes
SAVE_RAW_ROOT=yes;
;;
+ --update)
+ DO_UPDATE=yes
+ ;;
*)
- echo "usage: gen-image [--save_raw_root] [--do_gce] [--mirror MIRROR_LOC]"
+ echo "usage: gen-image [--save_raw_root] [--do_gce] [--update] [--mirror MIRROR_LOC]"
exit 1
;;
esac
@@ -42,6 +46,31 @@ then
RAW_ROOT_FS=/tmp/root_fs.raw.$$
fi
+update_xfstests()
+{
+ tar -C $ROOTDIR/root -xf ../../xfstests.tar.gz
+ rsync -avH files/* $ROOTDIR
+}
+
+finalize_rootfs()
+{
+ e2fsck -fyD $RAW_ROOT_FS
+ e2fsck -fy -E discard $RAW_ROOT_FS
+ qemu-img convert -f raw -O qcow2 $COMPAT -c $RAW_ROOT_FS $ROOT_FS
+}
+
+mkdir -p $ROOTDIR
+if test $DO_UPDATE = "yes" ; then
+ qemu-img convert -f qcow2 -O raw $ROOT_FS $RAW_ROOT_FS
+ mount -t ext4 -o loop $RAW_ROOT_FS $ROOTDIR
+ rm -rf $ROOTDIR/xfstests
+ update_xfstests
+ umount $ROOTDIR
+ rmdir $ROOTDIR
+ finalize_rootfs
+ exit 0
+fi
+
mkdir -p gce
if test $DO_GCE = "yes" ; then
sh get-gce-debs
@@ -51,7 +80,6 @@ else
variant=xfstests
fi
-mkdir -p $ROOTDIR
mkdir -p var.cache.apt.archives
mkdir -p var.lib.apt.lists
mkdir -p debs
@@ -69,9 +97,7 @@ mount --bind gce $ROOTDIR/gce
mkdir -p $ROOTDIR/imgdir
mount --bind $(dirname $RAW_ROOT_FS) $ROOTDIR/imgdir
debootstrap --variant=$variant $ARCH $SUITE $ROOTDIR $MIRROR $DIR/kvm-xfstest.script
-cp -r files/* rootdir
-echo "untaring xfstests"
-tar -C rootdir/root -xf ../../xfstests.tar.gz
+update_xfstests
for i in vda vdb vdc vdd vde vdf results
do
mkdir $ROOTDIR/$i
@@ -139,9 +165,7 @@ rmdir $ROOTDIR
if test $DO_GCE != "yes" ; then
tune2fs -O has_journal $RAW_ROOT_FS
- e2fsck -fyD $RAW_ROOT_FS
- e2fsck -fy -E discard $RAW_ROOT_FS
- qemu-img convert -f raw -O qcow2 $COMPAT -c $RAW_ROOT_FS $ROOT_FS
+ finalize_rootfs
fi
if test "$SAVE_RAW_ROOT" = "yes" ; then
next prev parent reply other threads:[~2014-10-23 0:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-22 15:06 [PATCH 1/2] xfstests-bld: Split system images in two parts Dmitry Monakhov
2014-10-22 15:06 ` [PATCH 2/2] xfstests-bld: test-apliance add castomization options Dmitry Monakhov
2014-10-22 21:25 ` [PATCH 1/2] xfstests-bld: Split system images in two parts Theodore Ts'o
2014-10-23 0:48 ` Theodore Ts'o [this message]
2014-10-23 11:25 ` Dmitry Monakhov
2014-10-23 14:06 ` Theodore Ts'o
-- strict thread matches above, loose matches on Subject: below --
2014-10-22 15:37 Dmitry Monakhov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141023004812.GA7841@thunk.org \
--to=tytso@mit.edu \
--cc=dmonakhov@openvz.org \
--cc=linux-ext4@vger.kernel.org \
--cc=root@deb7build \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.