diff --git a/pkgs/image/mkimage.sh b/pkgs/image/mkimage.sh
index ce33fb7..0c6fad0 100644
--- a/pkgs/image/mkimage.sh
+++ b/pkgs/image/mkimage.sh
@@ -12,7 +12,7 @@ find rootfs/ -type d -exec chmod 755 {} \;
 # set default target to multi-user
 ln -sf multi-user.target rootfs/usr/lib/systemd/system/default.target
 
-# mount /etc overlay and patos state
+# mount /etc overlay
 ln -sf ../etc.mount rootfs/usr/lib/systemd/system/local-fs.target.wants/etc.mount
 
 # enable dbus
diff --git a/pkgs/rootfs/mkinitrd.sh b/pkgs/rootfs/mkinitrd.sh
index e707f25..c35b516 100644
--- a/pkgs/rootfs/mkinitrd.sh
+++ b/pkgs/rootfs/mkinitrd.sh
@@ -21,6 +21,10 @@ ln -sf initrd.target ./usr/lib/systemd/system/default.target
 
 mkdir ./usr/lib/systemd/system/systemd-repart.service.d
 cat <<EOF > ./usr/lib/systemd/system/systemd-repart.service.d/override.conf
+[Unit]
+After=sysroot-run.mount
+Requires=sysroot-run.mount
+
 [Service]
 ExecStart=systemd-repart --dry-run=no --generate-crypttab=/run/crypttab --generate-fstab=/run/fstab
 EOF
diff --git a/pkgs/rootfs/mkrootfs.sh b/pkgs/rootfs/mkrootfs.sh
index 8429cf0..cdc43d5 100644
--- a/pkgs/rootfs/mkrootfs.sh
+++ b/pkgs/rootfs/mkrootfs.sh
@@ -39,9 +39,13 @@ cat <<EOF > $out/etc/issue
 EOF
 
 # replace agetty with busybox getty
-sed -i 's#ExecStart=.*#ExecStart=-/sbin/getty -L %I 115200 vt100#' $out/usr/lib/systemd/system/serial-getty@.service
+mkdir $out/usr/lib/systemd/system/serial-getty@.service.d
+cat <<EOF > $out/usr/lib/systemd/system/serial-getty@.service.d/override.conf
+[Service]
+ExecStart=
+ExecStart=-/sbin/getty -L %I 115200 vt100
+EOF
 
-sed -i 's#After=\(.*\)#After=sysroot.mount \1#' $out/usr/lib/systemd/system/systemd-repart.service
 cat <<EOF > $out/etc/repart.d/10-esp.conf
 [Partition]
 Type=esp