OSTree Manual |
---|
Another deeply fundamental difference between both package
managers and image-based replication is that OSTree is
designed to parallel-install multiple
versions of multiple
independent operating systems. OSTree
relies on a new toplevel ostree
directory; it can in fact
parallel install inside an existing OS or distribution
occupying the physical /
root.
On each client machine, there is an OSTree repository stored
in /ostree/repo
, and a
set of "deployments" stored in /ostree/deploy/
.
Each deployment is primarily composed of a set of hardlinks
into the repository. This means each version is deduplicated;
an upgrade process only costs disk space proportional to the
new files, plus some constant overhead.
OSNAME
/CHECKSUM
The model OSTree emphasizes is that the OS read-only content
is kept in the classic Unix /usr
; it comes with code to
create a Linux read-only bind mount to prevent inadvertent
corruption. There is exactly one /var
writable directory shared
between each deployment for a given OS. The OSTree core code
does not touch content in this directory; it is up to the code
in each operating system for how to manage and upgrade state.
Finally, each deployment has its own writable copy of the
configuration store /etc
. On upgrade, OSTree will
perform a basic 3-way diff, and apply any local changes to the
new copy, while leaving the old untouched.