| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If btrfs is not present in the kernel we end up with strange output like
this:
Error creating disk image2014-06-10 16:00:40
[devel-system-x86_64-generic][my-raw-disk-image][rawdisk.write]Failure
to create disk image at /src/tmp/testdev.img
ERROR: Command failed: mount -o loop /src/tmp/testdev.img
/src/tmp/deployments/tmpQ7wXO1/tmp4lVDcu/tmpvHSzDE
mount: mounting /dev/loop0 on
/src/tmp/deployments/tmpQ7wXO1/tmp4lVDcu/tmpvHSzDE failed: Device or
resource busy
To avoid this confusing error, Morph should explicitly check first.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes systems use the UUID of the disk in the fstab when there is
no pre-existing fstab entry for /.
This happens whether the system has an initramfs or not, since it should
be harmless, and by this point we're in userland, so can know what the
UUIDs are.
Passing the UUID to `complete_fstab_for_btrfs_layout` is optional, and
defaults to the old behaviour of using /dev/sda, since it is called
directly by some write extensions for doing upgrades, and upgrading
systems that use an initramfs will be part of a later patch.
|
|
|
|
|
|
|
|
|
|
| |
It's only ever called from the core of the write extensions library, so
we can change it to be mandatory in all cases.
install_extlinux is left with the uuid being optional and defaulting to
/dev/sda, since it is called directly from the rawdisk write extension
currently, and upgrades of systems that have an initramfs will be part
of a later patch series.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If INITRAMFS_PATH is specified and the file exists, then the produced
kernel command line will use root=UUID=$uuid_of_created_disk rather than
root=/dev/sda, which may be incorrect.
Help files have been updated to mention the new option.
This leads to an unfortunate duplication of the path to the initramfs,
in both the location field of the nested deployment and the
INITRAMFS_PATH of the disk image creation.
However, an initramfs could be produced by a chunk and put in the same
place, so it doesn't make sense to couple the rawdisk and initramfs
write extensions to remove this duplication.
Similarly, there may be multiple valid initramfs in the rootfs e.g.
extlinux loads a hypervisor, which is Linux + initramfs, and the
initramfs then boots a guest Linux system, which uses a different
initramfs.
This makes it important to explicitly let the rootfs write extensions
know which to use, or not as the case may be.
util-linux's blkid is required, since the busybox version ignores the
options to filter its output, and parsing the output is undesirable.
Because syslinux's btrfs subvolume support is limited to being able to
use a non-0 default subvolume, the initramfs has to be copied out of
the run-time rootfs subvolume and into the boot subvolume.
This pushed the required disk space of a minimal system over the 512M
threshold because we do not have the userland tooling support to be able
to do a btrfs file contents clone.
|
|
|
|
|
|
| |
shutil.move() does not preserve permissions, file modes, ownerships etc,
resulting in much confusion when prepopulating a non-root user during
deployment. This change to `mv` fixes that.
|
|
|
|
|
| |
Also, change it to log the real error message in morph.log before
raising a more general exception to the user.
|
| |
|
|
|
|
|
| |
Also, be more flexible when parsing environment booleans -- convert to
lower case and match 0/1 and true/false as well as yes/no.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The shared state directories defined in writeexts.py (/var, /home etc.)
are now separate Btrfs subvolumes that are mounted in place using fstab.
There are some warnings on mounting /var and /srv about the mountpoint
not being empty. Not yet investigated.
If a configure extension has already added / to the fstab, use the
device it chose rather than assuming /dev/sda. This is required for the
vdaboot.configure extension that we use for OpenStack deployments.
Similarly, if a configure extension has added an entry for a state
directory in /etc/fstab already, we don't replace it with a /state/xxx
directory. That's only done as a default behaviour.
|
|
|
|
|
| |
We will need this file to enable a bootloader menu to choose between
OS after an upgrade.
|
| |
|
| |
|
|
|
|
|
| |
This is required to get real-time output and the timestamps meaning
anything useful.
|
|
|
|
|
|
|
| |
deployments
Also Change them to use the "default" symlink in the extlinux.conf they
create, instead of hardcoding the current system version name
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
ssh://trove.baserock.org/baserock/baserock/morph
|
| |
| |
| |
| |
| |
| | |
These subvolumes exist in state/{home,opt,srv}
of the disk's root. They are not mounted by
default.
|
| |
| |
| |
| |
| | |
This is in preparation for making deployments able
to upgrade existing baserock systems.
|
|\ \
| |/
|/|
| |
| |
| | |
git://git.baserock.org/baserock/baserock/morph
Reviewed-by: Jonathan Maw on IRC.
|
| |
| |
| |
| |
| |
| | |
If AUTOSTART is 'yes' then the VM will be started once it is
created. If it is 'no' or undefined, then it will need to be manually
started. If it is any other value, then an exception is raised.
|
| | |
|
|\ \
| |/
|/|
| | |
Reviewed-By: Jonathan Maw (on irc)
|
| |
| |
| |
| | |
Reported-by: Richard Maw
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Reported-By: Richard Maw
|
|
|
|
|
|
|
|
|
|
| |
This allows code sharing amongst all the places that create a
system in a raw disk image. This also adds the creation of
a factory-run subvolume, and fixes error messages for errors
that happen during a disk image creation.
Suggested-By: Richard Maw
Suggested-By: Sam Thursfield
|
|
|
|
| |
Suggested-By: Richard Maw
|
|
|
|
| |
Suggested-By: Richard Maw
|
|
|
|
| |
Suggested-By: Richard Maw
|
|
|