Configure Installation ISOs as Persistent APT Sources#

Use Base Command Manager (BCM) Ubuntu installation ISOs as persistent local Advanced Package Tool (APT) sources when the BCM head node or software images cannot access network package repositories. Copy the contents of each ISO under /cm/shared/isos so that the BCM head node and cluster nodes can access the same packages through the BCM shared filesystem.

This procedure follows the local repository workflow in the NVIDIA Base Command Manager 11 Administrator Manual. Use an ISO that matches the BCM release, Ubuntu release, and CPU architecture of each installation target.

For a mixed-architecture deployment, complete the AMD64 instructions for the x86-64 BCM head node, control-plane images, and x86-64 DGX compute images. Complete the ARM64 instructions for the aarch64 DGX compute images. Run the commands on the active BCM head node as root.

Example Values#

The examples use the BCM 11.34 Ubuntu 26.04/DGX OS 8.0 ISO for both architectures. The AMD64 and ARM64 ISO files have the same filename. In a mixed-architecture deployment, stage and copy one ISO before replacing the file under /root with the ISO for the other architecture. The commands preserve both ISOs in separate architecture directories under /cm/shared/isos.

Setting

Example value

Staged ISO file

/root/bcm-11.0-ubuntu2604-dgx-os-8.0.iso

ISO file in the shared filesystem

/cm/shared/isos/amd64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso

Shared ISO contents

/cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64

BCM repository

11.34.0

Ubuntu release

2604

Debian architecture

amd64

Setting

Example value

Staged ISO file

/root/bcm-11.0-ubuntu2604-dgx-os-8.0.iso

ISO file in the shared filesystem

/cm/shared/isos/arm64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso

Shared ISO contents

/cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64

BCM repository

11.34.0

Ubuntu release

2604

Debian architecture

arm64

Copy the ISO Contents to the Shared Filesystem#

Complete both tabs in a mixed-architecture deployment.

  1. Create the shared ISO directory and copy the staged AMD64 ISO into it:

    mkdir -p /cm/shared/isos/amd64
    cp /root/bcm-11.0-ubuntu2604-dgx-os-8.0.iso \
      /cm/shared/isos/amd64/
    ls -lh /cm/shared/isos/amd64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso
    
  2. Mount the ISO, copy its contents into an architecture-specific directory, and unmount it:

    Copy the ISO Contents
    mkdir -p /mnt/bcm-iso-ubuntu2604-amd64
    mount -o loop,ro \
      /cm/shared/isos/amd64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso \
      /mnt/bcm-iso-ubuntu2604-amd64
    
    mkdir -p /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64
    cp -av /mnt/bcm-iso-ubuntu2604-amd64/. \
      /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/
    
    umount /mnt/bcm-iso-ubuntu2604-amd64
    rmdir /mnt/bcm-iso-ubuntu2604-amd64
    
  3. List the APT indexes copied from the ISO:

    find /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages \
      -name Packages.gz -print
    

    The source configuration in this procedure uses the base BCM and Ubuntu repositories and the default, cuda, dgx-os, doca_ofed_3.4.1, hpc, and bcm-extra package groups from the AMD64 DGX OS 8.0 ISO.

    Confirm that the output includes these repository indexes before you continue:

    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/11.34.0/ubuntu/2604/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/dist/ubuntu/2604/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/default/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/cuda/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/dgx-os/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/doca_ofed_3.4.1/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/hpc/Packages.gz
    /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/bcm-extra/Packages.gz
    
  1. Create the shared ISO directory and copy the staged ARM64 ISO into it:

    mkdir -p /cm/shared/isos/arm64
    cp /root/bcm-11.0-ubuntu2604-dgx-os-8.0.iso \
      /cm/shared/isos/arm64/
    ls -lh /cm/shared/isos/arm64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso
    
  2. Mount the ISO, copy its contents into an architecture-specific directory, and unmount it:

    Copy the ISO Contents
    mkdir -p /mnt/bcm-iso-ubuntu2604-arm64
    mount -o loop,ro \
      /cm/shared/isos/arm64/bcm-11.0-ubuntu2604-dgx-os-8.0.iso \
      /mnt/bcm-iso-ubuntu2604-arm64
    
    mkdir -p /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64
    cp -av /mnt/bcm-iso-ubuntu2604-arm64/. \
      /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/
    
    umount /mnt/bcm-iso-ubuntu2604-arm64
    rmdir /mnt/bcm-iso-ubuntu2604-arm64
    
  3. List the APT indexes copied from the ISO:

    find /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages \
      -name Packages.gz -print
    

    The ARM64 DGX OS 8.0 ISO contains the base BCM and Ubuntu repositories and the default, cuda, dgx-os, doca_ofed_3.4.1, hpc, and bcm-extra package groups used later in this procedure.

Create the APT Source Files#

