Skip to content

Commit

Permalink
Add docs for Oracle Linux aarch64 images
Browse files Browse the repository at this point in the history
  • Loading branch information
taylorific committed Jun 23, 2024
1 parent a73475e commit 683ef7a
Show file tree
Hide file tree
Showing 2 changed files with 159 additions and 0 deletions.
48 changes: 48 additions & 0 deletions oraclelinux/cloud/docs/MOUNT_CLOUD_IMAGE_AARCH64.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Oracle Linux Cloud Images

https://yum.oracle.com/oracle-linux-templates.html

https://blogs.oracle.com/linux/post/a-quick-start-with-the-oracle-linux-templates-for-kvm

## Mount cloud image with qemu-nbd

```
$ curl -LO https://yum.oracle.com/templates/OracleLinux/OL9/u4/aarch64/OL9U4_aarch64-kvm-cloud-b90.qcow2
```

```
# Load the nbd module
$ sudo modprobe -v nbd
insmod /lib/modules/5.10.192-tegra/kernel/drivers/block/nbd.ko
# Verify the nbd module is loaded
$ lsmod | grep nbd
nbd 45056 0
$ ls /dev/nbd*
/dev/nbd0 /dev/nbd11 /dev/nbd14 /dev/nbd3 /dev/nbd6 /dev/nbd9
/dev/nbd1 /dev/nbd12 /dev/nbd15 /dev/nbd4 /dev/nbd7
/dev/nbd10 /dev/nbd13 /dev/nbd2 /dev/nbd5 /dev/nbd8
# Connect the QCOW2 image as a network block device
sudo qemu-nbd --connect=/dev/nbd0 OL9U4_aarch64-kvm-cloud-b90.qcow2
# Create a mount point directory
sudo mkdir /mnt/oracle-linux-9
$ $ sudo fdisk -l /dev/nbd0
Disk /dev/nbd0: 16 GiB, 17179869184 bytes, 33554432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3B884BAC-28D0-477E-A3B1-EAF10C9F4BA1
Device Start End Sectors Size Type
/dev/nbd0p1 2048 1050623 1048576 512M EFI System
/dev/nbd0p2 1050624 3147775 2097152 1G Linux filesystem
/dev/nbd0p3 3147776 11536383 8388608 4G Linux swap
/dev/nbd0p4 11536384 33552383 22016000 10.5G Linux filesystem
$ sudo mount /dev/nbd0p4 /mnt/oracle-linux-9
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# QEMU Oracle Linux Cloud Images

https://yum.oracle.com/oracle-linux-templates.html

https://blogs.oracle.com/linux/post/a-quick-start-with-the-oracle-linux-templates-for-kvm

## Oracle Linux 9

Download the Oracle Linux 9 Cloud Image

```
$ curl -LO https://yum.oracle.com/templates/OracleLinux/OL9/u4/aarch64/OL9U4_aarch64-kvm-cloud-b90.qcow2
$ qemu-img info OL9U4_aarch64-kvm-cloud-b90.qcow2
image: OL9U4_aarch64-kvm-cloud-b90.qcow2
file format: qcow2
virtual size: 16 GiB (17179869184 bytes)
disk size: 478 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
$ qemu-img convert \
-O qcow2 \
OL9U4_aarch64-kvm-cloud-b90.qcow2 \
oracle-linux-9.qcow2
# Resize the image
$ qemu-img resize \
-f qcow2 \
oracle-linux-9.qcow2 32G
```

Create a cloud init configuration

```
touch network-config
cat >meta-data <<EOF
instance-id: oracle-linux-9
local-hostname: oracle-linux-9
EOF
cat <<EOF > user-data
#cloud-config
password: superseekret
chpasswd:
expire: False
ssh_pwauth: True
EOF
```

Create the cloud-init ISO

```
sudo apt-get update
sudo apt-get install genisoimage
genisoimage \
-input-charset utf-8 \
-output cloud-init.iso \
-volid cidata -rational-rock -joliet \
user-data meta-data network-config
```

Create a firmware image

```
# Qemu expects aarch firmware images to be 64M so the firmware
# images can't be used as is, some padding is needed to
# create an image for pflash
dd if=/dev/zero of=flash0.img bs=1M count=64
dd if=/usr/share/AAVMF/AAVMF_CODE.fd of=flash0.img conv=notrunc
dd if=/dev/zero of=flash1.img bs=1M count=64
```

Run the VM with QEMU

```
# login: opc
qemu-system-aarch64 \
-name oracle-linux-9 \
-machine virt,accel=kvm,gic-version=3,kernel-irqchip=on \
-cpu host \
-smp 2 \
-m 2G \
-device virtio-keyboard \
-device virtio-mouse \
-device virtio-gpu-pci \
-nographic \
-device virtio-net-pci,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-drive file=oracle-linux-9.qcow2,if=virtio,format=qcow2 \
-cdrom cloud-init.iso \
-drive if=pflash,format=raw,readonly=on,unit=0,file=flash0.img \
-drive if=pflash,format=raw,unit=1,file=flash1.img
Ctrl-a h: Show help (displays all available commands).
Ctrl-a x: Exit QEMU.
Ctrl-a c: Switch between the monitor and the console.
Ctrl-a s: Send a break signal.
```

Login to the image

```
# opc / superseekret
ssh cloud-user@localhost -p 2222
```

0 comments on commit 683ef7a

Please sign in to comment.