Skip to main content

Command Palette

Search for a command to run...

Unable to Access Linux VM — How We Diagnosed and Recovered It ?

Published
3 min read

The Ticket

It started with a straightforward request — "Unable to access Linux VM."

No error message. No context. Just a server that wasn't responding. As an Azure Admin, this is one of the most common tickets you'll receive — and the key is to follow a systematic process rather than jumping straight to conclusions.

Step 1 — Try Access from the Jump Server

The first thing we always do is rule out the obvious.

We logged into our Jump Server (the secure bastion host we use to access VMs internally) and attempted to SSH into the Linux VM from there.

Result: Connection failed. The VM was not reachable from the jump server either — so this wasn't a local network or VPN issue on the user's side. The problem was with the VM itself.

Step 2 — Check if the VM is Running

Before panicking, check the basics. We went to the Azure Portal and checked the VM status.

Azure Portal → Virtual Machines → [VM Name] → Overview

Result: VM was showing as Running.

This was an important clue. The VM was powered on and Azure believed it was healthy — but something inside the OS was wrong.

Step 3 — Check Serial Console

Since the VM was running but unreachable, we opened the Azure Serial Console to look directly at what was happening inside the VM without needing a network connection.

Azure Portal → Virtual Machines → [VM Name] → Serial Console

What we saw immediately told us the story — the console output showed that the CPU was stuck.

This is a classic sign that the VM's operating system has hung — the kernel or a process has locked up, consuming the CPU and making the system completely unresponsive. No new connections can come in, no commands can run, and the OS is essentially frozen.

Step 4 — Raise Approval on the Ticket

In any professional environment, you never reboot a production server without approval.We have received approval within 15 min as it is a production server.

Step 5 — Reboot the VM

With approval in hand, we performed a restart from the Azure Portal:

Azure Portal → Virtual Machines → [VM Name] → STOP→START

We monitored the Serial Console during the reboot to watch the boot sequence in real time.

The VM booted cleanly — no errors, no missing files, no kernel panic.

Step 6 — Verify SSH Access

Once the VM was back up, we went back to the Jump Server and attempted SSH again.