虚拟机重启指令因操作系统和虚拟化平台而异,Linux 系统使用 reboot 或 shutdown -r,Windows 系统使用 shutdown /r,而 VMware、Hyper-V、KVM 等平台又有各自的管理命令。
虚拟机不像物理机那样直接按电源键,重启操作要么在虚拟机内部执行系统命令,要么通过宿主机上的管理工具下发指令,搞混了不仅重启不了,还可能连不上管理界面,下面按操作场景拆开讲清楚。
虚拟机内部重启命令:Linux 与 Windows 各有一套
虚拟机内部执行重启,本质和物理机一样,命令就是系统命令,只是要注意,虚拟机里执行重启对宿主机资源释放的时机和物理机略有差异,有时会拖慢几秒。
Linux 虚拟机重启命令详解
Linux 下最常用的三条重启命令是 reboot、shutdown -r 和 systemctl reboot,具体用哪条取决于系统版本和初始化系统,行业共识认为,现代主流发行版(CentOS 7+、Ubuntu 16.04+、Debian 8+)都使用 systemd,三条命令最终都指向同一个底层动作,但细节上有区别。
- reboot:最直接的重启命令,普通用户执行会提示权限不足,需要 root 权限或 sudo 前缀,执行后系统立即开始关闭服务并重启。
- shutdown -r now:带延迟参数的重启,now 表示立即执行,也可以写成 shutdown -r +5 表示 5 分钟后重启,这条命令会先通知所有登录用户,再执行关机流程,对多用户环境更友好。
- systemctl reboot:systemd 系统的标准重启方式,官方推荐用这条,因为它会完整执行 systemd 的关机依赖关系,确保服务按顺序停止。
- reboot -f:强制重启,跳过所有服务停止流程,只在系统卡死、正常命令无响应时使用,虚拟机上执行这个相当于直接断电再开机,存在数据丢失风险。
实际操作中,推荐优先用 sudo reboot 或 sudo shutdown -r now,SSH 连接卡住,先检查控制台能否操作,不要一上来就强制重启,据行业统计数据,多数 Linux 虚拟机重启失败案例都源于强制重启导致的文件系统损坏。
Windows 虚拟机重启命令详解
Windows 虚拟机的重启命令以 shutdown 为核心,配合不同参数实现多种场景。
- shutdown /r:标准重启,会等待应用程序保存数据,执行后系统弹窗提示即将重启。
- shutdown /r /t 0:立即重启,/t 0 表示超时时间为零,不需要等待默认的 30 秒。
- shutdown /r /f:强制关闭正在运行的应用程序再重启,适合程序无响应时使用,加了 /t 0 就是终极重启组合:
shutdown /r /f /t 0。 - restart-computer:PowerShell 命令,效果等同于 shutdown /r,但更适合在脚本中使用,可以配合 -Force 参数强制重启。
Windows 虚拟机偶尔会遇到“重启卡在关机界面”的问题,多半是系统更新正在后台安装补丁,此时耐心等 10-15 分钟比强行断电更安全,如果多次重启都卡在同一界面,再考虑从宿主机强制断电。
宿主机管理平台的重启指令:VMware、Hyper-V、KVM 三大阵营
更多时候,运维人员是从宿主机或管理平台远程重启虚拟机,这时用的就不是虚拟机内部命令了。
VMware 虚拟机重启操作
VMware 平台分 vSphere(企业级)和 Workstation(桌面级),操作路径不同。
vSphere Web Client 界面重启:
- 登录 vSphere Web Client
- 找到目标虚拟机,右键点击
- 选择“客户机操作系统”下拉菜单
- 点击“重新启动”选项,系统会向虚拟机内部发送重启指令
这种方式要求虚拟机已安装 VMware Tools,否则该选项是灰色的,只能选“关闭电源”再“打开电源”,据 VMware 官方文档说明,未安装 Tools 的虚拟机无法接收优雅重启指令。
命令行通过 esxcli 或 powercli 也能操作:
# 在 ESXi 宿主机上执行(需要 SSH 登录) esxcli vm process list # 找到 VM ID esxcli vm process kill --type soft --world-id [VM ID] # 软重启,不生效则用 hard
PowerCLI 方式更可控:
Restart-VMGuest -VM "VM名称" -Confirm:$false
这条命令本质也是调用客户机内的重启接口,前提同样是要装 VMware Tools。
Hyper-V 虚拟机重启操作
微软 Hyper-V 在 Windows Server 和 Windows 10/11 专业版上都能用,重启方式分两种。
优雅重启(推荐):在 Hyper-V 管理器中选中虚拟机,右侧操作面板点“重启”,这条命令通过 Hyper-V 集成服务(相当于 VMware Tools)通知虚拟机内部执行重启,如果没装集成服务,会弹错误提示。
强制重启:相当于给虚拟机断电再上电,在管理器中执行“关闭”后再“启动”,PowerShell 命令如下:
# 优雅重启 Restart-VM -Name "VM名称" # 强制重启(先关再开) Stop-VM -Name "VM名称" -Force Start-VM -Name "VM名称"
如果虚拟机内部系统完全死机,SSH 和 RDP 都连不上,优雅重启会一直超时,此时只能 Stop-VM 加 Start-VM 组合操作,有一种情况很特殊:Windows 虚拟机卡在“正在重新启动”状态超过 15 分钟,直接 Stop-VM Start-VM 通常能解决。
KVM 虚拟机重启指令
KVM 基于 Linux 内核虚拟化,管理工具主要是 virsh,重启命令要看是否安装了 QEMU Guest Agent。
有 guest agent 时,优雅重启命令:
virsh reboot --domain vm-name --mode agent
没有 agent 或 agent 失效时,退化为 ACPI 模式:
virsh reboot --domain vm-name --mode acpi
ACPI 模式依赖虚拟机内的电源管理驱动响应关机信号,如果虚拟机的 ACPI 服务异常,这个命令也会失效,只能:
virsh destroy vm-name # 强制断电 virsh start vm-name # 重新开机
virsh destroy 名称听着吓人,但对 KVM 虚拟机来说就是强制断电的意思,任何情况下强制断电都有数据损坏风险,操作前确认虚拟机内没有关键读写任务。
跨云平台的虚拟机重启:简米云、酷番云、华为云操作路径
公有云场景下,重启入口统一在云控制台,底层命令由云厂商封装好了,不同云厂商的按钮位置和命名稍有差异,但整体逻辑一致。
简米云 ECS 控制台点击“实例”进入列表,勾选目标实例,底部操作栏有“重启”按钮,弹窗里可以选“强制重启”还是“普通重启”,酷番云 CVM 在实例详情页右侧操作栏找到“更多”,下拉菜单里有“重启”选项,华为云 ECS 也类似,但控制台对批量重启的限制更严格,最多一次选中 10 台。
云主机重启费用问题值得关注,大部分包年包月实例正常重启不额外计费,但按量付费实例在重启期间通常也不收取计算费用,只保留存储费用,如果重启后实例 IP 发生变化,涉及弹性公网 IP 重新绑定的场景,可能产生额外配置费用,据行业观察,约有较小比例的按量付费用户在频繁重启后发现账单有小额波动,原因多是磁盘或带宽计费周期跨月。
云平台重启虚拟机命令行的标准方式是调用 API,以简米云为例,核心参数是 InstanceId 和 Action=RebootInstance:
aliyun ecs RebootInstance --InstanceId i-xxxxxxxx
各云厂商 CLI 工具都支持类似操作,酷番云是
tccli cvm RebootInstances,华为云是 hcloud ECS RebootServer,API 方式适合批量管理和自动化运维,日常操作直接在控制台点按钮就行。
虚拟机重启失败排查流程
重启操作发出去后,虚拟机没反应,按下面顺序排查:
- 检查控制台界面:先看宿主机管理平台上的虚拟机状态,是“运行中”还是“已停止”,如果显示运行中但客户机没反应,大概率是系统内部卡死。
- 确认管理工具通信正常:VMware 检查 Tools 状态是否为“正在运行”,Hyper-V 检查集成服务版本,KVM 检查 guest agent 是否在线。
- 尝试内部命令:能 SSH 或 RDP 进系统就先执行系统重启命令,不要直接强制断电。
- 观察磁盘 IO 状态:如果虚拟机的磁盘 IO 持续繁忙(通过宿主机性能监视器查看),说明内部还有进程在写数据,此时强制重启大概率丢数据。
- 等待时间把控:普通 Windows 虚拟机重启超过 20 分钟、Linux 虚拟机超过 10 分钟仍无反应,大概率系统挂起,需要强制处理。
Linux 虚拟机强制重启后,下次开机多半会提示文件系统不一致,这是正常的 fsck 自检流程,常见情况是 fsck 卡在某个界面询问是否修复,输入 y 或 a(自动修复所有)就能继续,fsck 频繁触发,说明磁盘可能存在硬件隐患,需要考虑云盘或虚拟磁盘的健康状态。
常见问题速查
虚拟机重启命令是 reboot 还是 shutdown -r?
Linux 系统两者等价,reboot 是 shutdown -r 的简化形式,Windows 系统没有 reboot 命令,统一用 shutdown /r,跨平台脚本中建议用 shutdown 指令保持兼容性,或用 Ansible 的 reboot 模块自动适配系统类型。
为什么我的 Windows 虚拟机点了重启却一直无法重新连接?
最常见的是两种原因,其一,系统更新补丁正在后台安装,安装期间网络服务会短暂中断,等 10 分钟左右再试,其二,虚拟机停留在 BIOS 界面或引导菜单,提示按任意键继续,此时需要打开管理平台的控制台窗口查看屏幕内容,确认卡在哪个环节,用强制重启之前先看控制台,因为强制重启不会让未完成的系统更新继续安装,部分 Windows 更新在强制断电后可能出现回滚,导致重启时间翻倍,行业共识认为,Windows 虚拟机重启最稳妥的策略是先在控制台观察 10 分钟,再决定是否强制干预。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/616867.html





