В итоге я использовал что-то вроде (внутри initrd):
if is_dev_mode ; then
chroot $ROOTFS_MOUNT /usr/bin/passwd --delete root
else
chroot $ROOTFS_MOUNT /usr/bin/passwd --lock root
fi
sync
Это происходит до того, как rootfs перемонтируется только для чтения. Мне это не очень нравится, но я думаю, что это лучше, чем использовать еще один unionfs (их уже несколько). passwd
в initrd'е не имеет таких причудливых опций, как в основной ОС, но chroot
работает так же хорошо.