Ad ogni avvio del computer il kernel esporta le informazioni dell'hardware nello userspace, e più precisamente nei punti di mount /proc e /sys. In /proc e /sys vengono montati due filesystem logici (rispettivamente procfs e sysfs), che fisicamente non esistono nella memoria interna.
Cosa c'entra? L'indirizzo MAC viene immagazzinato in un file presente all'interno di quei filesystem logici (es. /sys/class/net/<iface>/address), quindi ad ogni avvio avrai il MAC che il kernel "decide" di esportare, ovvero quello della tua scheda di rete. Se vuoi spoofarlo durante la fase di boot, potresti inserire il comando macchanger
nel file che ti si apre quando digiti # crontab -e
.
EDIT: un'altra soluzione sarebbe creare un'unità systemd che cambi il MAC prima dell'avvio dei servizi di rete, così da evitare potenziali leak.