Reposync not pulling BaseOS/x86_64/os/images

I’m trying to mirror the Rocky repos for local use (non internet connected hosts)

However the https://dl.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/images folder is not being sync’d and is completely ignored (no pxeboot etc)

I do get all the Packages as expected, but not the images folder.

My repo file is from the standard release for BaseOS

[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever
gpgcheck=1
enabled=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

Here is the command I’m using to sync the repo

dnf --releasever=9 -c ./repos/rocky.repo \
reposync \
  --download-metadata \
  --repoid=baseos \
  --download-path=/var/www/html/mirrors/rocky/9

Thanks

Welcome to the forums!

The images directory is not part of dnf, and thus it is not pulled. dnf only cares about repomd data. You will need to pull it another way, such as wget or consider picking a mirror that is close to you that provides an rsync endpoint.

Hmm thanks for the fast response nazunalika.

I understand it may be historical, but that seems a bit short-sighted considering it is buried in the middle of an actual repo.

Maybe it should be an actual separate repo instead?

Yes, it is historical. This is how pungi (the tool we use to generate our repositories) does it. Pungi will run lorax, which generates our boot.iso (and the various image files that you see in the repository). This same data gets placed into BaseOS, alongside a .treeinfo file that tells the installer what to expect.

This wouldn’t be a good idea. The .treeinfo file is quite specific on what it tells the installer as the installer has very specific expectations and it’s simply better to leave things in the default way that pungi/lorax does it.

Below is the current treeinfo file. The checksums for the images are there and in sections below, there are mentions of where the images are actually located. Without this information, net installations can become tedious for any user.

[checksums]
images/boot.iso = sha256:0fad8d8b19a94a0222ea37152cdf5601229fe0178b651dc476e1cba41d2e6067
images/efiboot.img = sha256:37c343f22f12eaa37bd4aec0c733000e07bcff28654d4509280c9f24a74402d3
images/install.img = sha256:3e63d999c43229ebfa85fe7ab702e9b9692bec60e0f4691309fdf63fccac5109
images/pxeboot/initrd.img = sha256:4a4ac0dd59b163d5a31f3b6ed33ca5260c7af06b2ed8663910dce5df55837f7e
images/pxeboot/vmlinuz = sha256:a150eae93dc3126bcaac43ccfdb7c4f2b8975b57b1bddf86a2809352bc9b5f58

[general]
; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
; WARNING.1 = Read productmd documentation for details about new format.
arch = x86_64
family = Rocky Linux
name = Rocky Linux 9.6
packagedir = Packages
platforms = x86_64,xen
repository = .
timestamp = 1748290782
variant = BaseOS
variants = AppStream,BaseOS
version = 9.6

[header]
type = productmd.treeinfo
version = 1.2

[images-x86_64]
boot.iso = images/boot.iso
efiboot.img = images/efiboot.img
initrd = images/pxeboot/initrd.img
kernel = images/pxeboot/vmlinuz

[images-xen]
initrd = images/pxeboot/initrd.img
kernel = images/pxeboot/vmlinuz

[release]
name = Rocky Linux
short = Rocky
version = 9.6

[stage2]
mainimage = images/install.img

[tree]
arch = x86_64
build_timestamp = 1748290782
platforms = x86_64,xen
variants = AppStream,BaseOS

[variant-AppStream]
id = AppStream
name = AppStream
packages = ../../../AppStream/x86_64/os/Packages
repository = ../../../AppStream/x86_64/os
type = variant
uid = AppStream

[variant-BaseOS]
id = BaseOS
name = BaseOS
packages = Packages
repository = .
type = variant
uid = BaseOS

Note that this same data is available on the boot, minimal, and DVD ISO, because it is required for the installer to work.