Create the source files under /cm/shared/isos so that you can use the same files for the BCM head node and software images. Complete both tabs in a mixed-architecture deployment.

  1. Create the base source file for the AMD64 BCM head node and general-purpose software images:

    cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list <<'EOF'
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/11.34.0/ubuntu/2604/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/dist/ubuntu/2604/ ./
    EOF
    
  2. Create the source file for AMD64 DGX compute images. This source file adds the package groups for NVIDIA drivers, CUDA, DGX OS, DOCA OFED, HPC software, and additional BCM packages:

    cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-dgx-iso.list <<'EOF'
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/11.34.0/ubuntu/2604/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/dist/ubuntu/2604/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/default/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/cuda/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/dgx-os/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/doca_ofed_3.4.1/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/hpc/ ./
    deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/bcm-extra/ ./
    EOF
    
  1. Create the base source file for general-purpose ARM64 software images:

    cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list <<'EOF'
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/11.34.0/ubuntu/2604/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/dist/ubuntu/2604/ ./
    EOF
    
  2. Create the source file for DGX compute images. This source file adds the package groups for NVIDIA drivers, CUDA, DGX OS, DOCA OFED, HPC software, and additional BCM packages:

    cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-dgx-iso.list <<'EOF'
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/11.34.0/ubuntu/2604/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/dist/ubuntu/2604/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/default/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/cuda/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/dgx-os/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/doca_ofed_3.4.1/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/hpc/ ./
    deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/bcm-extra/ ./
    EOF
    

The copied ISO repositories use flat APT indexes without signed Release files. The trusted=yes option accepts packages from this physically controlled installation media and prevents APT authentication warnings for these sources. Do not use this option for a network-hosted repository.

Configure the BCM Head Node#

Complete only the tab that matches the output of dpkg --print-architecture on the BCM head node.

  1. Copy the AMD64 source file into the BCM head node’s APT configuration and refresh the package metadata from that source:

    dpkg --print-architecture
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list \
      /etc/apt/sources.list.d/
    apt-get \
      -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list \
      -o Dir::Etc::sourceparts=- \
      update
    
  2. Install cm-api-docs to verify package installation from the ISO source:

    apt-get \
      -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list \
      -o Dir::Etc::sourceparts=- \
      install cm-api-docs
    
  1. Copy the ARM64 base source file into the BCM head node’s APT configuration and refresh the package metadata from that source:

    dpkg --print-architecture
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list \
      /etc/apt/sources.list.d/
    apt-get \
      -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list \
      -o Dir::Etc::sourceparts=- \
      update
    
  2. Install cm-api-docs to verify package installation from the ISO source:

    apt-get \
      -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list \
      -o Dir::Etc::sourceparts=- \
      install cm-api-docs
    

Configure the Software Images#

The following loops list the BCM software images and add a source file to each image whose architecture matches the selected tab. The repository contents are already available to provisioned nodes through the /cm/shared Network File System (NFS) mount. Complete both tabs in a mixed-architecture deployment.

Add an APT source file to every AMD64 software image. Images that contain the dgx-release package receive the DGX source file with the additional package groups. Other AMD64 images receive the base BCM and Ubuntu source file.

Add APT Sources to Software Images
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
  IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
  [ "$IMAGE_ARCH" = "amd64" ] || continue

  printf 'Adding AMD64 ISO sources to %s\n' "$IMAGE_DIR"
  mkdir -p "$IMAGE_DIR/etc/apt/sources.list.d"

  if dpkg-query --admindir="$IMAGE_DIR/var/lib/dpkg" -W -f='${db:Status-Abbrev}\n' dgx-release 2>/dev/null | grep -q '^ii '; then
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-dgx-iso.list \
      "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list"
  else
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list \
      "$IMAGE_DIR/etc/apt/sources.list.d/"
  fi
done

Add an APT source file to every ARM64 software image. Images that contain the dgx-release package receive the DGX source file with the additional package groups. Other ARM64 images receive the base BCM and Ubuntu source file.

Add APT Sources to Software Images
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
  IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
  [ "$IMAGE_ARCH" = "arm64" ] || continue

  printf 'Adding ARM64 ISO sources to %s\n' "$IMAGE_DIR"
  mkdir -p "$IMAGE_DIR/etc/apt/sources.list.d"

  if dpkg-query --admindir="$IMAGE_DIR/var/lib/dpkg" -W -f='${db:Status-Abbrev}\n' dgx-release 2>/dev/null | grep -q '^ii '; then
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-dgx-iso.list \
      "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list"
  else
    cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list \
      "$IMAGE_DIR/etc/apt/sources.list.d/"
  fi
done

Nodes that are already provisioned require an image update before they receive the source file. After a node boots and mounts /cm/shared, use apt-get update to refresh its package metadata.

Maintain the ISO Sources#

Keep the copied ISO contents and source files under /cm/shared/isos for future package installation and dependency resolution. To replace the contents with an updated ISO for the same BCM release, replace the architecture-specific directory and run apt-get update on the affected BCM head node or cluster nodes.

Use a separate contents directory and source filename for each BCM release, Ubuntu release, and architecture. Do not combine repositories from different BCM or Ubuntu releases for one installation target.

Retire an ISO Source#

Remove an ISO source only when its packages are no longer required or another offline package source replaces it.

Remove the source file from the AMD64 software images and the BCM head node:

for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
  IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
  [ "$IMAGE_ARCH" = "amd64" ] || continue
  rm -f "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list"
done

rm -f /etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list

Remove the source file from the ARM64 software images and the BCM head node:

for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
  IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
  [ "$IMAGE_ARCH" = "arm64" ] || continue
  rm -f "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list"
done

rm -f /etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list

The ISO files, copied contents, and source templates remain under /cm/shared/isos until you archive or remove them.