Exercise 1: Why a Traditional Stack Can't Detect a Single Bit-Flip — Possible Solution ==================================================================== Walking through each layer: Per the chapter's own worked illustration, "a bit flips on one disk's physical media. mdadm has no checksum, so it can't distinguish the bad block from a good one -- it does its normal job with whatever bytes it reads." mdadm's own responsibility is purely mirroring or striping- with-parity data across disks; it was never designed to verify that the bytes it's handling are the same bytes that were originally written, only to faithfully replicate or reconstruct whatever bytes it currently has. So when it reads the corrupted block from the physical disk, it treats it as ordinary, valid data and passes it upward exactly as read. "LVM, above that, has no checksum either." LVM's own job is purely mapping logical volumes onto physical extents -- it has no mechanism at all for verifying data content, only for tracking which blocks belong to which logical volume. The corrupted bytes pass through this layer completely unexamined as well. "ext4, above that, has none either (fs1-2)." Per fs1-2's own coverage, ext4 tracks metadata via journaling and inodes, but was never designed with a content-verification mechanism (checksumming) at all -- it reads whatever bytes are physically present at the location it expects data to be and returns them as-is, with nothing to compare them against. Conclusion: "The corrupted data sails all the way up to the application, undetected at every single layer along the way." Since none of mdadm, LVM, or ext4 ever computes or checks a checksum against the actual data content, there is no point anywhere in this four-layer stack where the bit-flip could be caught -- each layer does its own specific job correctly (RAID replication, volume mapping, filesystem structure) without that job ever including "verify this data hasn't silently changed since it was written." WHY THIS WORKS AS AN ANSWER ------------------------------ This walks through each of the three layers individually, stating specifically what each one does and doesn't check, rather than a single blanket "none of them checksum," making clear that the gap is structural (no layer's actual job includes content verification) not accidental.