How mcspy-source/cobdiskless works
CobDiskless is a diskless network-boot platform: clients obtain DHCP leases, receive iPXE boot files, then mount per-client writable overlays over iSCSI. Image management prepares and registers golden images; storage supplies cached, copy-on-write block devices. The README also documents HTTP delivery, client/station management, and offline driver arming. Edges are limited to README-described flows and relationships visible in indexed excerpts; unsampled service wiring is not inferred.
Main entry points: client_session.cpp Client sessions · admin_app.cpp Admin interface · image_manager.cpp Image lifecycle · cow_block_device.cpp Copy-on-write overlay
Components 26
Boot networking
- DHCP leasing
src/CobDisklessCore/src/network/dhcp_server.cpp - TFTP boot files
src/CobDisklessCore/src/network/tftp_server.cpp - iPXE scripts
include/CobDisklessCore/network/ipxe_script.hpp - HTTP assets/API
src/CobDisklessCore/src/network/http_daemon.cpp - iSCSI target
src/CobDisklessCore/src/network/iscsi_target.cpp
Image lifecycle
- Image lifecycle
src/CobDisklessCore/src/image/image_manager.cpp - Golden image
src/CobDisklessCore/src/image/golden_image.cpp - Image inspection
src/CobDisklessCore/src/image/image_inspector.cpp - Image registry
src/CobDisklessCore/src/image/image_registry.cpp - Driver arming
src/CobDisklessCore/src/image/pnp_driver_armer.cpp - Armer CLI
src/tools/cob_armer_main.cpp
Block storage
- Copy-on-write overlay
src/CobDisklessCore/src/storage/cow_block_device.cpp - Block cache
src/CobDisklessCore/src/storage/block_cache.cpp - Crash-safe writeback
src/CobDisklessCore/src/storage/writeback_context.cpp - Storage roles
src/CobDisklessCore/src/storage/storage_manager.cpp - Image backends
include/CobDisklessCore/storage/block_device.hpp
Client management
- Client sessions
src/CobDisklessCore/src/client/client_session.cpp - Client enrollment
src/CobDisklessCore/src/client/client_manager.cpp - Station tracking
src/CobDisklessCore/src/client/station_manager.cpp - Client records
src/CobDisklessCore/src/client/client_database.cpp
Core services
- Subsystem orchestrator
src/CobDisklessCore/src/core.cpp - Configuration
src/CobDisklessCore/src/config/configuration.cpp - Logging
src/CobDisklessCore/src/logging/logger.cpp - Admin interface
src/CobDisklessApp/admin_app.cpp
Other components
- PXE client
- Administrator
Connections 28
- PXE client → DHCP leasing: requests lease
README.md - PXE client → TFTP boot files: fetches boot file
README.md - TFTP boot files → iPXE scripts: serves scripts
README.md - PXE client → iSCSI target: mounts target
README.md - iSCSI target → Client sessions: serves client disks
README.md - Client sessions → Image lifecycle: resolves image
src/CobDisklessCore/src/client/client_session.cpp - Client sessions → Storage roles: checks writeback role
src/CobDisklessCore/src/client/client_session.cpp - Client sessions → Copy-on-write overlay: creates overlay
- Client sessions → Driver arming: checks image arming
src/CobDisklessCore/src/client/client_session.cpp - Image lifecycle → Golden image: manages images
- Image lifecycle → Image registry: uses registry
- Image lifecycle → Driver arming: prepares images
src/CobDisklessCore/src/image/image_manager.cpp - Golden image → Image inspection: inspects partitions
- Golden image → Image backends: uses block device
- Copy-on-write overlay → Crash-safe writeback: uses writeback
- Copy-on-write overlay → Image backends: wraps base device
- Block cache → Image backends: caches block I/O
- iSCSI target → Copy-on-write overlay: exposes overlay
README.md - Administrator → Admin interface: operates
- Admin interface → Image lifecycle: manages images
- Admin interface → Client sessions: manages sessions
- Admin interface → Client enrollment: manages clients
- Admin interface → Station tracking: manages stations
- Client records → Station tracking: uses machine store
- Armer CLI → Driver arming: runs arming
src/tools/cob_armer_main.cpp - Subsystem orchestrator → Configuration: loads configuration
- Subsystem orchestrator → Logging: logs lifecycle
- HTTP assets/API → PXE client: delivers assets/API
README.md