2026-01-29 14:59:50 -08:00
2026-01-29 14:59:50 -08:00
2026-01-29 14:57:12 -08:00

RHEL 8.10 Offline Update Script

An interactive bash script for applying RHEL 8.10 updates from a local ISO file in air-gapped or disconnected environments.

Overview

This script guides administrators through the process of mounting an update ISO and applying patches to RHEL 8.10 systems that cannot reach Red Hat's CDN or Satellite servers.

Requirements

  • RHEL 8.10 system
  • Root or sudo access
  • Update ISO: Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso
  • ~35 GB free disk space (if copying ISO locally)

Quick Start

# Download the script
chmod +x rhel8-iso-update.sh

# Run with sudo
sudo ./rhel8-iso-update.sh

Features

  • Interactive prompts - Confirms each action before proceeding
  • External media detection - Automatically finds the ISO on USB drives
  • Unmounted USB support - Detects and offers to mount USB devices
  • Progress feedback - Color-coded output for easy reading
  • Reboot detection - Checks if a reboot is needed after updates
  • Cleanup options - Offers to remove configs and unmount when finished

What the Script Does

Step Action
1 Locates the ISO file (local storage or external media)
2 Creates mount point at /media/JanPatch
3 Mounts the ISO
4 Creates repo file at /etc/yum.repos.d/JanPatch.repo
5 Refreshes DNF cache
6 Displays available updates
7 Applies updates
8 Checks if reboot is required
9 Cleanup (optional)

Usage Examples

ISO Already Copied to Server

If the ISO is already at /var/isos/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso:

sudo ./rhel8-iso-update.sh

The script will detect it and proceed.

ISO on USB Drive

  1. Plug in the USB drive containing the ISO
  2. Run the script:
sudo ./rhel8-iso-update.sh
  1. The script will detect the USB and offer options:
    • Copy ISO to local storage (recommended for faster updates)
    • Use ISO directly from USB (no wait, but slower updates)

Manual ISO Path

If your ISO is in a non-standard location, the script will prompt you to enter the path manually.

Configuration

Default paths used by the script:

Setting Value
ISO filename Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso
Default ISO path /var/isos/
Mount point /media/JanPatch
Repo file /etc/yum.repos.d/JanPatch.repo
Repo name dvd-rhel-patches

To change these defaults, edit the Configuration section at the top of the script.

Repository Configuration

The script creates the following repo file:

[dvd-rhel-patches]
name=DVD for RHEL Patches
baseurl=file:///media/JanPatch
enabled=1
gpgcheck=0

GPG checking is disabled to avoid signature issues in disconnected environments.

Cleanup

At the end of the process, the script offers to:

  • Disable the dvd-rhel-patches repository
  • Remove the repo file
  • Unmount the ISO
  • Unmount USB drives (if used)
  • Delete the ISO file to free up space

All cleanup actions require confirmation.

Troubleshooting

Script won't run

# Make sure it's executable
chmod +x rhel8-iso-update.sh

# Run with sudo
sudo ./rhel8-iso-update.sh

ISO not detected on USB

  • Ensure the USB drive is plugged in before running the script
  • Try running lsblk to verify the system sees the drive
  • The script searches up to 3 directories deep on external media

"No repodata found" error

The ISO structure may differ from expected. Check the ISO contents:

sudo mount -o loop /path/to/iso /mnt/temp
ls -la /mnt/temp
find /mnt/temp -name "repodata" -type d

Update the baseurl in /etc/yum.repos.d/JanPatch.repo to point to the directory containing repodata/.

Updates failing with dependency errors

Try disabling other repos and using only the ISO:

sudo dnf update --disablerepo="*" --enablerepo="dvd-rhel-patches"

Manual Process

If you prefer to run the steps manually, see the accompanying guide: RHEL 8.10 Offline Update Guide

Files

File Description
rhel8-iso-update.sh Interactive update script
rhel8-iso-update-guide.md Manual step-by-step guide
README.md This file

Author

Cybersecurity Team

Last Updated

January 2026

Description
No description provided
Readme 86 KiB
Languages
Shell 100%