Skip to content

Commit af1dbbf

Browse files
Merge pull request #2210 from madeline-underwood/Azure
Azure_JA to review
2 parents d191047 + 1d615a7 commit af1dbbf

File tree

5 files changed

+168
-128
lines changed

5 files changed

+168
-128
lines changed

content/learning-paths/servers-and-cloud-computing/azure-vm/_index.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
---
22
title: Create an Azure Linux 3.0 virtual machine with Cobalt 100 processors
33

4-
draft: true
5-
cascade:
6-
draft: true
4+
minutes_to_complete: 120
75

8-
minutes_to_complete: 120
9-
10-
who_is_this_for: This Learning Path explains how to create a virtual machine on Azure running Azure Linux 3.0 on Cobalt 100 processors.
6+
who_is_this_for: This is an advanced topic for developers who want to run Azure Linux 3.0 on Arm-based Cobalt 100 processors in a custom virtual machine.
117

128

139
learning_objectives:
14-
- Use QEMU to create a raw disk image, boot a VM using an Aarch64 ISO, install the OS, and convert the raw disk image to VHD format.
15-
- Upload the VHD file to Azure and use the Azure Shared Image Gallery (SIG) to create a custom image.
16-
- Use the Azure CLI to create an Azure Linux 3.0 VM for Arm, using the custom image from the Azure SIG.
10+
- Use QEMU to create a raw disk image
11+
- Boot a virtual machine using an AArch64 ISO and install Azure Linux 3.0
12+
- Convert the raw disk image to VHD format
13+
- Upload the VHD file to Azure
14+
- Use Azure Shared Image Gallery (SIG) to create a custom image
15+
- Create an Azure Linux 3.0 virtual machine on Arm using the Azure CLI and the custom image
1716

