fai-mirror(1)

πŸ’– fai-mirror πŸ’– (the fai-mirror(1) page, General Commands Manual, bestie)

okay so you found the manual page for fai-mirror and you're like "what is this" β€” don't worry, I got you 🫢. Full title situation: fai-mirror(1), it lives in the General Commands Manual, and it is genuinely one of the most useful little gremlins in the FAI toolbox. Let's get into it πŸ’…


🌸 NAME 🌸

fai-mirror β€” create and manage a partial mirror for FAI ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

fai-mirror [OPTION]...  DIRECTORY

πŸ’« DESCRIPTION πŸ’«

So basically πŸ’β€β™€οΈ this command makes a partial mirror of Debian packages. Use it to build the fai CD, or as your local mirror when downloading the whole entire Debian mirror is simply not the vibe (it's huge, bestie, we don't have that kind of storage).

By default the mirror contains all packages of all classes used in the configuration space, which lives at /srv/fai/config/package_config. Periodt. πŸ‘‘


✨ OPTIONS ✨

  • -a ARCH β€” download packages from architecture ARCH. If you don't say anything, it just uses the host's native architecture. Lowkey the default is usually fine 🌈
  • -B β€” do not add packages included in base.tar.xz and packages defined in /etc/fai/NFSROOT to the mirror. By default all of these packages are included. This one explicitly removes packages from the mirror that are already sitting in base.tar.xz. And listen β€” you should not use this flag if your nfsroot is old and newer versions of the packages included in base.tar.xz should actually be going into the mirror. Just don't πŸ™ˆ
  • -b β€” create the mirror only from package names in /srv/fai/config. This does not include packages from /etc/fai/NFSROOT, but it also does not remove packages that are in base.tar.xz. Super useful if your partial mirror does not match the Linux distribution of the nfsroot, or if you don't even have a nfsroot yet 🧚
  • -C CFDIR β€” use CFDIR as the configuration directory. Default is /etc/fai. You can also set the environment variable FAI_ETC_DIR instead. Options, options πŸ’…
  • -c CLASS[,CLASS] β€” use only this list of classes for building the mirror. Can't be used in conjunction with -x. Not both, bestie, pick one 😭
  • -h β€” show simple help and version. Short, sweet, iconic.
  • -G β€” create a generic mirror. This option is passed to install_packages. Often used with -I. Only omit -G if you need the package mirror for this exact list of FAI classes πŸ‘‘
  • -I β€” ignore conflicts in package dependencies. This helps you download packages in one go that define a conflict with each other (for e.g. grub-pc and grub-efi). Another way is to set -m1, which also avoids package conflicts but will be slower. 🐒
  • -m MAX β€” set the number of packages to NUM. This overwrites the variable MAXPACKAGES.
  • -x CLASS[,CLASS] β€” exclude these classes. Do not add the packages of these classes to the mirror. Bye bye πŸ‘‹
  • -s DIRECTORY β€” override the value of FAI_CONFIGDIR set in nfsroot.conf.
  • -P FILE β€” copy an APT preferences file into the cache config before creating the mirror. Using this you can set pin priority for packages to a certain release πŸŽ€
  • -p β€” preserve existing sources.list. NOT YET IMPLEMENTED. πŸ’€ (yes that's really what it says, don't come for me)
  • -V β€” read variable definitions from class/*.var if used in package_config/<classes>.
  • -v β€” create verbose output. The talkative mode. We love her 🌸

🌈 EXAMPLES 🌈

$ fai-mirror -v /files/scratch/mirror

Creates a partial mirror in the directory /files/scratch/mirror using all classes.


$ fai-mirror -v -cDEFAULT,DEMO /debmirror

Creates a partial mirror containing all packages used in the classes DEFAULT and DEMO.


$ fai-mirror -v -cDEFAULT,DEBIAN,DEMO,AMD64,GRUB_PC /srv/debmirror-amd64

This will create a mirror including packages for the amd64 architecture defined for the classes specified. And the cute part? You can also run this on a non amd64 host 😌


$ fai-mirror -v -xARM64,ROCKY,UBUNTU,NOBLE,LIVEISO,CLOUD,STANDARD /tmp/large

This builds a mirror that is used for the large FAI ISO that's available on the projects home page.


πŸ’œ NOTES πŸ’œ

You only need root permissions if you access the official Debian mirror via NFS. 🌐

By default, the variable MAXPACKAGES is set to 1, so conflicting packages can also be added to the mirror. Setting this to a higher number (e.g. 99999) reduces the time for creating the mirror, but some packages may be missing. Trade-offs, bestie, trade-offs 😭

fr fr, that higher-number speed thing comes with a "some packages may be missing" sticker. Choose your fighter.

πŸŽ€ SEE ALSO πŸŽ€

This program is part of FAI (Fully Automatic Installation). The FAI homepage is https://fai-project.org.

fai-make-nfsroot(8), install_packages(8)


πŸ¦‹ FILES πŸ¦‹

  • /etc/fai/fai.conf β€” the FAI configuration file.
  • /etc/fai/nfsroot.conf β€” the FAI configuration file for the nfsroot.
  • /etc/fai/apt/sources.list β€” package resource definition for FAI.
  • /srv/fai/config/package_config/ β€” the FAI package configuration directory. This directory is defined by the variable FAI_CONFIGDIR.
  • $NFSROOT/var/tmp/base-pkgs.lis β€” the list of packages included in base.tar.xz inside the nfsroot.
  • $NFSROOT/var/tmp/packages.nfsroot β€” additional packages that were added to the nfsroot by the configuration file /etc/fai/NFSROOT.

πŸ‘‘ AUTHOR πŸ‘‘

Thomas Lange <lange@cs.uni-koeln.de>


and that's the whole page, bestie 🌈 This one came from FAI 6.5, dated January 2026, and it's the fai-mirror(1) manual β€” go build yourself a mirror, you absolute main character πŸ’–βœ¨

πŸ“¦ where this page comes from