I rischi principali nello sviluppo dei moduli del kernel sono che puoi mandare in crash il tuo sistema molto più facilmente che con il normale codice, e probabilmente scoprirai che a volte crei moduli che non possono essere scaricati, il che significa che dovrai riavviare per ricaricare loro dopo aver risolto ciò che non va.
Sì, una VM va bene per questo tipo di sviluppo ed è quello che uso quando lavoro sui moduli del kernel. La VM isola bene il tuo ambiente di test dal tuo sistema in esecuzione.
Se hai intenzione di acquisire e ripristinare istantanee, dovresti mantenere il codice sorgente archiviato in un repository di controllo della versione all'esterno la VM in modo da non perdere accidentalmente il tuo ultimo codice quando elimini lo stato corrente della VM.
Supponendo che tu non stia cercando di scrivere un driver per l'hardware reale, questo è un ottimo modo per lavorare sui moduli. Puoi eseguire un'istantanea del sistema funzionante e, se fai esplodere qualcosa, torna all'istantanea.
Se puoi, crea un duplicato completo della VM, nel caso in cui il sistema di snapshot sia più strano di quanto penso. :)