volume-manager: the FAT volume serial + label is the identity (rung 3) (S1)
Rung 3, stronger than the MBR disk signature. fatIdentity reads the VBR at the partition start — 0x55AA plus a 0x28/0x29 extended boot signature; FAT32 iff fat_size_16 == 0; BS_VolID and BS_VolLab at the FAT12/16 vs FAT32 EBR offsets, cross-checked against fat/on-disk.zig. firstVolume now prefers it over mbrIdentity in both the MBR-entry path and the bare-FAT fallback, keeping the rung-4 id when the VBR is not an extended FAT. The serial becomes the identity key (the id); the label becomes the display name. Two host tests — a bare FAT32 reports its serial + label; an MBR FAT partition prefers the serial while a non-FAT partition keeps rung 4 — both FAIL with the preference neutralized (2/9) and pass with it (9/9). On-image witness: the volume-probe QEMU regex tightens to the boot image's real serial 0x12345678, which before rung 3 was the ~0x0 pseudo-signature read from VBR offset 440.
This commit is contained in:
+6
-3
@@ -795,9 +795,12 @@ CASES = [
|
||||
"smp": 4,
|
||||
"timeout": 150,
|
||||
# The volume manager probes the partition table, then confines a filesystem
|
||||
# to the volume and hands it over — one log line naming the volume's range,
|
||||
# its identity, and the filesystem it spawned for it.
|
||||
"expect": r"volume-manager: volume 0x[0-9a-f]+ -> \S+ \(pid \d+\), lba \d+, \d+ blocks"
|
||||
# to the volume and hands it over. Since S1 rung 3 the identity is the boot
|
||||
# image's real FAT32 serial (0x12345678, from make-fat-image.py) — before
|
||||
# rung 3 it was the rung-4 pseudo-signature read from VBR offset 440 (~0x0),
|
||||
# so this tightened value is an on-image witness that the enriched identity
|
||||
# reaches the running log, not just the host tests.
|
||||
"expect": r"volume-manager: volume 0x0*12345678 -> \S+ \(pid \d+\), lba \d+, \d+ blocks"
|
||||
r"[\s\S]*volume-manager: handed volume \d+ to pid \d+",
|
||||
"fail": r"DANOS-TEST-RESULT: FAIL"},
|
||||
# Phase 2b: mkdir/unlink through the mount. Reuses the fat-mount build — the
|
||||
|
||||
Reference in New Issue
Block a user