summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Greg Price [Tue, 13 Nov 2007 10:10:10 +0000 (05:10 -0500)]
Prototype fast installer using a special guest.
Rather than poke directly in the boot sector, partition table,
etc, which caused so much pain last week (r231), we just dd
the entire disk. Then we poke at the bits that need to change
(like secrets, the hostname, the root password, the filesystem uuids).
Since this poking is distribution-dependent, we want it to be
supplied by the image, so to make that safe we run it in a VM.
The plan is
1. source image is dd'd (in the host) to the target image
2. special copying-installer image is booted, with access to target
and to a small image containing its arguments
3. copying-installer guest reads arguments, mounts target,
runs a script with a well-known name in target, passing arguments.
Bits I haven't done yet include
- frob grub config in the copying-installer image so it boots
with init = the copying-installer script (doing this manually for testing)
- install script into copying-installer, or into my example image,
in a sane automated way (they're checked into partial/ here)
- all the tasks the image's script ought to actually carry out
- make this all available from remctl and the web pages.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=245
Greg Price [Sun, 4 Nov 2007 05:41:11 +0000 (01:41 -0400)]
prototype fast installer.
To install a distribution on a new volume, we take an existing
installed volume produced with sipb-xen-make-iso, and
1. copy GRUB's data with dd
2. frob the partition table with sfdisk, if the disk size is different
3. make the filesystem
4. twiddle the hostname and root password and whatever else
5. make the swap area
6. boot!
In this prototype, steps 2 and 4 aren't implemented yet;
steps 1, 3, and 5 all use numbers that come from what the
sipb-xen-make-iso etch installer does rather than from
actually reading the partition table; and the whole thing
is just a program in /usr/sbin, not integrated into what
remctl / the web app invoke.
It all takes about thirty seconds (28.0s most recently),
excluding the boot.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=231
Greg Price [Sun, 28 Oct 2007 08:14:48 +0000 (04:14 -0400)]
simplify isolinux.cfg.
Once we fix the problem of rebooting with the CD mounted again,
we can remove the prompt, so the user doesn't have to touch the console.
Until then, they need an opportunity to destroy/reboot-without-CD
after the installation finishes.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=222
Greg Price [Sun, 28 Oct 2007 06:47:50 +0000 (02:47 -0400)]
postinst script, nicer pathnames, and read password hash from a file
The postinst script has been tested by running it directly,
but I still haven't attempted actually building and installing
the package.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=221
Greg Price [Sun, 28 Oct 2007 05:08:34 +0000 (01:08 -0400)]
Use temp directory, use DHCP, and live in sane paths.
The partial/ tree is gone now.
Files are in files/; the installer's persistent data
will go in subtrees like /srv/guest-installer/etch/.
Also, it magically takes only 15 minutes now.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=218
Greg Price [Tue, 16 Oct 2007 08:11:46 +0000 (04:11 -0400)]
a system for building guest images on demand (partially implemented)
The plan, roughly, is
1. we download an upstream install CD iso, mount it, copy out the contents;
2. when a user wants a VM, the script makes a copy, applies a small static
patch (mostly a preseed file for the installer), adds a few vm-dependent
variables to the preseed, maybe makes some other changes here,
then makes an iso from that;
3. we boot a vm from the new iso, with the empty volume as /dev/hda,
and let the installer run.
This checkin implements 2 and 3, when run in an appropriate testing
environment, but I haven't adapted it to the real environment yet.
Step 2 turns out to be surprisingly fast; much less than a second.
Step 3, unfortunately, is looking like 20 minutes, maybe 10 if we
work at tightening it. We'll want to mitigate that somehow.
Code in the 'partial' directory is meant to be moved elsewhere
as it gets integrated.
svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=201