volume-manager: S1 close-out — partition fixtures in the root aggregate; docs (S1)
Add volume-manager to build.zig's root package-test loop, so `zig build test` runs the partition parser's nine host tests and a fixture added there can never be silently skipped. Flip the identity-ladder build status in storage-design-rationale.md: rungs 1 (GPT partition GUID) and 3 (FAT serial + label) are built, joining rung 4; rung 2 (filesystem UUID) waits on a non-FAT engine; the volumes.csv map and the id-derived mount path land with S2.
This commit is contained in:
@@ -442,6 +442,7 @@ pub fn build(b: *std.Build) void {
|
|||||||
csv_library,
|
csv_library,
|
||||||
xkeyboard_config_library,
|
xkeyboard_config_library,
|
||||||
b.dependency("fat", .{}),
|
b.dependency("fat", .{}),
|
||||||
|
b.dependency("volume-manager", .{}),
|
||||||
b.dependency("display", .{}),
|
b.dependency("display", .{}),
|
||||||
b.dependency("ps2-bus", .{}),
|
b.dependency("ps2-bus", .{}),
|
||||||
b.dependency("usb-hid", .{}),
|
b.dependency("usb-hid", .{}),
|
||||||
|
|||||||
@@ -215,16 +215,16 @@ matrix-proven shape; genuinely open.
|
|||||||
broke whenever a drive changed ports or enumeration order; `UUID=` entries
|
broke whenever a drive changed ports or enumeration order; `UUID=` entries
|
||||||
exist because device-path identity failed. danos skips that era: the mount
|
exist because device-path identity failed. danos skips that era: the mount
|
||||||
map (`volumes.csv` — configuration, read by the volume manager) keys on
|
map (`volumes.csv` — configuration, read by the volume manager) keys on
|
||||||
**content identity, never port or discovery order**. Build status: only
|
**content identity, never port or discovery order**. Build status: rungs 1,
|
||||||
rung 4 (MBR signature + partition index) is implemented today; the fuller
|
3, and 4 (GPT partition GUID, FAT serial + label, MBR signature + index) are
|
||||||
rungs and the `volumes.csv` map itself land with the identity ladder, so
|
implemented (S1); rung 2 waits on a non-FAT engine. The `volumes.csv` map and
|
||||||
today a single volume mounts at the fixed `/volumes/usb` and its recorded
|
the id-derived mount path land with S2, so today a single volume still mounts
|
||||||
identity is not yet consulted to pick a path. The target ladder the prober
|
at the fixed `/volumes/usb` and its recorded identity is not yet consulted to
|
||||||
reads off the medium, strongest first:
|
pick a path. The ladder the prober reads off the medium, strongest first:
|
||||||
1. GPT partition GUID — 128-bit, unique, stable for the volume's life *(planned)*;
|
1. GPT partition GUID — 128-bit, unique, stable for the volume's life — **built (S1)**;
|
||||||
2. filesystem UUID (ext-family and most modern formats, in the superblock) *(planned)*;
|
2. filesystem UUID (ext-family and most modern formats, in the superblock) *(planned)*;
|
||||||
3. FAT volume serial + label — 32 bits, weak (dd-cloned sticks share it)
|
3. FAT volume serial + label — 32 bits, weak (dd-cloned sticks share it)
|
||||||
but what real sticks carry *(planned)*;
|
but what real sticks carry — **built (S1)**;
|
||||||
4. MBR disk signature + partition index — **built**; a bare FAT with no
|
4. MBR disk signature + partition index — **built**; a bare FAT with no
|
||||||
table takes index 0 over the whole device;
|
table takes index 0 over the whole device;
|
||||||
5. nothing — an anonymous volume: generated mount name, no persistence *(planned)*.
|
5. nothing — an anonymous volume: generated mount name, no persistence *(planned)*.
|
||||||
|
|||||||
Reference in New Issue
Block a user