So installieren Sie Fedora/Rhel/CentOS über Kickstart auf einem vorhandenen Luks -Gerät
- 3516
- 21
- Hr. Moritz Bozsik
KickStart-Installationen lassen uns leicht ein Skript und replizieren unbeaufsichtigte oder halbgebundene Installationen von Fedora, Red Hat Enterprise Linux oder CentOS. Die zur Installation des Betriebssystems erforderlichen Anweisungen werden mit einer dedizierten Syntax in einer Kickstart -Datei angegeben, die an das Anaconda -Installateur weitergegeben wird. In diesem Tutorial werden wir sehen, wie man einen bereits vorhandenen wiederverwendet Luks
(Linux Unified Keys -Setup) Container Bei der Durchführung einer Kickstart -Installation: Dies ist etwas, das mit Kickstart -Anweisungen nicht nur erreicht werden kann und einige zusätzliche Schritte erfordert.
In diesem Tutorial lernen Sie:
- So verwenden Sie einen vorhandenen Luks -Container bei der Durchführung einer Kickstart -Installation von Fedora, Rhel oder CentOS
- So erstellen und verwenden Sie eine Aktualisierung.IMG -Datei, die mit dem Anaconda -Installateur verwendet werden soll.
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Fedora/Rhel/Centos |
Software | Es ist keine spezifische Software erforderlich, um diesem Tutorial zu folgen. |
Andere |
|
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Einführung
Kickstart lassen Sie uns leicht replizieren und das Betriebssysteminstallationen auf eine Weise anpassen, die einfach unmöglich aus dem grafischen Installationsprogramm Anaconda zu erreichen ist. Wir können zum Beispiel erklären, welche Pakete oder Paketgruppen auf dem System installiert werden sollen und was stattdessen ausgeschlossen werden sollte.
Wir haben auch die Möglichkeit, benutzerdefinierte Befehle vor oder nach der Installation auszuführen, um sie innerhalb des Dedizierten anzugeben %Vor
Und %Post
Abschnitte der Kickstart -Datei jeweils. Wir werden diese letzte erwähnte Funktion nutzen, um eine bereits vorhandene zu verwenden Luks
Gerät während des Installationsprozesses.
Verschlüsselung mit native Kickstart -Syntax
Das Erstellen von Luks -Containern ist ziemlich einfach und kann nur durch die Verwendung von nativen Kickstart -Anweisungen durchgeführt werden. Hier ist ein Beispiel:
Teil PV.01-Dondisk = sda --crypted--luks-type = luks1--cipher = aes-texts-plain64--pbkdf-time = 5000-Passphrase = SecretPasPhrase
Im obigen Beispiel mit der Verwendung der Teil
Anweisungen erstellen wir eine verschlüsselte LVM
physisches Volumen auf dem /dev/sda
Scheibe. Wir geben die an Luks
Version zu verwenden (luks1 in diesem Fall - zumindest in den letzten Versionen von Fedora luks2 ist der Standard geworden) Chiffre
, und die Zeit, die in Millisekunden ausdrückt, um dafür auszugeben Pbkdf
(Kennwortbasierte Schlüsselabendungsfunktion) Passphrase-Verarbeitung (es entspricht der Verwendung der Verwendung des --ITER-Zeit
Option von Cryptsetup
).
Auch wenn es keine sichere Angewohnheit ist, haben wir auch die benutzt --Passphrase
Um die Verschlüsselungspassphrase bereitzustellen: Ohne diese Option würde der Installationsprozess unterbrochen, und wir würden aufgefordert, eine interaktiv zu liefern.
Wir können deutlich sehen, wie wir mit Kickstart im Vergleich zu einer traditionellen Installation viel mehr Flexibilität erhalten. Warum sollten wir dann zusätzliche Schritte ausführen müssen?? Es gibt noch einige Aufgaben, die wir nicht nur mit der Standard -Kickstart -Syntax mit der Standard -Kickstart. Unter anderem können wir nicht erschaffen Luks
Container auf Rohgeräten (nur auf Partitionen) oder den Hashing -Algorithmus für die verwenden Luks
Schlüsseleinrichtung, die standardmäßig auf eingestellt ist SHA256
(Nichts falsch daran).
Aus diesen Gründen möchten wir vor der Durchführung der Installation entweder manuell oder durch die Verwendung von Tools wie dem Inneren der Innenstadt unsere Partitions -Setup erstellen, die die Installation durchführen %Vor
Abschnitt der Kickstart -Datei selbst. Wir können auch nur ein bestehendes haben Luks
Setup wollen wir nicht zerstören. In all diesen Fällen müssen wir die zusätzlichen Schritte ausführen, die wir gleich sehen werden.
Der Kickstart %Pre -Abschnitt
Der %Vor
Der Abschnitt einer Kickstart -Datei ist die erste, die beim Abnehmen der Datei analysiert wird. Es wird verwendet, um benutzerdefinierte Befehle durchzuführen, bevor die Installation startet, und muss explizit mit dem geschlossen werden %Ende
Anweisung.
In %Vor
, Der Bash -Shell -Dolmetscher wird standardmäßig verwendet, andere können jedoch über die angegeben werden --Dolmetscher
Option (Um Python zu verwenden, würden wir schreiben %Pre -Interpreter/USR/bin/python
). Wir können mit diesem Abschnitt die Befehle ausführen Luks
Container. Hier ist, was wir schreiben können:
%pre iotty = "$ (tty)" exec> "$ iotty" 2> "$ iotty", während wahr; Do Cryptsetup Luksopen /dev /sda1 cryptroot - && break %End
Kopieren Schauen wir uns den obigen Code an. Zunächst speichern wir das Ergebnis der tty
Befehl, der den Dateinamen des an Standardeingangs verbundenen Terminals in die druckt, in die Iotty
Variable.
Mit dem exec> "$ iotty" 2> "$ iotty"
Befehl Wir haben die Standardausgabe und den Standardfehler an denselben Terminal umgeleitet:
Auf diese Weise können wir das Containerkennwort eingeben, wenn die CryTpsetup Luksopen
Der Befehl wird ausgeführt und die Eingabeaufforderung wird auf dem Bildschirm angezeigt. Der Befehl wird in einer unendlichen Schleife gestartet, die nur dann unterbrochen wird, wenn der Luks
Der Container wird erfolgreich geöffnet.
Wenn wir eine völlig unbeaufsichtigte Installation ausführen müssen, müssen wir die Passphrase direkt an CryptSetup übergeben (dies wird erneut nicht empfohlen). Wir würden schreiben:
%Pre Echo -n "OurverysecretpassPhrase" | Cryptsetup Luksopen /Dev /SDA1 Cryptroot - %Ende
Im obigen Beispiel haben wir die Passphrase an die Standardeingabe des CryptsetUp -Befehls über eine Rohre übergeben |
: Wir haben die benutzt Echo
Befehl mit dem -N
Option, um zu vermeiden, dass ein neuer Zeilenzeichen am Ende der Passphrase angehängt wird.
Patching Fedora 31 Anaconda Installer
Wenn wir versuchen, einen entsperrten Luks -Container bei der Installation von Fedora 31 über Kickstart zu verwenden, erhalten wir Folgendes
Nachricht, und der Prozess wird abgebrochen:
Das vorhandene entsperrte Luks -Gerät kann nicht für die Installation verwendet werden, ohne dass ein Verschlüsselungsschlüssel dafür angegeben ist
Gerät. Bitte rescan the Storage.
Dies geschieht aufgrund dieses in der Fedora 31 -Version des Anaconda Installers eingeführten Commits. Der Code prüft im Grunde, dass ein vorhandenes Luks -Gerät über einen registrierten Schlüssel verfügt, wenn dies nicht die Installation abgebrochen wird. Das Problem ist, dass Blivet
, Die von Anaconda zur Verwaltung von Anaconda verwendete Python -Bibliothek erfasst den Schlüssel nur, wenn der Container von ihm geöffnet wird: Dies kann vom grafischen Installateur erfolgen Luks
Container. Ich persönlich kommentierte das Komitee und erklärte die Situation, und ein Fehler wurde auf Red Hat Bugzilla geöffnet.
Erstellen von Updates.IMG -Datei
Im Moment besteht die einzige Problemumgehung (die ich kenne) darin, den Anaconda -Quellcode zu patchen und die Zeile zu kommentieren, die die mit dem oben erwähnte Steuerung ausführt. Die gute Nachricht ist, dass es sehr einfach zu operieren ist.
Als erstes müssen wir das Anaconda Git -Repository klonen, insbesondere das F31-Release
Zweig:
$ git klone https: // github.COM/Rhinstaller/Anaconda -B F31 -Release
Sobald das Repo kloniert ist, betreten wir die Anakonda
Verzeichnis und ändern Sie die Pyanaconda/Speicher/Checker.py
Datei: Alles, was wir tun müssen, ist eine Kommentarzeile zu kommentieren 619
:
Def set_default_checks (self): "" "Setzen Sie die Standardprüfungen."" selbst.prüfungen = list () self.add_check (verify_root) self.add_check (verify_s390_constraints) self self.add_check (verify_partition_formatting) self self.add_check (verify_partition_sizes) self self.add_check (verify_partition_format_sizes) self self.add_check (verify_bootloader) self self.add_check (verify_gpt_biosboot) self self.add_check (verify_swap) self.add_check (verify_swap_uuid) self.add_check (verify_mountpoints_on_linuxfs) self self.add_check (verify_mountpoints_on_root) #self.add_check (verify_unlocked_devices_have_key) self self.add_check (verify_luks_devices_have_key) self self.add_check (verify_luks2_memory_requirements) self self.add_check (verify_mounted_Partitions)
Kopieren Wir speichern die Änderung und starten vor der Wurzel des Repositorys die Make -updates
Skript, das in der gefunden wird Skripte
Verzeichnis. Damit das Skript ausgeführt werden muss, müssen wir haben Python2
Eingerichtet:
$ ./Skripte/Makeupdaten
Das Skript erzeugt die Aktualisierung.img
Datei, die unsere Änderungen enthalten. Um den Inhalt zu überprüfen, können wir die verwenden lsinitrd
Befehl:
$ lsinitrd Updates.IMG -Bild: Updates.IMG: 8.0K ================================================= =================ieben ====================================================== == DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 . DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 Rennen drwxr-xr-x 3 EGDOC EGDOC 0 Jan 30 09:29 Rennen/Installation DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 Run/install/install/install/install/install/install/install/install/ Aktualisierungen DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 Ausführen/Installation/Updates/Pyanaconda Drwxr-XR-X 2 EGDOC EGDOC 0 Jan 30 09:29 Ausführen/Installation/Updates/Pyanaconda/Storage -rw-r- -R-- 1 EGDOC EGDOC 25443 Jan 30 09:29 Ausführen/Installation/Updates/Pyanaconda/Speicher/Checker.py ================================================= ========================
Wir werden diese Datei verwenden, um den Installationsprogramm von Fedora 31 zu „Patch“.
Auftragen des Patchs
Um die in der gerade generierten Datei enthaltenen Änderungen anzuwenden, müssen wir sie an einen Ort platzieren, an dem wir leicht darauf zugreifen können, möglicherweise über FTP oder HTTP oder sogar auf einem lokalen Blockgerät, und die Verwendung des Inst.Aktualisierung
Parameter, um es aus dem Fedora -Installationsprogramm zu verweisen. Im Grub -Menü zeigen wir den Menü „Fedora installieren“:
Fedora 31 Installermenü
Sobald die Menüzeile ausgewählt ist, drücken wir die Registerkarte Taste: Die mit dem Eintrag zugeordnete Kernel -Befehlszeile wird unten auf dem Bildschirm angezeigt:
Die Kernel -Befehlszeile, die von der Eintrag „Installation Fedora“ verwendet wird, müssen wir jetzt die angehängt haben
Inst.Aktualisierung
Anweisungen und den Weg zum Weg zur Aktualisierung.img
Datei, die wir erstellt haben. Angenommen, sowohl den Kickstart als auch die Updates.Die IMG -Datei ist über HTTP auf einem lokalen Server mit IP 192 zugegriffen.168.0.37, wir würden schreiben: vmlinuz initrd = initrd.IMG Inst.Stufe 2 = HD: Label = Fedora-S-DVD-X86_31-31 Quiet Inst.updates = http: // 192.168.0.37/Updates.IMG Inst.KS = http: // 192.168.0.37/ks.CFG
Zu diesem Zeitpunkt können wir die Eingabetaste zum Booten drücken. Mit der obigen Änderung beschwert sich der Installateur nicht mehr darüber
die freigeschalteten Luks
Gerät, und die Installation wird ohne Probleme fortgesetzt.
Schlussfolgerungen
In diesem Artikel haben wir gesehen, wie eine Kickstart -Installation eingestellt werden kann, um eine bereits vorhanden Luks
Gerät, entsperren es in der %Vor
Abschnitt der KickStart -Datei und der Anwendung einer kleinen Problemumgehung auf das Anaconda -Installateur von Fedora 31, das ansonsten fehlschlagen würde, wenn eine solche Installationsart versucht wird. Wenn Sie neugierig auf die Kickstart -Syntax sind, sehen Sie sich bitte die Online -Dokumentation an.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- So installieren Sie Debian in einem vorhandenen Luks -Container
- So installieren Sie Anaconda Scientific Computing Python…
- So führen Sie unbeaufsichtigte Linux -Installationen mit Kickstart durch
- So verwenden Sie eine Datei als Luks -Geräteschlüssel
- Oracle Linux gegen Red Hat (Rhel)
- Linux -Download
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Dinge zu installieren auf Ubuntu 22.04
- « Fügen Sie neue Partitionen, logische Volumina und Swap in ein System, das nicht -zerstörend aufzutauschen - RHCSA -Objektivvorbereitung hinzu
- Studienziele für den RHCSA -Prüfungs- und Vorbereitungshandbuch »