volume-manager: load the mount map; pick binary by signature, compose the id-path (S2)

The volume manager reads its policy from configuration at boot (loadTables,
mirroring the device-manager registry load): filesystems.csv (content signature
-> service binary) and volumes.csv (optional id -> mount-prefix override), each
held in a static source buffer with declared bounds. On probe it picks the
binary from the volume's signature (unserved + logged if no row matches, like an
unbound device) and composes the mount path — a volumes.csv override, else the
default /volumes/<id> from volume-map.idString — then spawns that binary with
argv {volume-id, mount-prefix}. Behavior-preserving: fat still ignores argv[2..]
and uses its hardcoded mounts, the binary resolves to /system/services/fat, so
the FULL suite stays green (127/127); the flip to argv-driven mounts and the
/volumes/usb -> id-path migration land in step 5.
This commit is contained in:
Daniel Samson
2026-08-10 00:12:33 +01:00
parent 5bfdb75e12
commit 167e9c7a9e
5 changed files with 123 additions and 10 deletions
+8
View File
@@ -0,0 +1,8 @@
# The mount map (danos's fstab): a volume's content id -> a chosen mount prefix.
# This is an OPTIONAL override, read by the volume manager. A volume with no row
# mounts at its default /volumes/<id>, where <id> is the manager's rendered
# content identity (e.g. fat-12345678, gpt-<guid>, mbr-<sig>-<index>) — stable,
# unique, and never a port or a label. The label is display metadata, not here:
# query it via the volume manager's `volumes` verb.
#
# id, mount_prefix
1 # The mount map (danos's fstab): a volume's content id -> a chosen mount prefix.
2 # This is an OPTIONAL override, read by the volume manager. A volume with no row
3 # mounts at its default /volumes/<id>, where <id> is the manager's rendered
4 # content identity (e.g. fat-12345678, gpt-<guid>, mbr-<sig>-<index>) — stable,
5 # unique, and never a port or a label. The label is display metadata, not here:
6 # query it via the volume manager's `volumes` verb.
7 #
8 # id, mount_prefix