20 February 2026

sles linux sysadmin airgap zypper

SLES 16: Add a DVD as a Local Zypper Repository (No Subscription Needed)

💿 SLES 16: Add a DVD as a Local Zypper Repository (No Subscription Needed)

Quick one-liner: Mount the SLES 16 installation DVD (or ISO) as a local zypper repository so you can install packages without a subscription — perfect for air-gapped environments, home lab testing, or grabbing packages you skipped during installation.


🤔 Why This Matters

SLES out of the box is subscription-gated. Try to install anything with zypper on a fresh system and you'll hit this immediately:

Warning: There are no enabled repositories defined.
Use 'zypper addrepo' or 'zypper modifyrepo' commands to add or enable repositories.

This affects you in three common situations:

🔒 Air-gapped environments — Your network has no path to the SUSE Customer Center. There's no RMT server. zypper simply can't reach anything.

💸 No subscription — You're evaluating SLES in a home lab, or setting up a test box without a paid licence. The online repos are locked behind a registered system.

📦 Missed packages from installation — You kept the installer lean and now realise you need gcc, vim, rsync, or something else that was on the DVD all along. Why re-run the installer when the media is right there?

The DVD you used to install SLES 16 already contains hundreds of packages. Adding it as a local zypper repository unlocks all of them instantly — no internet, no subscription, no reinstall.


✅ Prerequisites


🔍 Before You Start: Check for an Existing Repository

SLES 16 often creates a DVD repository automatically during installation — it's just disabled by default. Check if it's already there:

cat /etc/zypper/repos.d/SLES.repo

If the file exists, you'll see something like this:

[SLES]
name=SUSE Linux Enterprise Server 16.0
enabled=0
autorefresh=0
baseurl=dvd:/install
type=rpm-md
keeppackages=0

Enable it:

sudo zypper modifyrepo --enable SLES
# or the short form:
sudo zypper mr -e SLES

Then skip straight to Step 5: Install Packages below — you don't need to mount anything manually.

If the file doesn't exist, follow Steps 1–4 below to mount the DVD and add the repository manually.


🔧 Step 1: Mount the DVD

Physical DVD drive:

sudo mkdir -p /mnt/dvd
sudo mount /dev/sr0 /mnt/dvd

Confirm the drive device with lsblk if /dev/sr0 isn't right.

ISO file:

sudo mkdir -p /mnt/dvd
sudo mount -o loop /path/to/SLES-16.0-Full-x86_64.iso /mnt/dvd

Verify the mount:

ls /mnt/dvd

Expected output:

.signature  EFI  LiveOS  boot  install

The packages and repository metadata live inside the install/ subdirectory. You can confirm it's a valid zypper repository with:

ls /mnt/dvd/install/repodata

➕ Step 2: Add the Repository

sudo zypper ar /mnt/dvd SLES16-DVD

zypper discovers the repository metadata automatically — no need to point it at the install/ subdirectory, and no GPG trust prompt.


🔄 Step 3: Refresh the Repository

sudo zypper ref SLES16-DVD

Expected output:

Repository 'SLES16-DVD' is up to date.
All repositories have been refreshed.

📌 Step 4: Make the Mount Persistent (Optional)

The mount disappears after a reboot. For a permanent setup, add it to /etc/fstab.

For a physical DVD:

echo "/dev/sr0  /mnt/dvd  iso9660  ro,noauto  0 0" | sudo tee -a /etc/fstab

For an ISO file:

echo "/path/to/SLES-16.0-Full-x86_64.iso  /mnt/dvd  iso9660  ro,loop,noauto  0 0" | sudo tee -a /etc/fstab

The noauto flag means it won't try to mount at boot (which would fail if the DVD isn't in the drive). Mount it manually when you need it:

sudo mount /mnt/dvd

📥 Step 5: Install Packages

You're ready. Install anything available on the DVD the same way you normally would:

sudo zypper install -y <package-name>

For example:

sudo zypper install -y vim
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  vim

1 new package to install.
Overall download size: 1.7 MiB. Already cached: 0 B. After the operation, additional 5.3 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

zypper reads directly from the mounted media — no internet, no subscription check.

💡 Not sure what's available? Search the repo before installing:

# If you enabled the default repository:
zypper search --repo SLES <keyword>

# If you added it manually:
zypper search --repo SLES16-DVD <keyword>

🗑️ Removing the Repository

When you no longer need it, clean up:

# If you added it manually:
sudo zypper rr SLES16-DVD
sudo umount /mnt/dvd

# If you enabled the default repository:
sudo zypper mr -d SLES

⚠️ What You Can and Can't Install

The DVD contains everything that shipped with SLES 16 at release — base packages, development tools, and common server software. That covers the vast majority of day-to-day needs.

What it won't have:

Limitation Details
🔒 Security updates DVD packages are release-day versions only. Updates require a subscription or a local mirror.
📦 Third-party packages Anything outside the SLES base (e.g. Docker CE, custom RPMs) needs a separate repo.
🧩 PackageHub / Modules These are subscription-only channels and aren't on the Full DVD.

For a fully up-to-date air-gapped environment, pair this with a local RMT (Repository Mirroring Tool) server that you sync once and distribute internally.


🚀 What's Next


🙌 Found this useful? Share it with anyone setting up SLES in an air-gapped environment.