1817
prerequisites:
19-
- A [Microsoft Azure](https://azure.microsoft.com/) account with permission to create resources, including instances using Cobalt 100 processors.
20-
- A Linux machine with [QEMU](https://www.qemu.org/download/) and the [Azure CLI](/install-guides/azure-cli/) installed and authenticated.
18+
- A [Microsoft Azure](https://azure.microsoft.com/) account with permission to create resources, including instances using Cobalt 100 processors
19+
- A Linux machine with [QEMU](https://www.qemu.org/download/) and the [Azure CLI](/install-guides/azure-cli/) installed and authenticated
2120

2221
author: Jason Andrews
2322

@@ -38,19 +37,19 @@ operatingsystems:
3837

3938
further_reading:
4039
- resource:
41-
title: Azure Virtual Machines documentation
40+
title: Virtual machines in Azure
4241
link: https://learn.microsoft.com/en-us/azure/virtual-machines/
4342
type: documentation
4443
- resource:
45-
title: Azure Shared Image Gallery documentation
44+
title: Store and share images in an Azure Compute Gallery
4645
link: https://learn.microsoft.com/en-us/azure/virtual-machines/shared-image-galleries
4746
type: documentation
4847
- resource:
49-
title: QEMU User Documentation
48+
title: QEMU Documentation
5049
link: https://wiki.qemu.org/Documentation
5150
type: documentation
5251
- resource:
53-
title: Upload a VHD to Azure and create an image
52+
title: Upload a VHD to Azure or copy a managed disk to another region - Azure CLI
5453
link: https://learn.microsoft.com/en-us/azure/virtual-machines/linux/upload-vhd
5554
type: documentation
5655

content/learning-paths/servers-and-cloud-computing/azure-vm/azure-vm.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,74 +6,74 @@ weight: 3
66
layout: learningpathall
77
---
88

9-
You can view the Azure Linux 3.0 project on [GitHub](https://github.com/microsoft/azurelinux). There are links to the ISO downloads in the project README.
9+
## How do I create an Azure Linux image for Arm?
1010

11-
Using QEMU, you can create a raw disk image and boot a virtual machine with the ISO to install the OS on the disk.
11+
You can view the Azure Linux 3.0 project on [GitHub](https://github.com/microsoft/azurelinux). The project README includes links to ISO downloads.
1212

13-
Once the installation is complete, you can convert the raw disk to a fixed-size VHD, upload it to Azure Blob Storage, and then use the Azure CLI to create a custom Arm image.
13+
Using [QEMU](https://www.qemu.org/), you can create a raw disk image, boot a virtual machine with the ISO, and install the operating system. After installation is complete, you'll convert the image to a fixed-size VHD, upload it to Azure Blob Storage, and use the Azure CLI to create a custom Arm image.
1414

15-
## Download and create a virtual disk file
15+
## How do I download the Azure Linux ISO and create a raw disk image?
1616

17-
Use `wget` to download the Azure Linux ISO image file.
17+
Use `wget` to download the Azure Linux ISO image file:
1818

1919
```bash
2020
wget https://aka.ms/azurelinux-3.0-aarch64.iso
2121
```
2222

23-
Use `qemu-img` to create a 32 GB empty raw disk image to install the OS.
24-
25-
You can increase the disk size by modifying the value passed to `qemu-img`.
23+
Create a 32 GB empty raw disk image to install the OS:
2624

2725
```bash
2826
qemu-img create -f raw azurelinux-arm64.raw 34359738368
2927
```
3028

31-
## Boot and install the OS
29+
{{% notice Note %}}
30+
You can change the disk size by adjusting the value passed to `qemu-img`. Ensure it meets the minimum disk size requirements for Azure (typically at least 30 GB).
31+
{{% /notice %}}
32+
33+
34+
## How do I install Azure Linux on a raw disk image using QEMU?
3235

3336
Use QEMU to boot the operating system in an emulated Arm VM.
3437

3538
```bash
36-
qemu-system-aarch64 \
37-
-machine virt \
38-
-cpu cortex-a72 \
39-
-m 4096 \
40-
-nographic \
41-
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
42-
-drive if=none,file=azurelinux-arm64.raw,format=raw,id=hd0 \
43-
-device virtio-blk-device,drive=hd0 \
44-
-cdrom azurelinux-3.0-aarch64.iso \
45-
-netdev user,id=net0 \
39+
qemu-system-aarch64 \
40+
-machine virt \
41+
-cpu cortex-a72 \
42+
-m 4096 \
43+
-nographic \
44+
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
45+
-drive if=none,file=azurelinux-arm64.raw,format=raw,id=hd0 \
46+
-device virtio-blk-device,drive=hd0 \
47+
-cdrom azurelinux-3.0-aarch64.iso \
48+
-netdev user,id=net0 \
4649
-device virtio-net-device,netdev=net0
4750
```
4851

49-
Navigate through the installer by entering the hostname, username, and password for the custom image.
50-
You should use the username of `azureuser` if you want match the instructions on the following pages.
51-
52-
Be patient, it takes some time to complete the full installation.
52+
Follow the installer prompts to enter the hostname, username, and password. Use `azureuser` as the username to ensure compatibility with later steps.
5353

54-
At the end of installation you are prompted for confirmation to reboot the system.
54+
{{% notice Note %}}The installation process takes several minutes.{{% /notice %}}
5555

56-
Once the newly installed OS boots successfully, install the Azure Linux Agent for VM provisioning, and power off the VM.
56+
At the end of installation, confirm the reboot prompt. After rebooting into the newly-installed OS, install and enable the Azure Linux Agent:
5757

5858
```bash
59-
sudo dnf install WALinuxAgent -y
60-
sudo systemctl enable waagent
61-
sudo systemctl start waagent
59+
sudo dnf install WALinuxAgent -y
60+
sudo systemctl enable waagent
61+
sudo systemctl start waagent
6262
sudo poweroff
6363
```
6464

65-
Be patient, it takes some time to install the packages and power off.
65+
{{% notice Note %}} It can take a few minutes to install the agent and power off the VM.{{% /notice %}}
6666

67-
## Convert the raw disk to VHD Format
67+
## How do I convert a raw disk image to a fixed-size VHD for Azure?
6868

69-
Now that the raw disk image is ready to be used, convert the image to fixed-size VHD, making it compatible with Azure.
69+
Now that the raw disk image is ready for you to use, convert it to fixed-size VHD, which makes it compatible with Azure.
7070

7171
```bash
7272
qemu-img convert -f raw -o subformat=fixed,force_size -O vpc azurelinux-arm64.raw azurelinux-arm64.vhd
7373
```
7474

7575
{{% notice Note %}}
76-
VHD files have 512 bytes of footer attached at the end. The `force_size` flag ensures that the exact virtual size specified is used for the final VHD file. Without this, QEMU may round the size or adjust for footer overhead (especially when converting from raw to VHD). The `force_size` flag forces the final image to match the original size. This flag makes the final VHD size a whole number in MB or GB, which is required for Azure.
76+
VHD files include a 512-byte footer at the end. The `force_size` flag ensures the final image size matches the requested virtual size. Without this, QEMU might round the size or adjust for footer overhead (especially when converting from raw to VHD). The `force_size` flag forces the final image to match the original size. This is required for Azure compatibility, as it avoids rounding errors and ensures the VHD ends at a whole MB or GB boundary.
7777
{{% /notice %}}
7878

79-
Next, you can save the image in your Azure account.
79+
In the next step, you'll upload the VHD image to Azure and register it as a custom image for use with Arm-based virtual machines.
Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,56 @@
11
---
2-
title: "About Azure Linux"
2+
title: "Build and run Azure Linux 3.0 on an Arm-based Azure virtual machine"
33

44
weight: 2
55

66
layout: "learningpathall"
77
---
88

9-
## What is Azure Linux 3.0?
9+
## What is Azure Linux 3.0 and how can I use it?
1010

11-
Azure Linux 3.0 is a Linux distribution developed and maintained by Microsoft, specifically designed for use on the Azure cloud platform. It is optimized for running cloud-native workloads, such as containers, microservices, and Kubernetes clusters, and emphasizes performance, security, and reliability. Azure Linux 3.0 provides native support for the Arm (AArch64) architecture, enabling efficient, scalable, and cost-effective deployments on Arm-based infrastructure within Azure.
11+
Azure Linux 3.0 is a Microsoft-developed Linux distribution designed for cloud-native workloads on the Azure platform. It is optimized for running containers, microservices, and Kubernetes clusters, with a focus on performance, security, and reliability.
1212

13-
Currently, Azure Linux 3.0 is not available as a ready-made virtual machine image for Arm-based VMs in the Azure Marketplace. Only x86_64 images, published by Ntegral Inc., are offered. This means you cannot directly create an Azure Linux 3.0 VM for Arm from the Azure portal or CLI.
13+
Azure Linux 3.0 includes native support for the Arm architecture (AArch64), enabling efficient, scalable, and cost-effective deployments on Arm-based Azure infrastructure.
1414

15-
However, you can still run Azure Linux 3.0 on Arm-based Azure VMs by creating your own disk image. Using QEMU, an open-source machine emulator and virtualizer, you can build a custom Azure Linux 3.0 Arm image locally. After building the image, you can upload it to your Azure account as a managed disk or custom image. This process allows you to deploy and manage Azure Linux 3.0 VMs on Arm infrastructure, even before official images are available.
15+
## Can I run Azure Linux 3.0 on Arm-based Azure virtual machines?
1616

17-
This Learning Path guides you through the steps to build an Azure Linux 3.0 disk image with QEMU, upload it to Azure, and prepare it for use in creating virtual machines.
17+
At the time of writing, Azure Linux 3.0 isn't available as a prebuilt virtual machine image for Arm-based VMs in the Azure Marketplace. Only x86_64 images (published by Ntegral Inc.) are available. This means you can't directly create an Azure Linux 3.0 VM for Arm from the Azure portal or CLI.
1818

19-
Following this process, you'll be able to create and run Azure Linux 3.0 VMs on Arm-based Azure infrastructure.
19+
## How can I create and use a custom Azure Linux image for Arm?
2020

21-
To get started install the dependencies on your local Linux machine. The instructions work for both Arm or x86 running Ubuntu.
21+
To run Azure Linux 3.0 on an Arm-based VM, you'll need to build a custom image manually. Using [QEMU](https://www.qemu.org/), an open-source machine emulator and virtualizer, you can build the image locally. After the build completes, upload the resulting image to your Azure account as either a managed disk or a custom image resource. This process lets you deploy and manage Azure Linux 3.0 VMs on Arm-based Azure infrastructure, even before official images are published in the Marketplace. This gives you full control over image configuration and early access to Arm-native workloads.
22+
23+
This Learning Path guides you through the steps to:
24+
25+
- Build an Azure Linux 3.0 disk image with QEMU
26+
- Upload the image to Azure
27+
- Create a virtual machine from the custom image
28+
29+
By the end of this process, you'll be able to run Azure Linux 3.0 VMs on Arm-based Azure infrastructure.
30+
31+
## What tools do I need to build the Azure Linux image locally?
32+
33+
You can build the image on either an Arm or x86 Ubuntu system. First, install the required tools:
34+
35+
Install QEMU and related tools:
2236

2337
```bash
2438
sudo apt update && sudo apt install qemu-system-arm qemu-system-aarch64 qemu-efi-aarch64 qemu-utils ovmf -y
2539
```
2640

27-
You also need to install the Azure CLI. Refer to [How to install the Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest). You can also use the [Azure CLI install guide](/install-guides/azure-cli/) for Arm Linux systems.
41+
You'll also need the Azure CLI. To install it, follow the [Azure CLI install guide](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest).
42+
43+
If you're using an Arm Linux machine, see the [Azure CLI install guide](/install-guides/azure-cli/).
44+
45+
## How do I verify the Azure CLI installation?
2846

29-
Make sure the CLI is working by running the version command and confirm the version is printed.
47+
After installing the CLI, verify it's working by running the following command:
3048

3149
```bash
3250
az version
3351
```
3452

35-
You should see an output similar to:
53+
You should see an output similar to the following:
3654

3755
```output
3856
{
@@ -43,4 +61,4 @@ You should see an output similar to:
4361
}
4462
```
4563

46-
Continue to learn how to prepare the Azure Linux disk image.
64+
In the next section, you'll learn how to build the Azure Linux 3.0 disk image using QEMU.

0 commit comments

Comments
 (0)