Add ManuallyUpdatingRHEL8
This commit is contained in:
269
ManuallyUpdatingRHEL8
Normal file
269
ManuallyUpdatingRHEL8
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
# 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
|
||||||
Reference in New Issue
Block a user