Exercise 1: Why a Snapshot of an Unmodified 500GB Subvolume Takes Almost No Space — Possible Solution ==================================================================== Explanation: Per the chapter's own copy-on-write model, Btrfs never overwrites existing blocks in place when data changes -- it writes the new version to a fresh location and atomically repoints the metadata, leaving the old blocks untouched until nothing references them. A snapshot exploits this directly: "a snapshot is just a pointer to the metadata exactly as it existed at this moment," which COW naturally preserves, since nothing has overwritten the original blocks it points to. Taking a snapshot therefore does not copy any actual file data -- it creates a new subvolume whose metadata initially points at exactly the same underlying blocks the original subvolume already points at. Per the chapter, "the snapshot and the original share every single block." Since both point at identical, already-existing blocks on disk, no new data blocks need to be written at snapshot time, which is why the operation completes almost instantly and consumes almost no extra space. A full copy, by contrast, has no such sharing mechanism -- copying 500GB of data means writing a genuinely new, independent 500GB of blocks to disk, which takes real time proportional to the data size and really does consume another 500GB of space, because a plain copy creates two fully independent sets of blocks rather than one set of blocks referenced by two metadata pointers. The two subvolumes only start to diverge, and only then start consuming additional space, once one side is actually modified -- at that point COW writes new blocks only for the changed data, while the unmodified parts continue being shared between original and snapshot. WHY THIS WORKS AS AN ANSWER ------------------------------ This explains the actual mechanism (a snapshot is a metadata pointer reusing existing blocks, not a data copy) rather than restating "COW makes snapshots cheap" as a given fact, and contrasts it directly against what a full copy actually has to do differently.