Skip to content

BlackArch/blackarch-iso

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This is the README file providing basic info on where you can find things as well as provide helpful links for further information on the contents of this repository.

All ISOs

  • Full ISO
    • The largest of the ISOs and installs all tools
  • NetInstall ISO
    • The smallest ISO and allows you to selectively install tools
  • Slim ISO
    • The newest ISO, by default is configured with XFCE4 and LightDM

How the ISO is built

the ISO is built with the archiso tool that can be downloaded from the official arch repositories.

File structure

Profile
 |- airootfs/
 |- efiboot/
 |- syslinux/
 |- packages.ARCH
 |- pacman.conf
 \- profiledef.sh

ARCH = x86_64

packages.ARCH

All files must be listed one per line. lines that are blank are ignored and so are lines commented out with # the packages mkinitcpio and mkinitcpio-archiso are mandatory see issue #30

pacman.conf

A configuration for pacman is required per profile. Some configuration options will not be used or will be modified:

  • CacheDir: the profile's option is only used if it is not the default (i.e. /var/cache/pacman/pkg) and if it is not the same as the system's option. In all other cases the system's pacman cache is used.

  • HookDir: it is always set to the /etc/pacman.d/hooks directory in the work directory's airootfs to allow modification via the profile and ensure interoparability with hosts using dracut (see #73)

  • RootDir: it is always removed, as setting it explicitely otherwise refers to the host's root filesystem (see man 8 pacman for further information on the -r option used by pacstrap)

  • LogFile: it is always removed, as setting it explicitely otherwise refers to the host's pacman log file (see man 8 pacman for further information on the -r option used by pacstrap)

  • DBPath: it is always removed, as setting it explicitely otherwise refers to the host's pacman database (see man 8 pacman for further information on the -r option used by pacstrap)

airootfs directory

This is the directory that holdes any files that will be put into the /etc directory, as such you can add or modifty files by placing them inside the corresponding directory.

example
|- airootfs
\- etc
  \- hosts

Aany files will by default have the the 644 permissions and directories will have the 755 permissions. this can be changed in profiledef.sh

With this overlay structure it is possible to e.g. create users and set passwords for them, by providing airootfs/etc/passwd, airootfs/etc/shadow, airootfs/etc/gshadow (see man 5 passwd, man 5 shadow and man 5 gshadow respectively).

If user home directories exist in the profile's airootfs, their ownership and (and top-level) permissions will be altered according to the provided information in the password file.

Bootloader configuration

The profile may contain several boot loaders. They are explained in the following subsetions

efiboot directory

This directory is mandatory when the uefi-x64.systemd-boot.esp or uefi-x64.systemd-boot.eltorito bootmodes are selected in profiledef.sh. It contains configuration for systemd-boot.

The custom template identifiers are only understood in the boot loader entry .conf files (i.e. not in loader.conf).

syslinux direcotry

This directory is mandatory when the bios.syslinux.mbr or the bios.syslinux.eltorito bootmodes are selected in profiledef.sh. It contains configuration files for syslinux or isolinux , or pxelinux used in the resuling image. The custom template identifiers are understood in all .cfg files in this directory.

BlackArch Specific info

This section is for finding info specific to the BlackArch ISO repos

Tools/Misc Info

Tools directory

This directory contains a compilation of tools used by some of the devs for working with the ISO

misc directory

Contains certain files for development as well as a list of disabled tools. Plus the upstream packages

etc directory

This contains basic info that will be placed in the /etc directory. it contains the preconfigured hosts file, hostname file as well as systemd configurations, lightdm configurations, and will also hold xfce4 configurations and calamares configurations when they are installed. the configurations are located in the corresponding repositories which will be linked now. there will be more repositories linked that come in the NetInstall ISO and the Full ISO

root directory

This holds some scripts for configuring the build and should not be modfied unless you have knowledge of how the archiso tool works

/usr/share directory

This holds the backgrounds and icons for the various builds of the ISOs

Further info

Further info can be found within the files themselves which will be commented and documented properly as time goes on.