Estimate total server downtime from shutdown, POST, kernel boot and service startup phases.
A full reboot's user-visible downtime spans five phases: gracefully stopping running services (systemd waits up to a per-unit timeout for each to shut down cleanly), the hardware POST/firmware self-test, the bootloader locating and loading the kernel, kernel initialization, and finally services starting back up before the system is truly ready to serve traffic. On physical servers, POST time (RAID controller init, remote management handshake, memory testing) frequently dominates the total far more than the actual OS boot phases, which is an important distinction from the boot-time breakdown that starts only once firmware has already handed off to the bootloader.
Total reboot time
reboot = shutdown_services + POST + bootloader + kernel + services_startup
systemd gives each service up to its configured TimeoutStopSec (90 seconds by default) to shut down cleanly before force-killing it — a single slow-to-stop service (e.g. a database performing a checkpoint/flush, or a service with a hung connection) can add its full timeout to total shutdown time.
No — a warm reboot (`reboot` command) typically skips lengthy hardware self-tests that a full cold power cycle triggers (especially memory testing on server-grade firmware), so reboot time is often meaningfully shorter than a power-off/power-on cycle on the same hardware.
Live migration (vMotion, virsh migrate) can move a running VM to another host entirely without a reboot for host-level maintenance, and even for guest OS patching, a VM's virtual firmware/BIOS phase is far faster than physical POST since there's no real hardware to initialize.