Как превратить VM в «крепость»?
Как не дать сбросить root пароль?
С физическим-то доступом? Никак.

2. Как при загрузке VM проверить целостность некоторых директорий/файлов?
Попытаться записать их хеши и проверять их.

Линукс и защита - понятия несовместимые, код открыт, стандарты известны, а при физическом доступе обойти можно любую защиту.

На вашем месте я бы сделал пароль на root и написал бы скрипт, который бы мониторил /etc/shadow и убивал бы корневой раздел, если рутовый пароль изменится.
Чем  вам не нравится токены или LMS (FlexLM) например ?