Oel 9 Minimal
Overview
Oracle Linux 9 Minimal is the minimal package set variant of Oracle Linux 9, Oracle's binary-compatible enterprise Linux distribution with the Unbreakable Enterprise Kernel (UEK). No application is preinstalled, because the operating system is the product. The minimal build removes wireless and sound card firmware, the Cockpit web console, the tuning daemon, the boot splash and other packages a Hyper-V guest never uses. The result is a smaller image with a smaller surface to patch and secure that keeps everything the platform needs to boot, network, authenticate and update itself.
This guide covers deploying and operating Oracle Linux 9 Minimal on Microsoft Azure with the SecureAnyCloud preconfigured virtual machine image from the Azure Marketplace.
What you get:
- Oracle Linux 9, fully binary compatible with Red Hat Enterprise Linux 9, on the Unbreakable Enterprise Kernel (UEK)
- Minimal package set: wireless/sound firmware, Cockpit, tuned, sos and plymouth removed, with everything the platform needs to boot, network, patch and be managed by Azure kept
- Brought fully up to date at build time, with no pending security updates at capture
- Secure by default: SELinux in enforcing mode, key-only SSH (password authentication disabled) and root login locked
- No baked-in credentials: access is by the SSH key you choose at launch, so no two instances share a secret
- Unattended security updates armed and proven (
dnf-automatic.timerenabled, not just installed) - Azure Linux Agent (waagent) for cloud integration, and Chronyd for time synchronization
- Gen2 Hyper-V virtual machine support
- 24/7 SecureAnyCloud support
Platform: Microsoft Azure (Gen2 Hyper-V) Default user: azureuser (created from the SSH key you supply at deploy time)
Prerequisites
Before you deploy this image, make sure you have:
- An active Microsoft Azure subscription
- Access to the Azure Portal or Azure CLI
- An SSH key pair for Linux VM access
- Familiarity with Azure VM management
Recommended VM size: Standard_B2s (2 vCPU, 4 GB RAM) or larger. Oracle Linux 9 Minimal runs on the whole B, D and E series. Scale the size to suit your workload.
Deploy the Virtual Machine
Option A: Azure Portal
- In the Azure Marketplace, search for "Oracle Linux 9 Minimal SecureAnyCloud".
- Select the image and select Create.
- Configure the basics:
- Subscription: your Azure subscription.
- Resource Group: create a new group or select an existing one.
- Virtual Machine Name: a name for your VM.
- Region: your preferred Azure region.
- Size:
Standard_B2sis recommended. - Under Administrator Account, select SSH public key and paste your public key. This key becomes the
azureuserlogin. The image ships no password and no preinstalled key. - Under Inbound Port Rules, allow SSH (port 22).
- Select Review + Create, then select Create.
Option B: Azure CLI
az vm image terms accept --urn sac1647283583153:oel-9-minimal:default:latest
az vm create \
--resource-group myResourceGroup \
--name my-oel9-minimal-vm \
--image sac1647283583153:oel-9-minimal:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku StandardConnect via SSH
Find your VM's public IP, then connect:
az vm show --resource-group myResourceGroup --name my-oel9-minimal-vm --show-details --query publicIps -o tsv ssh azureuser@<public-ip>Only the SSH key you supplied at deploy time is accepted. Password authentication is disabled on the image.
Verify the Release
After you connect, confirm that you are on Oracle Linux 9:
cat /etc/oracle-release grep -E 'PRETTY_NAME|VERSION_ID' /etc/os-release uname -rExpected output:
Oracle Linux Server release 9.8 VERSION_ID="9.8" PRETTY_NAME="Oracle Linux Server 9.8" 6.12.0-204.92.4.4.3.el9uek.x86_64Check available disk and memory:
df -h / free -hCheck for Updates Since the Build
The image was patched at build time. This check lists any updates released since the build. Apply them with sudo dnf update -y.
sudo dnf -q check-update ; echo "exit=$? (100 = updates available, 0 = fully patched)"exit=0 means nothing is pending; exit=100 means updates released since the build are available.
Review the Security Posture
This image is secure by default. Verify the key hardening properties:
getenforce
sudo sshd -T | grep -E '^passwordauthentication'
sudo passwd -S root | awk '{print $1, $2}'Expected: SELinux Enforcing, passwordauthentication no, and root reported as LK (locked). Access is by your SSH key only.
Confirm the Azure Linux Agent is healthy:
systemctl is-active waagent
systemctl is-active chronydWhat "Minimal" Removed (and What It Kept)
This image starts from the standard Oracle Linux 9 cloud base and removes packages a Hyper-V guest cannot use: wireless and sound card firmware (linux-firmware, iwl*-firmware, alsa-firmware), the Cockpit web console, the tuned tuning daemon, the sos support report collector and the plymouth boot splash. Nothing that the platform needs to boot, network, authenticate, patch or be managed by Azure is touched. The removals are conservative, and each one is verified as present or absent at build time.
Confirm the trim yourself:
rpm -qa | wc -l for p in cockpit tuned sos plymouth; do rpm -q "$p" 2>&1; done df -h /A minimal instance reports each of cockpit, tuned, sos and plymouth as "package ... is not installed", while systemd, NetworkManager, openssh-server, cloud-init, WALinuxAgent, dnf, sudo and chrony are all still present and active.
The NFS RPC port binder, rpcbind, is also shipped disabled rather than removed. The default NFSv4 in Oracle Linux 9 does not need it, so leaving it disabled closes an undocumented listener on udp/tcp 111 without losing NFS client capability. If you need NFSv3, re-enable it yourself:
sudo systemctl enable --now rpcbind.socketKeeping the Image Up to Date
Unattended security updates are armed on this image out of the box. dnf-automatic.timer is enabled, and its effective configuration applies all available updates automatically, not just security-tagged ones. Oracle's updateinfo errata feed is sparse, so a security-only policy can silently apply nothing, and this image is configured to avoid that. Confirm the configuration yourself:
systemctl is-enabled dnf-automatic.timer
sudo dnf-automatic --timer 2>&1 | tail -5The standard BaseOS and AppStream repositories are enabled, so you can also update on your own schedule at any time:
- Apply the latest updates within the Oracle Linux 9 stream:
bash sudo dnf update -y
- Reboot if a new kernel was installed:
bash sudo dnf needs-restarting -r || sudo systemctl reboot
- Review only security advisories before applying them:
bash sudo dnf updateinfo list security sudo dnf update --advisory=<RLSA-ID>
Oracle Linux 9 ships two supported kernel lines side by side: the Unbreakable Enterprise Kernel (kernel-uek-*, booted by default) and the Red Hat Compatible Kernel (kernel-*). Both stay current on this image. Choose the one your workload needs with grubby or the standard dnf kernel package names.
Configure the Firewall (Optional)
The Azure Network Security Group (NSG) is the first line of network control. Oracle Linux also ships firewalld for host-level rules:
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reloadCommon Use Cases
- A lean base for building your own services with a smaller preinstalled package surface
- RHEL 9 compatible workloads that want a smaller patch and CVE footprint than a full desktop-capable image
- Cloud-native and container node images built on a trimmed enterprise OS
- Cost-sensitive and resource-sensitive VMs where every extra package adds size and security cost
Troubleshooting
Cannot Connect via SSH
- Verify that the VM is in the Running state in the Azure Portal.
- Check that port 22 is allowed in the Network Security Group.
- Make sure you are using the correct username:
azureuser. - Verify that your SSH private key matches the public key configured at deployment. Password login is disabled by design.
Azure Agent Not Running
sudo systemctl start waagent
sudo systemctl enable waagentPackage Manager Issues
If repositories are unreachable, check DNS resolution, then retry:
nslookup yum.oracle.com
sudo dnf clean all && sudo dnf update -yNeed NFSv3 Client Support
rpcbind ships disabled (see Step 6). If you need NFSv3 instead of the default NFSv4, re-enable it and its dependent services:
sudo systemctl enable --now rpcbind.socketImportant Notes
Oracle Linux is free and open source, and Oracle permits redistribution. Oracle provides the Oracle Linux binaries, updates and errata at no cost. A paid Oracle Linux Support subscription is optional and is not required to use, patch or resell the OS. The distribution is assembled from thousands of independently packaged components, each with its own license (GPL, LGPL, MIT, BSD, Apache-2.0, MPL and more), which you can read with rpm -qi <package> and under /usr/share/licenses/. No license fee or subscription is required to run this image. "Oracle Linux" is used here only to name the distribution the image contains. SecureAnyCloud is not affiliated with or endorsed by Oracle Corporation.
Support
For assistance with this image, contact SecureAnyCloud support:
- Website: secureanycloud.com
- Product catalog: secureanycloud.com/products
- User guides: secureanycloud.com/guides
- SLA: 24 hour response
Deploy on Azure
Launch Oracle Linux 9 Minimal on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com