archiso with gnome and d-leatin1 keyboard
Go to file
nl6720 e467c69e94
configs/releng/syslinux/archiso_pxe.cfg: add "checksum" and "verify" boot options
An ISO's checksum and GPG validation primarily matters when PXE booting, so it would be appropriate to enable these options for releng.
They should protect against booting a corrupt image.
2020-08-11 09:52:53 +03:00
archiso archiso/initcpio/hooks/archiso: remove option terminator from the blockdev command 2020-08-11 06:58:06 +03:00
configs configs/releng/syslinux/archiso_pxe.cfg: add "checksum" and "verify" boot options 2020-08-11 09:52:53 +03:00
docs Using edk2-shell for UEFI shell 2020-05-30 19:30:52 +02:00
scripts Adding script to run archiso in qemu 2020-07-10 23:13:27 +02:00
.editorconfig Add license and basic documentation 2020-07-29 14:27:48 +02:00
.gitattributes Add .gitignore and .gitattributes 2012-08-03 22:03:03 +02:00
.gitignore Add work and out directories to .gitignore 2020-07-11 16:31:18 +03:00
.gitlab-ci.yml Move shell script linting into a separate make target 2020-07-30 13:09:53 +03:00
AUTHORS.rst Add license and basic documentation 2020-07-29 14:27:48 +02:00
CONTRIBUTING.rst CONTRIBUTING.rst: use make lint to run shellcheck 2020-07-30 13:37:55 +03:00
LICENSE Add license and basic documentation 2020-07-29 14:27:48 +02:00
Makefile Move shell script linting into a separate make target 2020-07-30 13:09:53 +03:00
README.rst releng: copy UEFI shell from airootfs instead of the host system 2020-07-30 18:31:25 +03:00

=======
archiso
=======

The archiso project features scripts and configuration templates to build installation media (*.iso* images) for BIOS
and UEFI based systems on the x86_64 architecture.
Currently creating the images is only supported on Arch Linux.

Requirements
============

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

* arch-install-scripts
* dosfstools
* e2fsprogs
* libisoburn
* 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

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/ <configs/baseline/>`_  and `configs/releng/ <configs/releng/>`_
(respectively). Both profiles are defined by files to be placed into overlays (e.g. *airootfs* -> *the image's /*) and
dynamic actions (i.e. *build.sh* scripts).

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 check the help information of the **build.sh** scripts in the profiles:

  .. code:: bash

    /usr/share/archiso/configs/releng/build.sh --help

Create images with packaged archiso
-----------------------------------

  .. code:: bash

    /usr/share/archiso/configs/releng/build.sh -w path/to/work_dir -o path/to/out_dir

Create images with local clone
------------------------------

Clone this repository and make sure to run with the local `mkarchiso <archiso/mkarchiso>`_  script in *PATH* (if it has
been modified):

  .. code:: bash

    PATH="archiso:$PATH" ./configs/releng/build.sh -w path/to/work_dir -o path/to/out_dir

Testing
=======

The convenience script **run_archiso** is provided to boot into the medium using qemu.
It is advised to read its help information:

  .. code:: bash

    run_archiso -h

Run the following to boot the iso using BIOS:

  .. code:: bash

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

Run the following to boot the iso using UEFI:

  .. code:: bash

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

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


  .. code:: bash

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

Installation
============

To install archiso system-wide use the included **Makefile**:

  .. code:: bash

    make install

Optionally install archiso's mkinitcpio hooks:

  .. code:: bash

    make install-initcpio

License
=======

Archiso is licensed under the terms of the **GPL-3.0-or-later** (see `LICENSE <LICENSE>`_).