Skip to content

Commit 4a2b992

Browse files
committed
Merge branch 'main' into Meera-SupportArticles-Working
2 parents 8d0bea5 + d5bc7b9 commit 4a2b992

25 files changed

Lines changed: 333 additions & 1246 deletions

.openpublishing.redirection.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "support/windows-client/windows-tss/gather-information-using-tss-sql-cluster-ag-fci-issues.md",
5+
"redirect_url": "/troubleshoot/windows-client/windows-tss/collect-data-analyze-troubleshoot-sql-cluster-ag-fci-scenarios",
6+
"redirect_document_id": false
7+
},
8+
{
9+
"source_path": "support/azure/virtual-machines/windows/performance-diagnostics.md",
10+
"redirect_url": "/azure/azure-monitor/vm/performance-diagnostics?tabs=windows",
11+
"redirect_document_id": false
12+
},
13+
{
14+
"source_path": "support/azure/virtual-machines/windows/how-to-use-perfinsights.md",
15+
"redirect_url": "/azure/azure-monitor/vm/performance-diagnostics-run?tabs=windows",
16+
"redirect_document_id": false
17+
},
18+
{
19+
"source_path": "support/azure/virtual-machines/windows/performance-diagnostics-vm-extension.md",
20+
"redirect_url": "/azure/azure-monitor/vm/performance-diagnostics-analyze?tabs=windows",
21+
"redirect_document_id": false
22+
},
23+
{
24+
"source_path": "support/azure/virtual-machines/windows/perfinsights-and-scale-set-vm-instances.md",
25+
"redirect_url": "/azure/azure-monitor/vm/performance-diagnostics-extension",
26+
"redirect_document_id": false
27+
},
328
{
429
"source_path": "support/windows-client/windows-tss/gather-information-using-tss-hyper-v-issues.md",
530
"redirect_url": "/troubleshoot/windows-client/windows-tss/collect-data-analyze-troubleshoot-hyperv-scenarios",

support/azure/azure-monitor/app-insights/telemetry/investigate-missing-telemetry.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,8 @@ This issue occurs if the admin doesn't install the application or if no tenant u
400400
401401
### [Node.js](#tab/nodejs)
402402

403+
#### Enable error logs
404+
403405
Turn on internal logs by using the following setup. After you enable the logs, the console shows error logs, including any errors that are related to Microsoft Entra integration. Examples include failing to generate the token with the wrong credentials or if the ingestion endpoint doesn't authenticate by using the provided credentials.
404406

405407
```javascript

support/azure/virtual-desktop/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,7 @@ items:
3535
href: ./troubleshoot-session-host-configuration-update.md
3636
- name: Troubleshoot session host virtual machine configuration
3737
href: ./troubleshoot-vm-configuration.md
38+
- name: Troubleshoot ephemeral OS disks
39+
href: ./troubleshoot-ephemeral-os-disks.md
3840
- name: Win key remains held after pressing Ctrl+Win+L in a remote session
3941
href: win-key-remains-held-after-pressing-ctrl-win-l-in-remote-session.md
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Troubleshoot ephemeral OS disks in Azure Virtual Machines (VMs) and Azure Virtual Desktop (AVD)
3+
description: Resolve deployment failures, data loss, and feature limitations with ephemeral OS disks for Azure Virtual Machines (VMs) and Azure Virtual Desktop (AVD). Get troubleshooting steps and best practices.
4+
ms.topic: troubleshooting
5+
ms.date: 10/23/2025
6+
ms.reviewer: kaushika
7+
audience: itpro
8+
ms.custom:
9+
- sap:Azure Virtual Desktop\Remote Desktop Clients\Redirecting resources via the client
10+
- pcy:wincomm-user-experience
11+
12+
---
13+
# Troubleshoot ephemeral OS disks in Azure Virtual Machines (VMs) and Azure Virtual Desktop (AVD)
14+
15+
## Summary
16+
17+
Ephemeral OS disks (EOSD) are designed for Azure Virtual Machines (VMs) and Azure Virtual Desktop (AVD) session hosts, offering faster provisioning and reduced storage costs. However, users might encounter deployment failures, unexpected data loss, or functional limitations when the stateless design of EOSD and its dependencies on VM size and local storage aren't fully understood. This article helps identify and resolve these issues.
18+
19+
## Symptoms
20+
21+
- Deployment failures occur because of insufficient local storage for the OS image on specific VM sizes.
22+
- Loss of OS-level changes after stopping, deallocating, or reimaging a VM.
23+
- Confusion arises from unsupported EOSD features like snapshots, backups, and encryption.
24+
- Operational delays and increased support cases for AVD and stateless workloads.
25+
26+
## Troubleshooting Guidance
27+
28+
### VM size incompatibility
29+
30+
**Cause**: Some VM sizes don't have enough local cache or temporary disk space to accommodate the OS image, causing deployment failures.
31+
32+
**Solution**:
33+
34+
- Check that the VM size supports EOSD by verifying the local cache or temporary disk size.
35+
- Use the Azure CLI command `EphemeralOSDiskSupported` to confirm compatibility.
36+
- For AVD, ensure the Temp Disk placement is selected during VM creation, as NVMe is not supported in public preview.
37+
38+
### Misunderstanding EOSD persistence
39+
40+
**Cause**: Ephemeral OS disks are designed as stateless disks, which means they don't support persistent features like snapshots, backups, or encryption.
41+
42+
**Solution**: Use managed OS disks for persistent features. If you need features such as backups, snapshots, or encryption, switch to managed OS disks instead of EOSD for your Azure VMs or AVD session hosts.
43+
44+
### Lifecycle mismanagement
45+
46+
**Cause**: Stop and deallocate operations wipe the OS state on EOSD, causing data loss.
47+
48+
**Solution**: Avoid stop and deallocate operations.
49+
50+
- Don't stop or deallocate VMs using EOSD, as this leads to data loss. Instead, design stateless workloads.
51+
- Persist user profiles externally using FSLogix profile containers or Azure Files.
52+
53+
### Incorrect DiffDiskPlacement configuration
54+
55+
**Cause**: Selecting an unsupported placement option, such as NVMe, can cause deployment issues.
56+
57+
**Solution**: Correct DiffDiskPlacement configuration
58+
59+
- For AVD session hosts, ensure the Temp Disk placement is selected during deployment.
60+
- Avoid selecting NVMe placement during public preview to prevent deployment issues.
61+
62+
### Regional SKU rollout gaps
63+
64+
**Cause**: Incomplete rollout of supported SKUs or backend bugs cause regional deployment issues.
65+
66+
**Solution**: Address regional SKU rollout gaps
67+
68+
- Monitor Azure announcements for updates on SKU availability.
69+
- Deploy to another region or select a different SKU if rollout gaps affect your deployment.
70+
71+
### Best practices
72+
- **Validate VM size and placement:** Before deployment, ensure your VM’s local cache or temporary disk can accommodate the OS image size.
73+
- **Design stateless workloads:** Persist user profiles and application data externally using FSLogix profile containers or Azure Files.
74+
- **Avoid stop/deallocate operations:** Use restart or delete/recreate logic for autoscale scenarios to prevent data loss.
75+
- **Communicate limitations upfront:** Inform teams that EOSD doesn't support snapshots, backups, or Azure Disk Encryption.
76+
- **Monitor regional availability:** Check supported SKUs and regions using Azure documentation before deployment.
77+
- **Set up automated configuration:** Use VM extensions or scripts to reapply settings and applications after reimaging.
78+
- **For AVD environments:**
79+
1. Use Temp Disk for ephemeral OS disk placement (NVMe isn't supported in public preview).
80+
1. Persist user profiles with FSLogix profile containers.
81+
1. Store application packages on Azure Files or Azure NetApp Files.
82+
1. Set up autoscale rules to delete and recreate hosts instead of deallocating them.
83+
84+
### More information
85+
86+
For further details, refer to the following resources:
87+
- [Ephemeral OS disks for AVD session hosts](/azure/virtual-desktop/deploy/session-hosts/ephemeral-os-disks)
88+
- [Ephemeral OS disks - Frequently Asked Questions](/azure/virtual-machines/ephemeral-os-disks-faq)

support/azure/virtual-machines/linux/convert-mbr-partition-to-gpt.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: Failed to resize MBR partitions for a data disk larger than 2 TB
33
description: Provides a solution to an issue where you can't resize a Master Boot Record (MBR) partition for a data disk larger than 2 TB in an Azure Linux virtual machine.
44
ms.service: azure-virtual-machines
5-
ms.date: 04/29/2024
6-
ms.reviewer: brfett, v-weizhu
7-
ms.custom: sap:Assistance with resizing a disk, linux-related-content
5+
ms.date: 10/22/1025
6+
ms.reviewer: brfett
7+
ms.custom: sap:Assistance with disk operations, linux-related-content
88
---
99
# Unable to resize MBR partition for a data disk larger than 2 TB in Linux virtual machine
1010

support/azure/virtual-machines/linux/create-swap-file-linux-vm.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
title: Create a SWAP file for an Azure Linux VM
33
description: Describes how to create a SWAP file for an Azure Linux VM.
4-
ms.date: 09/15/2025
4+
ms.date: 10/22/2025
55
ms.service: azure-virtual-machines
6-
ms.custom: sap:VM Admin - Linux (Guest OS), linux-related-content
6+
ms.custom: sap:Assistance with disk operations, linux-related-content
77
ms.collection: linux
8-
ms.author: mabicca
9-
author: mabicca
10-
ms.reviewer: v-weizhu
8+
ms.author: jarrettr
9+
author: JarrettRenshaw
10+
ms.reviewer: mabicca
1111
---
1212

1313
# Create a SWAP partition for an Azure Linux VM
@@ -87,7 +87,7 @@ You can create a SWAP partition by using one of the following options.
8787
1. Make the script executable:
8888
8989
```bash
90-
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
90+
sudo chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
9191
```
9292
9393
1. Stop and start the VM. Stopping and starting the VM is only necessary the first time after you create the SWAP file.

support/azure/virtual-machines/linux/linux-hyperv-issue.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ Or
6767
1. Identify the file that disables the hv_netvsc driver and the corresponding line numbers by running the following command:
6868

6969
```bash
70-
grep -nr "hv_netvsc" /etc/modprobe.d/
70+
sudo grep -nr "hv_netvsc" /etc/modprobe.d/
7171
```
7272

7373
2. Modify the corresponding file and comment out or delete the hv_netvsc entries:
7474

7575
:::image type="content" source="media/linux-hyperv-issue/hv-netvsc-disabled.png" alt-text="Screenshot that shows the possible configuration file contents used to disable network drivers.":::
7676

7777
```bash
78-
vi /etc/modprobe.d/disable.conf
78+
sudo vi /etc/modprobe.d/disable.conf
7979
```
8080

8181
> [!NOTE]
@@ -88,13 +88,13 @@ Or
8888
- For RHEL/SLES-based images
8989

9090
```bash
91-
# dracut -f -v
91+
sudo dracut -f -v
9292
```
9393

9494
- For Ubuntu/Debian-based images
9595

9696
```bash
97-
# mkinitramfs -k -o /boot/initrd.img-$(uname -r)
97+
sudo mkinitramfs -k -o /boot/initrd.img-$(uname -r)
9898
```
9999

100100
6. Reboot the VM.
@@ -104,19 +104,19 @@ Always take a backup of the original initial RAMdisk image to facilitate the rol
104104
- For RHEL-based images:
105105

106106
```bash
107-
# cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak
107+
sudo cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak
108108
```
109109

110110
- For SLES-based images:
111111

112112
```bash
113-
# cp /boot/initrd-<kernelVersion> /boot/initrd-<kernelVersion>.bak
113+
sudo cp /boot/initrd-<kernelVersion> /boot/initrd-<kernelVersion>.bak
114114
```
115115

116116
- For Ubuntu/Debian-based images:
117117

118118
```bash
119-
# cp /boot/initrd.img-<kernelVersion> /boot/initrd.img-<kernelVersion>.bak
119+
sudo cp /boot/initrd.img-<kernelVersion> /boot/initrd.img-<kernelVersion>.bak
120120
```
121121

122122
### <a id="reenable-hv_netvsc-offline"></a>Solution 2: Enable Hyper-V network driver offline
@@ -154,7 +154,7 @@ If the issue continues even though the Hyper-V network driver is enabled, use on
154154
7. Generally, a NIC MAC address would only change if a NIC is deleted or added by the administrator or a NIC is updated in the backend. If network configuration via cloud-init isn't desired, and the `apply_network_config` parameter needs to be set to false, delete the */var/lib/cloud/instance/obj.pkl* file and reboot the system.
155155

156156
```bash
157-
# rm /var/lib/cloud/instance/obj.pkl
157+
sudo rm /var/lib/cloud/instance/obj.pkl
158158
```
159159

160160
8. Once the changes are applied, restart the system.
@@ -213,7 +213,7 @@ If the VM is inaccessible due to other Hyper-V drivers being disabled, use an of
213213
1. Run the following command to identify the file that disables the hv_utils, hv_vmbus, hv_storvsc, or hv_netvsc driver and the corresponding line number.
214214
215215
```bash
216-
egrep -nr "hv_utils|hv_vmbus|hv_storvsc|hv_netvsc" /etc/modprobe.d/
216+
sudo egrep -nr "hv_utils|hv_vmbus|hv_storvsc|hv_netvsc" /etc/modprobe.d/
217217
```
218218
219219
2. Modify the corresponding file and comment out or delete the hv_utils, hv_vmbus, hv_storvsc, or hv_netvsc entries. The entries will most commonly be any of the following (or both):
@@ -223,7 +223,7 @@ If the VM is inaccessible due to other Hyper-V drivers being disabled, use an of
223223
:::image type="content" source="media/linux-hyperv-issue/hv-disabled-example-2.png" alt-text="Screenshot that shows the possible configuration file contents used to disable kernel modules/drivers.":::
224224
225225
```bash
226-
vi /etc/modprobe.d/disable.conf
226+
sudo vi /etc/modprobe.d/disable.conf
227227
```
228228
229229
> [!IMPORTANT]
@@ -236,13 +236,13 @@ If the VM is inaccessible due to other Hyper-V drivers being disabled, use an of
236236
- For RHEL/SLES-based images
237237
238238
```bash
239-
# dracut -f -v
239+
sudo dracut -f -v
240240
```
241241
242242
- For Ubuntu/Debian-based images
243243
244244
```bash
245-
# mkinitramfs -k -o /boot/initrd.img-$(uname -r)
245+
sudo mkinitramfs -k -o /boot/initrd.img-$(uname -r)
246246
```
247247
248248
5. Once the changes are applied, use the `az vm repair restore` command to perform an automatic OS disk swap with the original VM and reboot the system.

support/azure/virtual-machines/linux/serial-console-linux.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ ms.service: azure-virtual-machines
1111
ms.collection: linux
1212
ms.tgt_pltfrm: vm-linux
1313
ms.workload: infrastructure-services
14-
ms.date: 10/16/2025
15-
ms.author: jarrettr
16-
ms.reviewer: mbifeld
14+
ms.date: 09/10/2025
15+
ms.author: mbifeld
1716
---
1817

1918
# Azure Serial Console for Linux
@@ -89,9 +88,8 @@ By default, all subscriptions have serial console access enabled. You can disabl
8988

9089
### Use Serial Console with custom boot diagnostics storage account firewall enabled
9190

92-
> [!CAUTION]
93-
> There's a known issue where Azure Serial Console might fail to connect when a custom boot diagnostics storage account has firewall restrictions. This issue occurs because Azure Serial Console runs in Microsoft's internal tenant, and firewall rules on the customer-managed storage account might block its access, even with correct permissions.
94-
> To avoid connectivity issues, [switch to managed boot diagnostics](../windows/boot-diagnostics.md#enable-boot-diagnostics-on-existing-virtual-machine) (recommended) or remove the firewall on the custom boot diagnostics storage account.
91+
> [!WARNING]
92+
> There's a known issue where Azure Serial Console might fail to connect when a custom boot diagnostics storage account has firewall restrictions when using the [az serial-console](/cli/azure/serial-console) command. To avoid connectivity issues, use Serial Console in the Azure Portal.
9593
9694
> [!IMPORTANT]
9795
> By the end of 2025, Azure Serial Console will no longer utilize boot diagnostics storage accounts for establishing a connection. No customer action is required for this change. This change doesn't affect serial logs or screenshots.

support/azure/virtual-machines/linux/toc.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
items:
12
- name: Welcome
23
href: welcome-virtual-machines-linux.yml
34

@@ -262,13 +263,13 @@
262263
href: convert-mbr-partition-to-gpt.md
263264
- name: VHD is not supported when you create a VM in Azure
264265
href: ../windows/vhd-not-supported-vm-azure.md?context=/troubleshoot/azure/virtual-machines/linux/context/context
266+
- name: Create a SWAP file
267+
href: create-swap-file-linux-vm.md
265268

266269
- name: Linux administration
267270
items:
268271
- name: Configure multiple NICs
269272
href: linux-vm-multiple-virtual-network-interfaces-configuration.md
270-
- name: Create a SWAP file
271-
href: create-swap-file-linux-vm.md
272273
- name: Maximum RAM memory of Linux VM
273274
href: max-linux-ram-limited-64-gb.md
274275
- name: Configure custom DNS servers

0 commit comments

Comments
 (0)