{"id":22054058,"url":"https://github.com/ratabora/arch-linux-provisioner","last_synced_at":"2026-05-07T00:34:44.014Z","repository":{"id":148290902,"uuid":"88438199","full_name":"ratabora/arch-linux-provisioner","owner":"ratabora","description":"Provision an Arch Linux installation","archived":false,"fork":false,"pushed_at":"2018-03-12T00:16:11.000Z","size":43,"stargazers_count":1,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T15:48:23.247Z","etag":null,"topics":["archlinux"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ratabora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-16T19:40:36.000Z","updated_at":"2021-12-14T23:30:00.000Z","dependencies_parsed_at":"2023-05-19T15:45:18.608Z","dependency_job_id":null,"html_url":"https://github.com/ratabora/arch-linux-provisioner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ratabora/arch-linux-provisioner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ratabora%2Farch-linux-provisioner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ratabora%2Farch-linux-provisioner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ratabora%2Farch-linux-provisioner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ratabora%2Farch-linux-provisioner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ratabora","download_url":"https://codeload.github.com/ratabora/arch-linux-provisioner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ratabora%2Farch-linux-provisioner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272692167,"owners_count":24977296,"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","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["archlinux"],"created_at":"2024-11-30T15:19:24.914Z","updated_at":"2026-05-07T00:34:43.944Z","avatar_url":"https://github.com/ratabora.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Stories in Ready](https://badge.waffle.io/ratabora/arch-linux-provisioner.png?label=ready\u0026title=Ready)](https://waffle.io/ratabora/arch-linux-provisioner?utm_source=badge)\n# arch-linux-provisioner\nProvision an Arch Linux installation. Heavily inspired by [pigmonkey/spark](https://github.com/pigmonkey/spark)\n\n## How to run\n\n```\n# ansible-playbook -i localhost playbook.yml\n```\n\n## initial installation\n\n### wifi and time\n```\nwifi-menu\ntimedatectl set-ntp true\n```\n\n### disk\nGet a list of partitions to determine what needs to be partitoned.\n```\nfdisk -l\n```\n\nOpen up the target device for partitioning. If you are making a new EFI boot partition make sure it is of type `EFI`.\n```\ncfdisk /dev/device\n```\n\nIf you're making a new EFI boot partition you'll need to format it.\n```\nmkfs.fat -F32 /dev/bootpartition\n```\n\nFormat the OS partition\n```\nmkfs.ext4 /dev/ospartition\n```\n\nMount the OS and boot partitions\n```\nmount /dev/ospartition /mnt\nmkdir -p /mnt/boot\nmount /dev/bootpartition /mnt/boot\n```\n\n### base packages\n```\npacstrap /mnt base\n```\n\n### fstab\n```\ngenfstab -U /mnt \u003e\u003e /mnt/etc/fstab\n```\n\n### time\n```\narch-chroot /mnt\nln -sf /usr/share/zoneinfo/US/America/Los_Angeles /etc/localtime\nhwclock --systohc\n```\n\n### locale\nUncomment `en_US.UTF-8 UTF-8` in locale file\n`/etc/locale.gen`\n```\nen_US.UTF-8\n```\n\nGenerate locale\n```\nlocale-gen\n```\n\nSet the LANG variable in locale.conf file\n`/etc/locale.conf`\n```\nLANG=en_US.UTF-8\n```\n\n### auto mounting boot partition\nMount the EFI partition on windows by default\n`/etc/fstab`\n...\n```\n/dev/bootpartition\t/boot\tvfat\tdefaults\t0 0\n```\n\n### intel\n```\npacman -S intel-ucode\n```\n\n### network\nCreate files:\n\n`/etc/hosts`\n\n```\n127.0.0.1\tlocalhost.localdomain\travager\n::1\t\tlocalhost.localdomain\travager\n```\n\n`/etc/hostname`\n```\nravager\n```\n\nInstall prerequisites for wifi-menu\n```\npacman -S dialog iw wpa_supplicant\n```\n\n## bootloader\nInstall bootloader\n```\nbootctl install\n```\n\nConfigure bootloader\n```\nnano /boot/loader/loader.conf\ndefault  arch\ntimeout  10\neditor   0\n```\n\nAdd boot entry\n```\nls --lart /dev/disk/by-partuuid/ | grep /dev/ospartition | cut -d' ' -f10 \u003e\u003e /boot/loader/entries/arch.conf\n\nnano /boot/loader/entries/arch.conf\ntitle          Arch Linux\nlinux          /vmlinuz-linux\ninitrd         /intel-ucode.img\ninitrd         /initramfs-linux.img\noptions        root=PARTUUID=[USE OUTPUT OF PREVIOUS COMMAND HERE] rw\n```\n\n### password\nSet root password\n```\npasswd\n```\n\n### clean up\n```\numount -R /mnt\nreboot\n```\n\n### prepare ansible\nInstall prerequisites\n```\npacman -Syy python2-passlib ansible git openssh\n```\n\n### ssh keys\nInstall id_rsa and id_rsa.pub from usb: \n```\nmkdir /tmp/usb\nmount /dev/sdb1 /tmp/usb\ncp /tmp/usb/id_rsa* /tmp/\nmkdir /root/.ssh/\ncp /tmp/id_rsa* /root/.ssh/\n```\n\n### clone the ansible repo\n```\ncd /root/\ngit clone git@github.com:ratabora/arch-linux-provisioner.git\ncd arch-linux-provisioner\ngit submodule init \u0026\u0026 git submodule update\n```\n\n# appendix\n\n## VMWare\n* If installing using a VM make sure to boot the VM using EFI _before_ your first boot.\n\n## reference material\n* [arch install guide](https://wiki.archlinux.org/index.php/Installation_guide)\n* [systemd boot loader](https://wiki.archlinux.org/index.php/Systemd-boot)\n* [dual booting with windows](https://wiki.archlinux.org/index.php/Dual_boot_with_Windows)\n* [youtube arch install guide](https://www.youtube.com/watch?v=MMkST5IjSjY)\n* [arch general recommendations](https://wiki.archlinux.org/index.php/General_recommendations)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fratabora%2Farch-linux-provisioner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fratabora%2Farch-linux-provisioner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fratabora%2Farch-linux-provisioner/lists"}