On a CentOS 7 server, i got error “Kernel panic – not syncing: No working init found.” on boot.
This normally happen when you try boot wit wrong partition or system files are missing.
I checked the server in rescue mode. /boot looks good, also server had option for booting from network, so if it was problem with kernel or /boot files, it should have booted from network kernel.
Now i checked logs in /var/log, specifically /var/log/messages, checked log for recent boot, that ended up with lot of missing binary. On checking the / partition, i found /usr folder itself is missing. Look like some one deleted it.
Since /usr mostly contain system binary and installed software, i created a fresh CentOS 7 virtual machine and rsync the /usr folder to this server. Rebooted the server and it booted up properly.
Some of the software previously installed on the server like web server was missing, had to reinstall them.