{"id":18772209,"url":"https://github.com/kyaulabs/aarch","last_synced_at":"2026-04-18T02:09:13.568Z","repository":{"id":53342694,"uuid":"367254472","full_name":"kyaulabs/aarch","owner":"kyaulabs","description":"Automated Arch Linux is a template-based automated installer for Arch Linux.","archived":false,"fork":false,"pushed_at":"2024-07-21T11:59:45.000Z","size":298,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-29T08:13:08.651Z","etag":null,"topics":["arch-linux","archlinux","automated","bash","bash-script","hardened","hardened-image","hardened-linux-scripts","linux","shell-script","shell-script-linux-installer"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kyaulabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-14T05:05:14.000Z","updated_at":"2024-07-21T11:59:48.000Z","dependencies_parsed_at":"2024-11-07T19:35:09.125Z","dependency_job_id":"4581e8e7-22ce-44da-a289-73ae92992a4d","html_url":"https://github.com/kyaulabs/aarch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Faarch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Faarch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Faarch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Faarch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyaulabs","download_url":"https://codeload.github.com/kyaulabs/aarch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239680625,"owners_count":19679502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch-linux","archlinux","automated","bash","bash-script","hardened","hardened-image","hardened-linux-scripts","linux","shell-script","shell-script-linux-installer"],"created_at":"2024-11-07T19:28:10.940Z","updated_at":"2025-12-12T18:30:14.144Z","avatar_url":"https://github.com/kyaulabs.png","language":"Shell","readme":"![ANSI Logo](https://gitlab.com/kyaulabs/aarch/raw/master/aarch.ans.png \"ANSI Logo\")  \n\u003ca href=\"https://kyaulabs.com/\"\u003ehttps://kyaulabs.com/\u003c/a\u003e\n\n[![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) \u0026nbsp; [![Semantic Versioning](https://img.shields.io/badge/semantic%20versioning-2.6.6-333333.svg)](https://semver.org) \u0026nbsp; [![GitHub](https://img.shields.io/github/license/kyaulabs/aarch)](LICENSE) \u0026nbsp; [![Gitleaks](https://img.shields.io/badge/protected%20by-gitleaks-blue)](https://github.com/zricethezav/gitleaks) \u0026nbsp; [![CI](https://img.shields.io/github/actions/workflow/status/kyaulabs/aarch/shellcheck.yml)](../../actions)  \n\n## Disclaimer\n\nI personally use Arch Linux everywhere and with the frequency at which I was doing reinstallations increasing, eventually I needed a better solution. What started as a hardening script that was run post-installation has merged into the fully automated installation script that you see before you.\n\n```\n🚧 WARNING\nThis repository is provided for archival/educational purposes, I am not responsible for any data loss or\ndamage that may ensue.\n```\n\n* [Introduction](#introduction)\n* [Configuration](#configuration)\n  * [Custom ARCHISO](#custom-archiso)\n  * [Existing ARCHISO](#existing-archiso)\n* [Usage](#usage)\n* [Attribution](#attribution)\n\n## Introduction\nAArch or Automated Arch Linux is a template-based automated installer for Arch\nLinux. This script is the convergence of my\n[Arch Linux Installation](https://kyau.net/wiki/ArchLinux:Installation) along\nwith my\n[Hardening Arch Linux (HAL)](https://kyau.net/wiki/ArchLinux:Security) articles\non my personal wiki.\n\n## Configuration\n\nBefore you can start `aarch`, a `moduli` must be generated. This will take a\nconsiderable amount of time depending on your CPU, if this is being executed\ninside of a virtualized environment it is recommended that you use `haveged`.\n\n```bash\nssh-keygen -M generate -O bits=4096 moduli.c\nssh-keygen -M screen -f moduli.c moduli\nrm moduli.c\n```\n\nAfter the `moduli` has been generated the `example.aa` file can be edited for\na fully automated installation. This file can be named anything you like as long\nas it retains it's extension (eg. machine.aa). Without a template file you will\ninstead be asked to input all of the information to the console when running\n`aarch`.\n\nBoot up the machine and/or vm with an ARCHISO image.\n\n\n\n### Custom ARCHISO\n\nNext decide if you want the script baked into an ISO or if you just want to\n`scp` the script to the installation environment everytime. If you choose to\nbuild your own ARCHISO it will help to follow these guidelines:\n\n* Use `releng` as your base template.\n* Add the `git` and `wget` packages to the `packages.x86_64` file so that it\nwill be installed an usable in the installation environment.\n* Revert to traditional interface names with `ln -s /dev/null airootfs/etc/udev/rules.d/80-net-setup-link.rules`\n* `aarch`, `erase_hdd`, `firstboot.txt` and `moduli` must be placed into in the `airootfs/root`\ndirectory prior to building.\n* Include an `.aa` template file in the `airootfs/root` directory for script\nautomation.\n* Also include an wanted packages from the `pkg` directory.\n* Modify the `profiledef.sh` script to make sure `aarch`, `erase_hdd` and any\npackages you included have `0:0:755` setting, this sets user:group:permissions.\n* Modify the `airootfs/root/.zlogin` script to enable the `sshd.service` on boot\nby adding `systemctl enable --now sshd.service`. Then set a root password with\nthe command `chpasswd \u003c\u003c\u003c \"root:moo\"`, with 'moo' being the password.\n\nInstructions for building your own image can be found\n[here](https://wiki.archlinux.org/index.php/Archiso).\n\n### Existing ARCHISO\n\nIf instead you choose not to bake the script into an ISO, simply boot an\nexisting ARCHISO, use the `E` key to edit the kernel commandline at the bootloader\nmenu, adding `net.ifnames=0` to boot with traditional network interface names.\n\nThe ARCHISO will automatically log you into the root account, install `git` and\n`wget`.\n\n```shell\npacman -Syy git wget\n```\n\nThen modify the root password and enable sshd, finally checking the assigned IP.\n\n```shell\npasswd\nsystemctl start sshd\nip a\n```\n\nFinally SCP over to the machine `aarch`, `erase_hdd`, `firstboot.txt`, `moduli`\nand an `.aa` template.\n\n## Usage\n\nIn order to run `aarch` properly you will need all of the following files in\nthe home directory of the root user in the livecd environment for the machine\nor virtual machine you are trying to install.\n\n```shell\naarch erase_hdd firstboot.txt moduli\n```\n\n*In addition it also pays to have an `.aa` template.*\n\nTo run, simply execute the script.\n\n```shell\n./aarch\n```\n\nThis will read the first `.aa` template found in the current directory. If no\ntemplate is found it will prompt the user to input the configuration through\nthe console.\n\n*Absolute automation can be achieved by adding `aarch` to the `.bashrc` of the\nroot user on the ISO in addition to including a pre-filled in `.aa` template.*\n\n## Attribution\n\n* [ArchWiki](https://wiki.archlinux.org/)\n* [Arch Linux Installation](https://kyau.net/wiki/ArchLinux:Installation)\n* [Hardening Arch Linux (HAL)](https://kyau.net/wiki/ArchLinux:Security)\n* [Mozilla SSL Configuration Generator](https://ssl-config.mozilla.org/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyaulabs%2Faarch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyaulabs%2Faarch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyaulabs%2Faarch/lists"}