{"id":15221858,"url":"https://github.com/googlecloudplatform/compute-archlinux-image-builder","last_synced_at":"2025-04-06T16:15:26.287Z","repository":{"id":19010973,"uuid":"22233744","full_name":"GoogleCloudPlatform/compute-archlinux-image-builder","owner":"GoogleCloudPlatform","description":"A tool to build a Arch Linux Image for GCE","archived":false,"fork":false,"pushed_at":"2022-11-19T05:17:47.000Z","size":62,"stargazers_count":284,"open_issues_count":2,"forks_count":60,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-03-30T15:42:33.890Z","etag":null,"topics":["arch-linux","arch-linux-image","compute-engine","gce","prebuilt-images"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GoogleCloudPlatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-24T22:15:23.000Z","updated_at":"2025-03-28T16:55:28.000Z","dependencies_parsed_at":"2023-01-11T20:01:26.095Z","dependency_job_id":null,"html_url":"https://github.com/GoogleCloudPlatform/compute-archlinux-image-builder","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcompute-archlinux-image-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcompute-archlinux-image-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcompute-archlinux-image-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcompute-archlinux-image-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoogleCloudPlatform","download_url":"https://codeload.github.com/GoogleCloudPlatform/compute-archlinux-image-builder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509238,"owners_count":20950232,"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","arch-linux-image","compute-engine","gce","prebuilt-images"],"created_at":"2024-09-28T15:08:16.107Z","updated_at":"2025-04-06T16:15:26.254Z","avatar_url":"https://github.com/GoogleCloudPlatform.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Arch Linux Image Builder for Google Compute Engine\n\nThis project provides a script that creates an [Arch\nLinux](https://www.archlinux.org/) image that can run on [Google Compute\nEngine](https://cloud.google.com/compute/).\n\nThe image is configured to be as close as possible to a base Arch Linux\ninstallation, while still allowing it to be fully functional and optimized for\nCompute Engine.  Notable choices made and differences compared to a standard\nArch Linux installation are the following:\n\n- systemd-boot is used with a UEFI-based boot and a GPT partition table.\n- Serial console logging is enabled from kernel command line and journald is\n  configured to forward to it.\n- Block multiqueue is configured from the kernel command line to optimize\n  Compute Engine disk performance.\n- A minimal initcpio is configured for booting on Compute Engine virtual\n  machines.\n- Root filesystem is ext4.\n- Locale is set to en_US.UTF-8 and timezone is set to UTC.\n- Network is configured through dhclient.\n- Systemd-timesyncd is enabled and configured to use the Compute Engine metadata\n  server.\n- Pacman keyring is configured to be built and initialized on first boot.\n- Pacman mirror list is taken fresh from Arch Linux servers at the time the\n  image is built.\n- [Linux Guest Environment for Google Compute\n  Engine](https://github.com/GoogleCloudPlatform/compute-image-packages) is\n  installed and enabled.\n- An OpenSSH server is installed and enabled, with root login and password\n  authentication forbidden.  User SSH keys are deployed and managed\n  automatically by the Linux Guest Environment as described in the\n  [corresponding\n  documentation](https://cloud.google.com/compute/docs/instances/connecting-to-instance).\n- Sudo is installed.  Permission to use sudo is managed automatically by Linux\n  Guest Environment.\n- Root partition and filesystem are automatically extended at boot using\n  systemd-repart and systemd-growfs, to support dynamic disk resizing.\n- An additional Pacman repository is used to install and keep the [Linux Guest\n  Environment](https://aur.archlinux.org/packages/google-compute-engine/)\n  packages up to date.\n\n## Prebuilt Images\n\nYou can use [Cloud SDK](https://cloud.google.com/sdk/docs/) to create instances\nwith the latest prebuilt Arch Linux image.  To do that follow the SDK\ninstallation procedure, and then run the [following\ncommand](https://cloud.google.com/sdk/gcloud/reference/compute/instances/create):\n\n```console\n$ gcloud compute instances create INSTANCE_NAME \\\n      --image-project=arch-linux-gce --image-family=arch\n```\n\nFor older images, see the current_images.txt file.\n\n## Build Your Own Image\n\nYou can build the Arch Linux image yourself with the following procedure:\n\n1.  Install the required dependencies and build the image\n\n    ```console\n    $ sudo pacman -S --needed arch-install-scripts dosfstools e2fsprogs\n    $ git clone https://github.com/GoogleCloudPlatform/compute-archlinux-image-builder.git\n    $ cd compute-archlinux-image-builder\n    $ sudo ./build-arch-gce\n    ```\n\n    You can also use the `build-arch-gce` package from the AUR, and run\n    `sudo /usr/bin/build-arch-gce`\n\n    If the build is successful, this will create an image file named\n    arch-vDATE.tar.gz in the current directory, where DATE is the current date.\n\n2.  Install and configure the [Cloud SDK](https://cloud.google.com/sdk/docs/).\n\n3.  Copy the image file to Google Cloud Storage:\n\n    ```console\n    $ gsutil mb gs://BUCKET_NAME\n    $ gsutil cp arch-vDATE.tar.gz gs://BUCKET_NAME\n    ```\n\n4.  Import the image file to Google Cloud Engine as a new custom image:\n\n    ```console\n    $ gcloud compute images create IMAGE_NAME \\\n          --source-uri=gs://BUCKET_NAME/arch-vDATE.tar.gz \\\n          --guest-os-features=GVNIC,UEFI_COMPATIBLE,VIRTIO_SCSI_MULTIQUEUE\n    ```\n\nYou can now create new instances with your custom image:\n\n```console\n$ gcloud compute instances create INSTANCE_NAME --image=IMAGE_NAME\n```\n\nThe Google Cloud Storage file is no longer needed, so you can delete it if you\nwant:\n\n```console\n$ gsutil rm gs://BUCKET_NAME/arch-vDATE.tar.gz\n```\n\n## Contributing Changes\n\n* See [CONTRIB.md](CONTRIB.md)\n\n## Licensing\n\nAll files in this repository are under the [Apache License, Version\n2.0](LICENSE) unless noted otherwise.\n\n## Support\n\nGoogle Inc. does not provide any support, guarantees, or warranty for this\nproject or the images provided.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fcompute-archlinux-image-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglecloudplatform%2Fcompute-archlinux-image-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fcompute-archlinux-image-builder/lists"}