- Commented out
DownloadUser
inpacman.conf
so that the working directory is not restricted to paths to which thealpm
user has access to.
- Change enabled services in baseline and releng profile to adapt to changes in
cloud-init
≥ 24.3 (renamedcloud-init.service
tocloud-init-network.service
, introduced newcloud-init-main.service
).
- Removed gnu-netcat from releng profile, as cloud-init requires openbsd-netcat and the two netcat versions can not be installed side-by-side.
- Support compressing the bootstrap tarball with
xz
.
- Use an empty UUID for the EROFS image file since the file system will never be referenced by it.
- Do not use
mkfs.erofs
extended optionsfragments
anddedupe
in the baseline profile. This reduces the EROFS image size and compression time. - Update profile
pacman.conf
to include the new options added to/etc/pacman.conf
in pacman 7.0.0.r3.g7736133-1.
- Show the correct image file name, including the extension, when building a bootstrap image.
- Removed reiserfsprogs from packages (EOL)
- When downloading an automation script fail with non-zero status code instead of returning an HTML document when the remote HTTP server fails to deliver the document.
- Remove unneeded workaround for e2fsprogs < 1.47.1.
- Moved the
pkglist.x86_64.txt
file outside the bootstrap tarball'sroot.x86_64
directly to avoid polluting the root file system. - Use 4 MiB OVMF files in
run_archiso
instead of the old 2 MiB ones. - Increase the additional free space of the EFI partition size from 1 MiB to 8 MiB to account for file system overhead when using FAT32 (needs less than 1 MiB) and to give more space for adding custom files when repacking an ISO (e.g. when preparing it for Secure Boot).
- Remove 300 KiB padding needed for CDs if the ISO exceeds the maximum size of a CD.
- Use
xz -9e
as the releng profile's initramfs compression. Now that mkinitcpio does not decompress the loadable kernel modules and firmware files anymore and moves them to the early uncompressed initramfs, we can compress the main initramfs image with a higher compression without it having much impact on the ISO build time. - Format the EFI system partition image as FAT32 if the size allows it (i.e. if it is at least 36 MiB).
- Look for microcode update files in the initramfs images when checking if external microcode images are needed. The
existence of a
early_cpio
file is not enough since mkinitcpio can and will place other files in the early uncompressed CPIO even when themicrocode
hook is not used.
- Remove the wezterm-terminfo package from the releng profile as the relevant file is now provided by the ncurses package instead.
- Copy Memtest86+ EFI binary to the EFI system partition and ISO 9660 for
uefi-x86.systemd-boot
boot modes. Additionally, create a boot entry with it for the releng profile.
- Change releng profile's bootstrap tarball compression from gzip to zstd. zstd provides higher and faster compression.
- Use mkinitcpio's
microcode
hook instead of external microcode images to simplify boot loader configuration. Custom PXE setups will need to update their boot loader configuration. - Replace
archisodevice
boot parameter witharchisosearchuuid
in all boot loader configuration. This allows to have "file system transposition" without relaying on GRUB-specific features. - Replace GRUB with systemd-boot as the UEFI boot loader for the releng profile. While this increases the ISO size, it avoids all GRUB-specific annoyances and oddities.
- Fix requirement validation logic for the
uefi-ia32.systemd-boot.eltorito
boot mode. It incorrectly applied the same requirements asuefi-x64.systemd-boot.esp
.
- Add a man page for
mkarchiso
. - Implement configurable bootstrap tarball compression. It is configured in
profiledef.sh
using a bash array calledbootstrap_tarball_compression
. baseline tarball now uses zstd compression while releng remains with gzip for now.
- Move
/boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid
to/boot/YYYY-mm-dd-HH-MM-SS-00.uuid
and always create the file. Once mkinitcpio-archiso implements searching for the file in early userspace, this file's use will not be limited to just GRUB. - Skip including external microcode images in build artifacts if the initramfs file contains
early_cpio
(indicating an early uncompressed CPIO archive which should have the microcode update files).
- Remove workaround for glibc < 2.39.
LC_ALL=C.UTF-8
now overridesLANGUAGE
, just likeLC_ALL=C
.
- Explicitly add ldns to releng (as opposed to it only being pulled in as a dependency of another package) to ensure
drill
remains available.
- Update the releng ISO description to "Arch Linux Live/Rescue DVD" since the ISO size now exceeds the maximum size of a CD (900 MiB).
- Update the location where
mkarchiso
looks for the memtest86+ license file.
- Add bcachefs-tools to releng for access to bcachefs userspace tools.
- Add tftp as a valid protocol for downloading automated boot script.
- Set
RequiredForOnline=routable
in systemd-networkd configuration files to improve the chances that the network really is online whennetwork-online.target
is reached.
- Add missing replacement for the UUID variable in systemd-boot configuration files on ISO 9660.
- Add bolt to releng for authorizing and otherwise managing Thunderbolt and USB4 devices.
- Add
uefi-ia32.systemd-boot.esp
anduefi-ia32.systemd-boot.eltorito
boot modes that use systemd-boot for IA32 UEFI. The boot modes of baseline and releng are not changed. - Add GRUB configuration file
/boot/grub/loopback.cfg
to the releng and baseline profiles. It sets the necessary boot parameters required for booting the ISO image as a file on a file system.
- Add
/etc/localtime
to the baseline profile to ensure the ISO can be booted successfully without triggering questions from systemd-firstboot.
- Add tpm2-tools to releng to allow clearing, creating and reading keys on the TPM.
- Add sequoia-sq and openpgp-card-tools as additional tooling for working with OpenPGP certificates and smartcards.
- Moved custom
mkinitcpio.conf
files to/etc/mkinitcpio.conf.d/archiso.conf
. - Mount
/etc/pacman.d/gnupg
on tmpfs with optionnoswap
instead of using ramfs. This ensures there is a limit to the file system size. - Enable systemd-networkd's support for IPv6 Privacy Extensions globally instead of per-connection.
- Moved custom
sshd_config
files to/ssh/sshd_config.d/10-archiso.conf
- Use pcsclite for interfacing with smartcards, since both gnupg and opgpcard support it.
- Sign the root file system image only once.
- Make sure xorriso does not read its configuration files to prevent interference and unintended behavior.
- Added classes for Memtest86+ and UEFI Shell menuentries.
- Add foot-terminfo and wezterm-terminfo packages to releng to support terminal emulators using them. E.g. when installing via SSH.
- Add a new
-r
option tomkarchiso
that deletes the working directly after the build. - Add support for mDNS announce and resolve.
- Increase EROFS compression for the baseline profile by using an extreme LZMA compression level and enabling the experimental compressed fragments and data deduplication features.
- Identify the ISO volume via a UUID instead of a file system label in all boot loader configuration files.
- Update
pacman.conf
to match the one shipped with pacman 6.0.2-7 which removes the community repository.
- Wait for
network-online.target
to become active before trying to download the script passed via thescript=
boot parameter. - Subdirectories from
grub/
are copied to the ISO. - Modify the commandline options to a
cp
command inmkarchiso
so that the entire script does not exit with failure when a custom.bashrc
file is supplied with the archiso configuration. This fix was needed after GNU Coreutils recently changed the behaviour of the-n
(or--no-clobber
) commandline option to thecp
command. - Ensure
SOURCE_DATE_EPOCH
is read from thebuild_date
file beforeprofiledef.sh
is sourced to ensure the variable has a correct value when used insideprofiledef.sh
.
- Support file system transposition to simplify boot medium preparation for UEFI boot via extracting the ISO image
contents to a drive.
grub.cfg
does not hardcode the ISO volume label anymore, instead GRUB will search for volume with a/boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid
file on it. - Preload GRUB's NTFS modules for UEFI that allegedly have native NTFS support. GRUB's exFAT and UDF modules are also preloaded in case someone finds them useful.
- Identify the ISO volume via a UUID instead of a file system label to avoid collisions of multiple ISOs created in the same month.
- Honor
SOURCE_DATE_EPOCH
in thedate
command used byprofiledef.sh
of the shipped profiles. - Do not duplicate
grub.cfg
in both ISO 9660 and the EFI system partition / El Torito image. GRUB will search for the ISO volume and load thegrub.cfg
from there. - Moved GRUB files on ISO 9660 from
/EFI/BOOT/
to a boot-platform neutral place/boot/grub/
. This does not apply to the EFI binaries that remain in the default/fallback boot path. - Move
grubenv
to/boot/grub/grubenv
on ISO 9660 so that it is together with the rest of GRUB-specific files. Additionally write more variables in it. The previous/${install_dir}/grubenv
(/arch/grubenv
for releng) is deprecated and a future archiso release will not create this file anymore. - Moved syslinux directory from
/syslinux/
to/boot/syslinux/
to keep most boot loader files in/boot/
. - Update
README.transfer
documentation and convert it to reStructuredText. - Use
console
as grub'sterminal_output
, asgfxterm
leads to a blank screen on some hardware.
- Do not place memtest86+ in netboot artifacts.
- Add Memtest86+ to x86_64 UEFI GRUB boot menu.
- Check if the GPG public key file was successfully placed in the work directory before trying to use it.
- Open the file descriptors for code signing certificates and GPG public key as read only. Nothing from the within the
pacstrap
invoked chroot should ever be allowed to write outside of it. - Error out early if any of the code signing certificate files passed with option
-c
do not exist. - Use LZMA compressed EROFS image for the baseline profile. Now that xz 5.4 is out and erofs-utils is built with LZMA support, using a higher compression is possible.
- Add
/etc/machine-id
with special valueuninitialized
. The final id is generated at boot time, and systemd's first-boot mechanim (seeFirst Boot Semantics
inmachine-id(5)
) applies. No functional change unless thatConditionFirstBoot=yes
is true and passive unitfirst-boot-complete.target
activates for ordering.
- Do not explicitly enable
qemu-guest-agent.service
as it will be started by a udev rule. - Remove existing signature (
.sig
) files and do not sign them when signing netboot artifacts. This is mostly applicable when re-runningmkarchiso
after a failure. - Replace
archiso_kms
withkms
inmkinitcpio.conf
. The hook is available in mkinitcpio since version 32.
- The ability to generate rootfs signatures using openssl CMS module if
-c
is given.
- Order
pacman-init.service
beforearchlinux-keyring-wkd-sync.service
sincearchlinux-keyring-wkd-sync.service
needs an initialized pacman keyring. - Order
pacman-init.service
aftertime-sync.target
sincepacman-init.service
may otherwise create local signatures that are not valid on target systems after installation.
- Add
efibootimg
tomkarchiso
to abstract the FAT image path. - Unset
LANGUAGE
sinceLC_ALL=C.UTF-8
, unlikeLC_ALL=C
, does not overrideLANGUAGE
. - Copy all files from the
grub
directory to ISO9660 and the FAT image, not just onlygrub.cfg
. - Touching
/usr/lib/clock-epoch
to to helpsystemd
with screwed or broken RTC.
- Disable GRUB's shim_lock verifier and preload more modules. This allows reusing the GRUB EFI binaries when repacking the ISO to support Secure Boot with custom signatures.
- Configure the locale for the baseline profile to
C.UTF-8
so that a UTF-8 locale is used. - Add
uefi-x64.grub.esp
anduefi-x64.grub.eltorito
boot mode to support x86_64 UEFI boot on x86_64 machines. - Use
mkfs.erofs
'sztailpacking
option in the baseline profile to reduce the image size.
- Change the releng profile's locale from
en_US.UTF-8
toC.UTF-8
. - Set
LC_ALL
toC.UTF-8
instead ofC
in mkarchiso since it is now available and non-UTF-8 locales should be avoided.
- Remove the custom pacman hook that ran
locale-gen
on glibc install from the releng profile. The used locale now ships with the glibc package itself. - Remove "Copy to RAM" boot entries since the
archiso
mkinitcpio hook enables it automatically when there is enough free RAM.
- Add
uefi-ia32.grub.esp
boot mode to support IA32 UEFI boot on x86_64 machines. - Add GRUB configuration files to profiles.
- Add accessible
copytoram
entry. - Enable beeps in systemd-boot menu.
- Fix systemd-boot menu entry sorting by using the
sort-key
option.
- Add dmidecode to the list of packages in the releng profile.
- Add open-iscsi to the list of packages in the releng profile to allow installing Arch on an iSCSI target.
- Add open-vm-tools and hyperv to the list of packages and enable their services to provide better integration with the VMware and Hyper-V hypervisors.
- Mount /etc/pacman.d/gnupg on ramfs instead of tmpfs to ensure its contents never land in swap.
- Configure reflector to return only mirrors that support both IPv4 and IPv6.
- Easter egg
- Fix the PXE support. PXELINUX was having trouble finding the kernel and initrds. Now, archiso forces syslinux to interpret all TFTP paths as absolute. That seems to have solved the issue.
- Disable systemd-gpt-auto-generator, which we do not need, in both baseline and releng profiles. It avoids the error message about it failing during boot.
- Add linux-firmware-marvell to the list of packages in the releng profile (e.g. for Surface Pro 6 WiFi support)
- Add documentation to systemd-networkd configuration files
- Add information about the use of changelog and merge requests to the contributing guidelines
- Make the CI pipelines more efficient by automatically cancelling running pipelines if they are superseded by a newer commit and by only running build pipelines on code or profile changes
- Fix an issue where mkarchiso is failing to raise an error when the
mmd
andmcopy
commands are not found - Fix an issue where the architecture detection in mkarchiso fails due to an unset
arch
variable in the profile
- Add BB8E6F1B81CF0BB301D74D1CBF425A01E68B38EF in the Releases section of the README, giving maintainer power to nl6720.
- Show a more descriptive message when no code signing certificate is used
- Remove unused archiso_shutdown hook from the releng profile's mkinitcpio config
- Add mailmap file for easier author integration with git
- Add grub and refind to the package list of the releng profile
- Replace use of date with printf
- Silence command output more efficiently when using --quiet
- Modify curl call to retry up to ten times before giving up on downloading an automated script
- Remove requirement on setting a Boot mode when building a netboot image
- Add support for
gpg
's--sender
option
- Change the way
mkarchiso
uses ext4 images to copying files to it directly instead of mounting (this action now does not require elevated privileges anymore) - Add version files when using
netboot
buildmode as well - Update the sshd configuration to be compatible with openssh 8.7p1
- Overhaul the used
gpg
options - Fix use of potentially unbound variables
- Refactor the validation functions to have fewer large functions and less code duplication
- Remove all files related to
mkinitcpio
integration, as they now live in https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso
- Add a missing line in the systemd-networkd-wait-online.service in the baseline profile
- Adapt systemd-networkd configuration to systemd ≥ 249
- Improve documentation in
mkarchiso
and systemd-networkd related configuration files - Fix an issue that may prevent continuing an aborted build of the
netboot
oriso
buildmode
- Remove SPDX license identifier from files that are not eligible for copyright (e.g. configuration files)
- Simplify gitlab CI setup by using ci-scripts (shared amongst several projects)
- Fix an issue with the unsetting of environment variables before using pacstrap/arch-chroot
- Remove termite-terminfo from the releng profile's list of packages (it is not in the official repositories anymore)
- Set LC_ALL instead of LANG
- Add pacman >= 6 compatible configuration
- Add documentation for the script boot parameter
- Clear environment variables before working in chroot
- Update Arch Wiki URLs
- Pass SOURCE_DATE_EPOCH to chroot
- Enable parallel downloads in profile pacman configurations
- Generalize the approach of interacting with ucode images
- Execute the netboot build mode for the baseline profile in CI
- Add integration for pv when using the copytoram boot parameter so that progress on copying the image to RAM is shown
- Add experimental support for EROFS by using it for the rootfs image in the baseline profile
- Change information on IRC channel, as Arch Linux moved to Libera Chat
- Fix a regression, that would prevent network interfaces to be configured under certain circumstances
- Add the concept of buildmodes to mkarchiso, which allows for building more than the default .iso artifact (sequentially)
- Add support to mkarchiso and both baseline and releng profiles for building a bootstrap image (a compressed bootstrapped Arch Linux environment), by using the new buildmode bootstrap
- Add support to mkarchiso and both baseline and releng profiles for building artifacts required for netboot with iPXE (optionally allowing codesigning on the artifacts), by using the new buildmode netboot
- Add qemu-guest-agent and virtualbox-guest-utils-nox to the releng profile and enable their services by default to allow interaction between hypervisor and virtual machine if the installation medium is booted in a virtualized environment
- Always use the .sig file extension when signing the rootfs image, as that is how mkinitcpio-archiso expects it
- Fix for CI and run_archiso scripts to be compatible with QEMU >= 6.0
- Increase robustness of CI by granting more time to reach the first prompt
- Change CI to build all available buildmodes of the baseline and releng profiles (baseline's netboot is currently excluded due to a bug)
- Install all implicitly installed packages explicitly for the releng profile
- Install keyrings more generically when using pacman-init.service
- Consolidate CI scripts so that they may be shared between the archiso, arch-boxes and releng project in the future and expose their configuration with the help of environment variables
- Add ISO name to grubenv
- Add further metrics to CI, so that number of packages and further image sizes can be tracked
- Add IMAGE_ID and IMAGE_VERSION to /etc/os-release
- Revert to an invalid GPT for greater hardware compatibility
- Fix CI scripts and initcpio script to comply with stricter shellcheck
- Fix an issue where writing to /etc/machine-id might override a file outside of the build directory
- Change gzip flags, so that compressed files are created reproducibly
- Increase default serial baud rate to 115200
- Remove deprecated documentation and format existing documentation
- Add usbmuxd support
- Add EROFS support (as an experimental alternative to squashfs)
- Add creation of zsync control file for delta downloads
- Add sof-firmware for additional soundcard support
- Add support for recursively setting file permissions on folders using profiledef.sh
- Add support for mobile broadband devices with the help of modemmanager
- Add information on PGP signatures of tags
- Add archinstall support
- Remove haveged
- Fix various things in relation to gitlab CI
- Change systemd-networkd files to more generically setup networkds for devices
- Fix the behavior of the script= kernel commandline parameter to follow redirects
- Change the amount of mirrors checked by reflector to 20 to speed up availability of the mirrorlist
- VNC support for run_archiso
- SSH enabled by default in baseline and releng profiles
- Add cloud-init support to baseline and releng profiles
- Add simple port forwarding to run_archiso to allow testing of SSH
- Add support for loading cloud-init user data images to run_archiso
- Add version information to images generated with mkarchiso
- Use pacman hooks for things previously done in customize_airootfs.sh (e.g. generating locale, uncommenting mirror list)
- Add network setup for the baseline profile
- Add scripts for CI to build the baseline and releng profiles automatically
- Change upstream URL in vendored profiles to archlinux.org
- Reduce the amount of sed calls in mkarchiso
- Fix typos in mkarchiso
- mkinitcpio-archiso: Remove resolv.conf before copy to circumvent its use
- Remove customize_airootfs.sh from the vendored profiles
- Support overriding more variables in profiledef.sh and refactor their use in mkarchiso
- Cleanup unused code in run_archiso