View on GitHub

archinstall

automate your installation process

Project status

npmnpm downloads

documentation website

Use case

This script provides a full unattended way to install ArchLinux from any live environment. You can create your own linux distribution based on the rolling released ArchLinux. A rock solid decorator pattern allows to automate a fully unattended individual installation process.

Quick-Start

Simply load the newest version from:

archinstall

>>> curl https://goo.gl/YbxT3F >archinstall.sh && chmod +x archinstall.sh

oder ohne Link-Shortener:

>>> curl \
    https://torben.website/archinstall/data/distributionBundle/archinstall.sh \
        >archinstall.sh && \
    chmod +x archinstall.sh

neuste unstable Version:

>>> curl \
    https://raw.githubusercontent.com/thaibault/archinstall/main/archinstall.sh \
        >archinstall.sh && \
    chmod +x archinstall.sh

archinstall ist das zentrale Modul um eine Reihe von Aufgaben im Zuge der Vorbereitung, Installation, Konfiguration oder Manipulieren eines "Linux from Scratch" durchzuführen.

Das Modul kann im einfachsten Fall (z.B. von einer beliebigen Live-Linux-Umgebung) gestartet werden. Zu beachten ist, dass die Installation von einem UEFI-System empfohlen wird, da dadurch entsprechende Boot-Einträge automatisch gesetzt werden können. Ein Bootloader wird nicht mit installiert und ist nicht notwendig, um das System zu booten.

>>> ./archinstall.sh

In diesem Fall werden alle benötigten Informationen zur Einrichtung (nur Hostname) des Systems vor Beginn des Installations Prozesses interaktiv abgefragt. Zu Beachten ist: ohne zusätzliche Parameter gibt das Modul keinen Feedback über den aktuellen Zustand des Installations Vorgangs. Mit:

>>> ./archinstall.sh --verbose

bekommt man einen etwas geschwätzigeren Installationsvorgang. Mit:

>>> ./archinstall.sh --verbose --debug

werden alle Ausgaben jeglicher verwendeten Subprogramme mit ausgegeben.

Alle Parameter wie Installations haben Standardwerte. So wird im obigen Fall einfach in das aktuelle Verzeichnis ein Ordner mit dem Programmnamen erstellt und darin das Betriebssystem installiert (./archinstall/). Möchte man eine unbeaufsichtigte Installation:

>>> ./archinstall.sh --auto-partitioning --host-name testSystem

Install to blockdevice

Im typischen Fall will man von einer Live-CD booten um das System auf einer Festplatte oder Partition zu installieren. Hierbei müssen folgende Aufgaben erfüllt werden.

Alle Aufgaben bis auf die Einrichtung der Internet Verbindung (wird in der Regel von der Host Umgebung geregelt) könne mit archinstall automatisiert durchgeführt werden. Will man z.B auf das Block Device "/dev/sdb" installieren und sich nicht selber um die Partitionierung kümmern und den kompletten verfügbaren Platz für das Haupt System verwenden (es soll also keine Swap- oder Daten Partition erstellt werden). sieht das z.B. so aus:

>>> ./archinstall.sh --auto-partitioning --target /dev/sdb

Auf diese Weise wird eine uefi Boot-Partition mit 2 GigaByte eingerichtet. Der restliche Platz wird für die Systempartition eingesetzt. Sind noch weitere Partitionen gewünscht kann man diese während der Installation durch weglassen des entsprechenden Parameters selber konfigurieren. Die erste Partition wird dann als Boot-Partition und die Zweite als Systempartition betrachtet. Weitere Partitionen werden ignoriert. Manuelle Partitionierung:

>>> ./archinstall.sh --target /dev/sdb

Archinstall erstellt alle Partition mit Labels sowohl in der Partitionstabelle als auf der Partition selbst. Um dieses Verhalten zu individualisieren, können folgende Optionen genutzt werden:

>>> ./archinstall.sh \
    --boot-partition-label uefiBoot \
    --system-partition-label system

Install to partition

Um z.B. aus einem Produktivsystem heraus eine alternative Linux Distribution auf eine weitere Partition zu installieren kann einfach folgender Befehl verwendet werden:

>>> ./archinstall.sh --target /dev/sdb2

Hier wird auf die zweite Partition des zweiten Block Devices installiert. archinstall versucht bei der Installation auf ein Blockdevice stets einen entsprechenden Uefi-Boot-Eintrag für den Kernel mit einem Standard Initramfs und einem Ausweich-Initiramfs zu konfigurieren. Die folgenden Parameter definieren dessen Label:

>>> ./archinstall.sh \
    --boot-entry-label archLinux \
    --fallback-boot-entry-label archLinuxFallback \
    --target /dev/sdb2

Install to folder

Um archinstall für komplexere Szenarien zu verwenden oder nachträgliche Manipulationen vorzunehmen ist es sinnvoll zunächst in einen Ordner zu installieren. Siehe hierzu "archinstall with Decorator Pattern", "makeXBMCLinux", "makeRamOnlyLinux" oder "makeSquashLinux" bzw. das Projekt "archinstallWrapperTemplate".

Dieser Befehl installiert ein vollständiges System in den eigenen Home-Ordner "test" (siehe auch Installation ohne root Rechte).

>>> ./archinstall.sh --target ~/test

Automatic configuration

archinstall konfiguriert das neu eingerichtete System vollautomatisch. Folgende Tasks wurden automatisiert:

Will man hierauf selber Einfluss nehmen, gibt es folgende Möglichkeiten:

