Proxmox VM Boot Failure: Diagnosing and Fixing a Missing or Offline Storage Pool
Learn how to identify, verify, and resolve a Proxmox VM boot failure caused by an offline or missing storage pool, with step‑by‑step checks and fixes.
06 Nov 2025, 19:07 UTC

Problem Overview
A virtual machine (VM) in Proxmox VE fails to boot and the console shows “No bootable device”. The VM appears powered on, but the operating system cannot locate its disk.
Diagnostic Overview
| Condition | Likely Cause | Visible Symptom |
|---|---|---|
| VM does not boot | Storage pool is offline or the VM disk file is missing from the selected storage | “No bootable device” message in the Proxmox console |
Ordered Checks
- Check 1 – Verify pool status
Run the command
pvesm statuson the Proxmox host (requires root or sudo). The output lists all storage pools and their state (online, offline, disabled). If the pool that the VM uses shows “offline” or “disabled”, the pool must be brought online before the VM can access its disk. - Check 2 – Confirm disk file existence
Log into the host via SSH (root or sudo) and list the directory that holds the VM’s disk files, e.g.
/var/lib/vz//. The file name should match the disk listed in the VM configuration (look fordisk0or similar). If the file is absent, the disk may have been deleted, moved, or the storage path is incorrect.
Fixes Tied to Findings
- If
pvesm statusshows the pool offline, activate it withpvesm activate. Example:pvesm activate mypool. This command changes the pool state from offline to online and makes all disks within it visible to VMs. - If the disk file is missing, you have two options:
- Re‑attach the original disk by locating the correct storage path and ensuring the file exists, then restart the VM.
- Create a new disk in the same storage pool and attach it to the VM using the Proxmox web UI or the
qm setcommand, e.g.qm set 101 -disk0 /var/lib/vz//newdisk.vma.
qm start. Example:qm start 101.
Escalation Criteria
If the VM still reports “No bootable device” after confirming the pool is online and the disk file exists, consider the following escalation steps:
- Refresh the ZFS pool metadata. In older Proxmox 6.x releases a known bug can prevent ZFS disks from appearing until the pool is refreshed. Run
zpool online -eor simply reboot the host. If the problem persists, upgrade to Proxmox VE 7.x or later, where the bug is fixed. - Check that no other VMs depend on the same pool. Activating the pool may cause resource contention; ensure the pool is not in use by critical VMs during the change.
- Examine the system journal for task errors:
journalctl -u pve/tasks. Look for messages indicating I/O failures, permission problems, or storage metadata corruption. - If the pool is online but the disk still missing, verify that the VM configuration points to the correct storage container (e.g., container ID vs. pool name). Use
qm setto adjust the storage reference.
Practical Verification
After applying a fix, run qm start and watch the console. If the VM boots, verify the operating system starts normally. Then check the task log for any lingering errors:
journalctl -u pve/tasks
If the VM continues to fail, re‑run pvesm status to ensure the pool remains active and double‑check the exact path of the disk file. A mismatch between the VM configuration and the actual file location is a common cause of repeated failures.
Practical Note Before Changes
Before making any changes, take a snapshot of the VM or backup its disk to avoid data loss.
Limitations and Risks
Changing the activation state of a storage pool affects all VMs that use that pool. If other VMs rely on the same pool, bringing it online may temporarily increase I/O load or cause brief service interruptions. Always perform the check during a maintenance window or on a non‑production node if possible.
Older Proxmox 6.x versions have a documented ZFS refresh bug; upgrading to a current release mitigates this risk and provides better storage handling.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.