Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Most btrfs images were stored in `_build`, but some were stored in the
yaml source directory. Those in the yaml source directory are moved to
the yaml source directory subdirectory `_filesystem`.
The code that creates `_filesystem` creates a btrfs subvolume. The code
to create the `_build` directory has been changed to create a subvolume
as well.
Using subvolumes for image file directories allows them to be excluded
from backup snapshots, which is highly desirable for these very large
files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(When option 'apt-update' is true.)
This with other changes being committed today allows .deb files to depend on
packages from sid.
|
|
release codename
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is a workaround for a kernel bug that happens when you try to mount
the image file after creating it with cp. It acts as if the same UUID
is already mounted, even though it isn't (anymore). Changing the UUID on
the image allows mounting it.
Can't use 'btrfstune -m' here because (for the time being) it doesn't
work on seed images. So that means that the operation is slow. It is
done more than necessary because it is done wherever made necessary by
existing code.
TODO: Change the actual behavior of the program to wait until the very
end to set seed property. Only set -S1 when creating the patchfs or
creating the uplevel image.
|
|
|
|
|
|
|
|
|
|
|
|
Instead, get codename (used to determine versions for all the packages)
from '/etc/os-release'
This should be specifiable (and inherited) in the yaml config file too.
The *.devices mechanism shows the need to create inheritable "settings."
Perhaps they should be in Haskell not through the filesystem.
|
|
presently this hard-codes stretch & amd64
|
|
currently using some rather brutal force here
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A seeded image keeps its parent image as a read-only "seed" device that
joins the seeded image in a multi-device btrfs filesystem. That means
that to mount such an image, the parent image must be made available as
a block device (e.g. using losetup, or dd to an existing block device
and run btfrs device scan).
Such support had been added to the Samizdat Makefile, but more
properly belongs here.
This is the sequence of commands used by sami.git's Makefile to
accomplish the effect:
rm -f $@~tmp
touch $@~tmp
fallocate -l $(samizdat_btrfs_patch_size) $@~tmp
test -d $@.mnt || mkdir $@.mnt
! mountpoint -q $@.mnt || umount $@.mnt
mount -o compress,ro -t btrfs $< $@.mnt
a=$(get_loop_dev); [ -z "$$a" ] || losetup -d $$a
losetup -f $@~tmp
btrfs device add $(get_loop_dev) $@.mnt
mount -o compress,rw,remount $@.mnt
The Makefile also defines:
get_loop_dev="$$(sudo losetup -n -O name -j $@~tmp)"
The same basic sequence is carried out here.
The config file format is modified so that to get a seeded image you
specify "seedme: <bytes>" where <bytes> is the size of the seeded image.
This feature is complete enough to create a seeded image (i.e., to
replace the Makefile), but children of a seeded image seem impossible
to work because there is no code yet to run losetup on seed images of
parents. Thus it can be expected that deriving from a parent with a
seed will fail when fsmgr tries to mount the parent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 135be7235bc04af43ca7e3749096a4d1e00c3823.
|