I had the same problem. Your rootfs is fine. You need to fix your boot files.
Steps to resolve boot. All as root on the workstation you are using to fix your sd:
1. Back up your sd card
2. Download and extract these files into a working directory
https://archlinuxarm.org/packages/aarch ... spberrypi43. Copy the files to your sd cards boot partition
and overwrite/merge all files and folders.
4. Check the rootfs for the additional directories downloaded above to see if the files exist (usr/ & /etc). We mostly want to be sure /etc/mkinitcpio.d/ contains only one config file (unless your fancy with custom kernals and image outputs). It should contain either aarch64 or raspi preset file. Updates will create the arch version if it doesn't exist so it's optimal to use the arch preset file... they do the same thing because they have the same script.
Archive which ever one you don't want by changing the extension to old. We will need this later for mkiniocio -P (More than one preset file will generate images for each confif file and just creates unnecessary work for mkinit).
5. make sure /etc/fstab contains the correct mount points for /proc / and /boot accordingly.
6. edit boot/cmdline.text to the following text, changing the mount to the rootfs of your rootfs device. You can read more about it on the raspi-config / eeprom config wiki on the rpi site. I use serial console for setup but the following is the default.
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
7. Reseat your SD card and boot. If the pi boots into kernel panic [rootfs] use commands:
mount /dev/<your rfs device> /new_mount press return
exit press return.
mount /dev/mmcblk0p2 /new_root
exit
Your rootfs should boot.
8. Once logged in open terminal. As root run command mkinitpcio -P. Your boot init should generate at this point (only once per the changes we made in #3 above). At this point you'll want to back up your boot partition. I created an update.sh that runs updates as sudo, waits for the process to be done then copies my boot files back to the boot partition as sudo and replaces them.
let me know how your fare.
K