With further observation, I detect that the content of /run/systemd/boot-status/ (supposed to be filled by /usr/lib/startup/get-initial-bootstate, launched with initial-bootstate.service) will be deleted if a larger SD card is installed during boot time, and autologin@.service will fail due to lack /run/systemd/boot-status/bootstate.
--- /lib/systemd/system/initial-bootstate.service 2018-12-06 09:45:32.000000000 +0800 +++ /etc/systemd/system/initial-bootstate.service 2019-03-17 00:37:25.421035649 +0800 @@ -6,7 +6,7 @@ [Unit] Description=Get initial bootstate DefaultDependencies=no -After=local-fs.target systemd-tmpfiles-setup.service +After=local-fs.target systemd-tmpfiles-setup.service systemd-udev-settle.service Before=dsme.service Conflicts=shutdown.target ConditionPathExists=/run/systemd/boot-status
# systemctl enable initial-bootstate.service