Files
Tips-Tricks/ManuallyUpdatingRHEL8
2026-01-29 14:31:22 -08:00

269 lines
6.9 KiB
Plaintext

# RHEL 8.10 Offline Update Guide: Loading Updates from ISO
## Overview
This guide covers the process of applying RHEL 8.10 updates using a locally-mounted ISO file containing the full update repository. This method is used in air-gapped or disconnected environments where systems cannot reach Red Hat's CDN or Satellite servers.
---
## Prerequisites
- Root or sudo access on the target system
- The update ISO file: `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso` (~30 GB)
- **Minimum 35 GB free disk space** for the ISO file and package installation
- Cockpit is available at `https://<hostname>:9090` for GUI-based monitoring
> **Note:** Due to the large ISO size (30 GB), file transfers may take significant time. Plan accordingly and verify transfer integrity with checksums when possible.
---
## Update Methods
You have two options for performing this procedure:
| Method | Best For |
|--------|----------|
| **Command Line (Terminal)** | Scripting, remote SSH sessions, full control |
| **Desktop GUI (KVM)** | Visual file management, less experienced admins |
You can also use **Cockpit** (`https://<hostname>:9090`) to access a web-based terminal if you don't have direct SSH access.
---
## Procedure
### Step 1: Transfer the ISO to the System
Copy the ISO file to a location on the target system. Common locations include `/tmp`, `/opt`, or `/var/isos`.
**Option A: Command Line**
```bash
# Example: If copying from USB drive
cp /run/media/username/USBDRIVE/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso /var/isos/
```
> **Tip:** For a 30 GB file, this transfer will take several minutes. You can monitor progress with:
> ```bash
> rsync -ah --progress /run/media/username/USBDRIVE/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso /var/isos/
> ```
**Option B: GUI File Manager (GNOME Files)**
1. Open **Files** from the Applications menu
2. Navigate to the USB drive in the left sidebar
3. Right-click `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso` and select **Copy**
4. Navigate to **Other Locations** → **Computer** → `var` → `isos`
5. Right-click and select **Paste**
6. Wait for the progress bar to complete (~30 GB transfer)
### Step 2: Create the Mount Point
Create the directory where the ISO will be mounted:
```bash
sudo mkdir -p /media/JanPatch
```
### Step 3: Mount the ISO
**Option A: Command Line**
Mount the ISO file as a loop device:
```bash
sudo mount -o loop /var/isos/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso /media/JanPatch
```
Verify the mount was successful:
```bash
ls /media/JanPatch
```
**Option B: GUI using GNOME Disks (via KVM)**
1. Open **Disks** from the Applications menu (search "Disks")
2. Click the three-dot menu (⋮) in the top-right corner
3. Select **Attach Disk Image...**
4. Navigate to `/var/isos/` and select `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso`
5. Click **Attach**
6. The ISO will mount automatically (note: you may need to create a symlink to `/media/JanPatch` or update the repo file path)
**Option C: GUI using GNOME Files (via KVM)**
1. Open **Files** from the Applications menu
2. Navigate to `/var/isos/`
3. Right-click on `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso`
4. Select **Open With Disk Image Mounter**
5. The ISO will appear in the left sidebar under "Devices"
> **Note:** For GUI mounts, the system may mount to a different location. For consistency, use the command line method to mount directly to `/media/JanPatch`.
### Step 4: Create the Local Repository Configuration
Create a new repo file that points to the mounted ISO:
```bash
sudo nano /etc/yum.repos.d/JanPatch.repo
```
Add the following content:
```ini
[dvd-rhel-patches]
name=DVD for RHEL Patches
baseurl=file:///media/JanPatch
enabled=1
gpgcheck=0
```
Save and exit (Ctrl+O, Enter, then Ctrl+X).
### Step 5: Clean and Refresh Repository Cache
Clear the existing yum/dnf cache and rebuild it with the new repo:
```bash
sudo dnf clean all
sudo dnf makecache
```
### Step 6: Verify Repository Availability
Confirm the local repositories are recognized:
```bash
sudo dnf repolist
```
You should see `local-baseos-updates` and `local-appstream-updates` in the list.
### Step 7: Apply Updates
**Option A: Apply all available updates**
```bash
sudo dnf update -y
```
**Option B: Check what updates are available first**
```bash
sudo dnf check-update
```
**Option C: Update specific packages only**
```bash
sudo dnf update <package-name> -y
```
### Step 8: Reboot if Required
If kernel or critical system packages were updated, a reboot is required:
```bash
sudo needs-restarting -r
```
If a reboot is needed:
```bash
sudo systemctl reboot
```
---
## Using Cockpit for Remote Terminal Access
If you don't have direct SSH or KVM access, you can use Cockpit's web-based terminal to run all the command-line steps.
### Access Cockpit Terminal
1. Open a web browser on your workstation
2. Navigate to `https://<hostname>:9090`
3. Log in with your admin credentials
4. Click **Terminal** in the left sidebar
5. Run all command-line steps (Steps 1-8) from this terminal
> **Note:** Cockpit's Terminal provides full shell access. You can run all the same commands as you would via SSH or local console.
---
## Post-Update Cleanup
After updates are complete and verified, clean up the temporary configuration:
### Disable or Remove the Local Repo
```bash
# Option 1: Disable the repo (keeps config for future use)
sudo dnf config-manager --set-disabled dvd-rhel-patches
# Option 2: Remove the repo file entirely
sudo rm /etc/yum.repos.d/JanPatch.repo
```
### Unmount the ISO
```bash
sudo umount /media/JanPatch
```
### Remove the Mount Point (Optional)
```bash
sudo rmdir /media/JanPatch
```
### Delete the ISO (If No Longer Needed)
```bash
sudo rm /var/isos/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso
```
---
## Troubleshooting
### "No repodata found" Error
- Verify the ISO structure: `ls -la /media/JanPatch/`
- The `baseurl` must point to the directory containing `repodata/`
- Try: `find /media/JanPatch -name "repodata" -type d`
### "Mount point busy" When Unmounting
Ensure no terminal sessions or processes are using the mount:
```bash
# Check what's using the mount
sudo lsof /media/JanPatch
# Force unmount if necessary (use with caution)
sudo umount -l /media/JanPatch
```
### Repository Priority Conflicts
If other repos are enabled and causing conflicts, temporarily disable them:
```bash
sudo dnf update --disablerepo="*" --enablerepo="dvd-rhel-patches"
```
---
## Quick Reference Commands
| Task | Command |
|------|---------|
| Mount ISO | `sudo mount -o loop /var/isos/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso /media/JanPatch` |
| List repos | `sudo dnf repolist` |
| Check updates | `sudo dnf check-update` |
| Apply updates | `sudo dnf update -y` |
| Check reboot needed | `sudo needs-restarting -r` |
| Unmount ISO | `sudo umount /media/JanPatch` |
---
## Document Information
- **Applies to:** RHEL 8.10 systems
- **Last Updated:** January 2026
- **Author:** Cybersecurity Team