-
Notifications
You must be signed in to change notification settings - Fork 1
Project Structure
- SYN-ISO-PROFILE: Includes the ISO profile for building the operating system image. This directory contains the necessary files and configurations. See archsio.

-
SYN-ROOTOVERLAY: Contains the root overlay for the operating system. It includes boot-related files and configuration in the
bootdirectory as well as system-wide configurations in theetcdirectory. The dot-files are also included inetc/skel. This SYN-ROOTFSOVERLAY is to be copied into the project's airootfs directory, or any other existing profile including baseline or releng (however without accompanying dot-files the environment may fail).
Place your custom files and configurations in the /SYN-OS/SYN-OS-V4/SYN-ROOTOVERLAY/ directory. These should be be copied into the /SYN-OS/SYN-OS-V4/SYN-ISO-PROFILE/airootfs/ manually before building the ISO, else the installed packages will have default dot-files which aren't appropriate for xorg or openbox.

-
SYN-DOTFILES: Contains a collection of dot-files for setting up and customising various applications and tools. If you change the pacakges in syn-pacstrap-variables.sh then you can also add your custom dot-files from
~/.config.

Be advised the SYN-OS dotfiles can be found in /etc/skel post-install and /SYN-OS/SYN-OS-V4/SYN-ROOTOVERLAY/etc/skel/ and are coped in SYN-OS/SYN-OS-V4/SYN-ISO-PROFILE/airootfs/root/SYN-INSTALLER-SCRIPTS????. This is to ensure that all users created always get the same consistent configuration, as defined from the applications included via the initial pacstrap.
Note: When adding packages/configuration changes to SYN-ISO-PROFILE before building always ensure /etc/skel has the accompanying dotfiles.
-
SYN-INSTALLER-SCRIPTS: Houses installer scripts that facilitate the setup and configuration of SYN-OS-V4.
-
SYN-TOOLS: Provides various tools, scripts, or utilities that exist in the context of SYN-OS-V4.
The installer leverages the bootctl tool to configure the bootloader as a single disk gpt SYN-ROOTOVERLAY/boot/ contains neccessary information. Here you can see the files deposited into the installer.
Currently the scripts will ensure the system wipes the drives present in syn-disk-variables.sh and ensure a single root partition with a seperate GPT/UEFI boot partition.
It also contains an MBR fallback should the UEFI Variables not get detected. This will install a single MBR root linux partition.
There is no swap, you can add these yourself.

SYN-OS is designed for advanced users with deep understanding of Linux systems, specifically Arch Linux. It allows users to customise aspects like disk partitioning, package selection, locale settings, and system configurations. Users can directly manipulate the build scripts, giving you the power to shape the distro according to your vision, rather than relying on disk images or cloning technology.


This is the main script to execute the installation of SYN-OS, an Arch Linux ISO project. Once the ISO has been created and booted, running this script is the primary step to initialise the system setup.
SYN-INSTALLER-MAIN.sh is the cornerstone of the SYN-OS installation process. It sets up partitions, file-systems, mounting points, tests network connectivity, sets up the keyboard layout and NTP, checks the accessibility of Arch Linux repositories, and wipes disks. It partitions and formats the drive according to whether EFI variables are present or not. Then it manages package installation, sets up the keyring, updates mirror lists, generates fstab, copies root overlay materials, and prepares the system for the next stage of installation.
This script also serves as a gateway to the remainder of the installation process by sourcing several other scripts in the SYN-INSTALLER-SCRIPTS directory. Each of these sourced scripts performs specific tasks, and their code can be reviewed individually for a deeper understanding of the installation process.
This script is where you define the partitioning scheme for the SYN-OS installation. It includes variables that determine which devices will be targeted for formatting, partitioning, and mounting.
Modify these variables to match your specific configuration. This is where the script decides on which disk to destroy and format.:
Disk to be wiped: WIPE_DISK_990="/dev/vda"
Boot Partition: BOOT_PART_990="/dev/vda1"
Root Partition: ROOT_PART_990="/dev/vda2"
Location to the new system's boot directory: BOOT_MOUNT_LOCATION_990="/mnt/boot"
Location to the new system's root directory: ROOT_MOUNT_LOCATION_990="/mnt/"
Filesystem for the boot partition: BOOT_FILESYSTEM_990="fat32"
Filesystem for the root partition: ROOT_FILESYSTEM_990="f2fs"
The script includes multiple variables that contain the names of packages to be installed. These variables can be modified to add or remove packages as needed to customise the SYN-OS installation.
Here are the main package variables: (All packages used in these variables are using Arch Linux official repositories)
-
basePackages: Basic system packages required for the initial setup. -
systemPackages: Packages for audio, networking, and other system-related utilities. -
controlPackages: Packages for controlling the system settings. -
wmPackages: Packages for window managers and Xorg server setup. -
cliPackages: Command-line interface (CLI) utilities. -
guiPackages: Graphical user interface (GUI) utilities. -
fontPackages: Packages for fonts and font rendering. -
cliExtraPackages: Additional CLI utilities for specialised tasks. -
guiExtraPackages: Additional GUI utilities for specific applications. -
vmExtraPackages: Packages for virtualisation (commented out).
The SYNSTALL variable combines all the package variables to form the pacstrap command. When executed with the specified mount point, this command installs all the packages listed in the SYNSTALL variable to the target system.
You can directly execute the pacstrap command with the $SYNSTALL variable at the end of the SYN-INSTALLER-MAIN.sh script to install the defined packages. Alternatively, you have the flexibility to customise the installation process by modifying the package variables or adding an additional pacstrap command as needed.
Please ensure that the package names are valid and accessible through the configured mirrors.
Refer to the syn-pacstrap-variables.sh script in the SYN-INSTALLER-SCRIPTS directory for more details.