Transfer an offline installation bundle

Move the offline installation bundle (~/rhem-bundle.tar.gz from Preparing an offline installation bundle) from a connected prep host to an air-gapped target.

Procedure

  1. Plan transfer capacity. Check bundle size on the prep machine:
    du -sh ~/rhem-bundle.tar.gz

    A full bundle is typically 5–10 GB depending on variant. Size the USB drive or share quota to fit the archive plus checksum files with headroom.

  2. Choose a filesystem for USB drives:
    • ext4: Linux-native; best performance on Red Hat Enterprise Linux hosts; not readable on Windows or macOS without additional software.
    • exFAT: Cross-platform; readable on Linux, Windows, and macOS; supports files larger than 4 GB.
    Important

    Do not use FAT32 when a single archive exceeds 4 GB. FAT32 cannot store files larger than 4 GB. Use exFAT or ext4 instead, or split the transfer across multiple archives.

  3. Generate a checksum on the prep machine before transfer:
    sha256sum ~/rhem-bundle.tar.gz | tee ~/rhem-bundle.tar.gz.sha256
  4. Copy both the archive and the .sha256 file to the target by using your chosen transfer method.
  5. On the target machine, verify the checksum before you extract or install:
    sha256sum -c ~/rhem-bundle.tar.gz.sha256

    The command must report OK. If verification fails, re-copy the archive from the prep machine; do not install from a corrupt file.

  6. Identify the USB device:
    Warning

    Formatting erases all data on the drive. Run lsblk and confirm the device path before you run mkfs so you do not overwrite the wrong disk.

    lsblk

    Example output:

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
    sda      8:0    0  20.0G  0 disk
    sdb      8:16   1  64.0G  0 disk
    └─sdb1   8:17   1  64.0G  0 part

    In this example, the USB drive partition is /dev/sdb1.

  7. On the prep machine, format the USB drive if needed, mount it, and copy the bundle (ext4 example):
    sudo mkfs.ext4 -L rhem-offline /dev/sdb1
    sudo mkdir -p /mnt/usb
    sudo mount /dev/sdb1 /mnt/usb
    cp ~/rhem-bundle.tar.gz ~/rhem-bundle.tar.gz.sha256 /mnt/usb/
    sudo umount /mnt/usb

    For exFAT, install exfatprogs (sudo dnf install -y exfatprogs) and run sudo mkfs.exfat -n rhem-offline /dev/sdb1.

  8. On the target machine, mount the USB drive, copy the bundle, and unmount:
    sudo mkdir -p /mnt/usb
    sudo mount /dev/sdb1 /mnt/usb
    cp /mnt/usb/rhem-bundle.tar.gz /mnt/usb/rhem-bundle.tar.gz.sha256 ~/
    sudo umount /mnt/usb
    sha256sum -c ~/rhem-bundle.tar.gz.sha256
  9. Using a network share or jump host. When a restricted network path exists between prep and target hosts, use scp or a temporary HTTP server on the prep machine.
    1. Copy with scp:
      scp ~/rhem-bundle.tar.gz ~/rhem-bundle.tar.gz.sha256 <user>@<target_host>:~/
    2. Or run a temporary HTTP server on the prep machine:
      python3 -m http.server 8080 --directory ~/

      On the target (when it can reach the prep machine on the internal network):

      curl -O http://<prep_host>:8080/rhem-bundle.tar.gz
      curl -O http://<prep_host>:8080/rhem-bundle.tar.gz.sha256
      sha256sum -c rhem-bundle.tar.gz.sha256

    Stop the HTTP server on the prep machine when the transfer completes.