Code Monkey home page Code Monkey logo

archiso's Introduction

archiso

The archiso project features scripts and configuration templates to build installation media (.iso images and .tar.gz bootstrap images) as well as netboot artifacts for BIOS and UEFI based systems on the x86_64 architecture. Currently creating the images is only supported on Arch Linux but may work on other operating systems as well.

Requirements

The following packages need to be installed to be able to create an image with the included scripts:

  • arch-install-scripts
  • awk
  • dosfstools
  • e2fsprogs
  • erofs-utils (optional)
  • findutils
  • grub
  • gzip
  • libarchive
  • libisoburn
  • mtools
  • openssl
  • pacman
  • sed
  • squashfs-tools

For running the images in a virtualized test environment the following packages are required:

  • edk2-ovmf
  • qemu

For linting the shell scripts the following package is required:

  • shellcheck

For generating the man pages:

  • python-docutils

Profiles

Archiso comes with two profiles: baseline and releng. While both can serve as starting points for creating custom live media, releng is used to create the monthly installation medium. They can be found below configs/baseline/ and configs/releng/ (respectively). Both profiles are defined by files to be placed into overlays (e.g. airootfs ‎→‎ the image's /).

Read README.profile.rst to learn more about how to create profiles.

Create images

Usually the archiso tools are installed as a package. However, it is also possible to clone this repository and create images without installing archiso system-wide.

As filesystems are created and various mount actions have to be done when creating an image, root is required to run the scripts.

When archiso is installed system-wide and the modification of a profile is desired, it is necessary to copy it to a writeable location, as /usr/share/archiso is tracked by the package manager and only writeable by root (changes will be lost on update).

The examples below will assume an unmodified profile in a system location (unless noted otherwise).

It is advised to consult the help output of mkarchiso:

mkarchiso -h

Create images with packaged archiso

mkarchiso -w path/to/work_dir -o path/to/out_dir path/to/profile

Create images with local clone

Clone this repository and run:

./archiso/mkarchiso -w path/to/work_dir -o path/to/out_dir path/to/profile

Testing

The convenience script run_archiso is provided to boot into the medium using qemu. It is advised to consult its help output:

run_archiso -h

Run the following to boot the iso using BIOS:

run_archiso -i path/to/an/arch.iso

Run the following to boot the iso using UEFI:

run_archiso -u -i path/to/an/arch.iso

The script can of course also be executed from this repository:

./scripts/run_archiso.sh -i path/to/an/arch.iso

Installation

To install archiso system-wide use the included Makefile:

make install

Optional features

The iso image contains a GRUB environment block holding the iso name and version. This allows to boot the iso image from GRUB with a version specific cow directory to mitigate overlay clashes.

loopback loop archlinux.iso
load_env -f (loop)/boot/grub/grubenv
linux (loop)/arch/boot/x86_64/vmlinuz-linux ... \
    cow_directory=${NAME}/${VERSION} ...
initrd (loop)/arch/boot/x86_64/initramfs-linux-lts.img

Contribute

Development of archiso takes place on Arch Linux' Gitlab: https://gitlab.archlinux.org/archlinux/archiso.

Please read our distribution-wide Code of Conduct before contributing, to understand what actions will and will not be tolerated.

Read our contributing guide to learn more about how to provide fixes or improvements for the code base.

Discussion around archiso takes place on the arch-releng mailing list and in #archlinux-releng on Libera Chat.

All past and present authors of archiso are listed in AUTHORS.

Releases

Releases of archiso are created by their current maintainers

  • David Runge (991F6E3F0765CF6295888586139B09DA5BF0D338)
  • nl6720 (BB8E6F1B81CF0BB301D74D1CBF425A01E68B38EF)

Tags are signed using respective PGP keys.

To verify a tag, first import the relevant PGP key(s):

gpg --auto-key-locate wkd --search-keys [email protected]

or

gpg --auto-key-locate keyserver --recv-keys BB8E6F1B81CF0BB301D74D1CBF425A01E68B38EF

Afterwards a tag can be verified from a clone of this repository:

git verify-tag <tag>

License

Archiso is licensed under the terms of the GPL-3.0-or-later (see LICENSE).

archiso's People

Contributors

afq984 avatar alex19ep avatar almorrison avatar boenki avatar brain0 avatar d3vil0p3r avatar dieterbe avatar djgera avatar dvzrv avatar eli-schwartz avatar eulenleber avatar eworm-de avatar grazzolini avatar hayao0819 avatar ka2107 avatar klausenbusk avatar mrelendig avatar nl6720 avatar pierres avatar psihozefir avatar simaxw avatar simoleone avatar svenstaro avatar tallero avatar thurstylark avatar tomty89 avatar toofishes avatar torxed avatar tpowa avatar vorburger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.