как я это делал. полученный экспириенс надо бы выложить уровнем выше, пока пусть будет так. оно работает :)
для получения образа использовался spt с profileм live, полученный блоб разворачивается при помощи unsquashfs и пилится по мере необходимости. Одно из допиливаний – remount_root_rw. Unionfs имет документированную траблу с бранчем из reda only nfs, при монтировании надо использовать nfsro вместо ro (а не внести ли нам remount_rood_readwrite в штатный /etc/init.d/functions, ради pristine в всяких livecd? а не приделать ли к этой функции автоугадав nfs корня, более прямой чем мое grep -q 'method:nfs' /proc/cmdline ?)
вообще в качестве nfsroot годится любая система, достаточно живая чтобы взбутнуться на уже смонтированном read only корне. однако, spt заодно сделает нам full.cz со свежим пропагатором, а в нем modules.mar для свежего ядра.
Развернутый корень обязательно экспортировать с no_root_squash, если неразвернутый squashfs – это не нужно.
замечания по пропагатору: он делает reverse lookup своего айпишника, поэтому для экономии времени желательно иметь dns сервер с обратной зоной. а лучше еще и с прямой, да чтобы A и PTR совпадали. Тогда в qemu до запуска stage2 доходит секунд за 20. иначе – ждем таймаутов и весь прцесс занимает в qemu до 10 минут.