>>> ./archinstall.sh \
    --additional-packages python vim \
    --country-with-mirrors Germany \
    --cpu-architecture x86_64 \
    --host-name test \
    --keyboard-layout de-latin1 \
    --local-time /Europe/London \
    --needed-services sshd dhcpcd apache \
    --prevent-using-pacstrap \
    --user-names test

Um die einzelnen Konfigurationsparameter zu verstehen empfiehlt sich ein Blick auf:

>>> ./archinstall.sh --help

zu werfen.

Application Interface

Viele nützlich Umgebungsvariablen und Funktionen können mit

>>> source archinstall.sh --load-environment

geladen werden. Um eine Übersicht zu erhalten sollte man sie die API-Dokumentation anschauen.

Options

archinstall stellt ein Alphabet voller Optionen zur Verfügung. Während bisher zum einfachen Verständnis immer Long-Options verwendet wurden, gibt es für jede Option auch einen Shortcut.

>>> ./archinstall.sh --user-names mustermann --host-name lfs

ist äquivalent zu:

>>> ./archinstall.sh -u mustermann -n lfs

Alle Optionen bis auf "--host-name" und "--auto-partitioning" haben Standardwerte. Diese beiden werden sofern nicht von vorne herein angegeben interaktiv abgefragt. Alle Standardwert können mit Hilfe von:

>>> ./archinstall.sh -h

oder

>>> ./archinstall.sh --help

oder

>>> ./archinstall.sh --keyboard-layout de-latin1 -h

eingesehen werden. Letzteres macht Sinn, da sich Standardwerte aufgrund schon ermittelten Informationen verändern können. So wird der Standardwert von "--key-map-configuration="KEYMAP=de-latin1\nFONT=Lat2-Terminus16\nFONT_MAP=" nach Eingabe von

>>> ./archinstall.sh --keyboard-layout us

zu: "--key-map-configuration="KEYMAP=us\nFONT=Lat2-Terminus16\nFONT_MAP=".

Der Standardwert von "--cpu-architecture" entspricht beispielsweise immer der Architektur des aktuellen Systems, um Konfigurationsaufwand zu minimieren.

Man kann Optionen die mehrere Werte annehmen auch mehrfach referenzieren. So hat:

>>> ./archinstall.sh \
    --additional-packages ssh \
    --additional-packages vim \
    -g python

den gleichen Effekt wie:

>>> ./archinstall.sh --additional-packages ssh vim python

Install offline

archinstall erstellt bei jeder Installation automatisch einen Paket-Cache, um weitere Installationen zu beschleunigen. Ist dieser einmal erstellt oder wird dieser zusammen mit dem archinstall (z.b. auf einem usb-stick) ausgeliefert kann Offline installiert werden.

Selbst wenn mit einem bereits vorhandenem pacstrap installiert wird, wird dieser temporär kopiert, gepatched und anschließend offlinefähig ausgeführt!

Bei Offline Installation müssen natürlich alle zusätzlich ausgewählten Pakete im Package Cache vorhanden sein. Ist dies nicht der Fall wird archinstall versuchen diese nach zu laden und im Offline-Fall einen Fehler zurückgeben.

Install without having root permissions

Prinzipiell ist es möglich auch ohne root Rechte ein System aufzusetzen. Hierbei werden jedoch folgende Einschnitte gemacht:

Useful tips and debugging informations

Während der Entwicklung haben sich eine Reihe von Optionen bewährt um Fehler bei der Entwicklung von Wrappern zu finden.

Die Option "--prevent-using-pacstrap" oder "-p" verhindert ein bereits installierten Pacman für die Installation zu verwenden. Dies ist notwendig wenn man sein Pacman so konfiguriert hat, das z.B. Pakete wie der Kernel oder Pacman von manipulierten User Repositories abhängen. Mit "--prevent-using-pacstrap" wird eine neue Version von Pacman in einer Change-Root-Umgebung ausgeführt.

Möchte man die Pakete "base-devel", "sudo" und "python" haben, geht das mit dem Shortcut: "--install-common-additional-packages" oder "-z".

Will man eine beliebige Liste von Paketen integrieren:

>>> ./archinstall.sh --additional-packages ssh python2 vim

Sollen Dienste schon beim ersten Start automatisch gestartet werden:

>>> ./archinstall.sh --needed-services sshd dhcpcd

Um die Installation zu beschleunigen kann auf ein Cache verwiesen werden:

>>> ./archinstall.sh --cache-path /var/cache/archinstall/

About this website

Provider of https://torben.website/archinstall :
Torben Sickert
Waldstraße 29
791194 Gundelfingen i.Br.
Phone: +49 (0) 176 / 10 248 185
Email:
info@torben.website
Website: https://torben.website
home

Disclaimer

Liability for content

Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekannt werden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Liability for links

Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

Copyright

Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

Privacy Policy

Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder E-Mail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. Wir darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.

Privacy Statement for using Google Analytics

Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. ("Google"). Google Analytics verwendet sog. "Cookies", Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Im Falle der Aktivierung der IP-Anonymisierung auf dieser Webseite wird Ihre IP-Adresse von Google jedoch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum zuvor gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt. Im Auftrag des Betreibers dieser Website wird Google diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen gegenüber dem Websitebetreiber zu erbringen. Die im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Website bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem Sie das unter dem folgenden Link verfügbare Browser-Plugin herunterladen und installieren.

Copyright Statement

Unless noted otherwise, all artwork on this website is protected property of the website author. Any use for commercial purpose, reproduction and publication requires the author's written permission. Commercial work created in cooperation or bound by contract with third parties are specifically marked. Respective copyrights apply.

top