Jak zainstalować Fedora/Rhel/Centos za pośrednictwem Kickstart na istniejącym urządzeniu LUKS
- 1340
- 2
- Seweryn Augustyniak
Instalacje KICKSTART pozwól nam łatwo skryptować i replikuj instalacje bez opieki lub częściowo nieporządkowane Fedory, Red Hat Enterprise Linux lub Centos. Instrukcje potrzebne do zainstalowania systemu operacyjnego są określone z dedykowaną składnią, wewnątrz pliku Kickstart, który jest przekazywany do instalatora AnaConda. W tym samouczku zobaczymy, jak ponownie użyć już istniejącego Luks
(Linux Unified Keys Setup) Pojemnik podczas wykonywania instalacji Kickstart: Jest to coś, czego nie można osiągnąć tylko za pomocą instrukcji Kickstart i wymaga dodatkowych kroków.
W tym samouczku nauczysz się:
- Jak korzystać z istniejącego kontenera LUKS podczas wykonywania instalacji Fedory, Rhel lub Centos
- Jak tworzyć i korzystać z aktualizacji.plik IMG do użycia z instalatorem Anaconda.
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Fedora/Rhel/Centos |
Oprogramowanie | Nie jest potrzebne konkretne oprogramowanie do śledzenia tego samouczka. |
Inny |
|
Konwencje | # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny |
Wstęp
KINGSTART pozwól nam łatwo powtórzyć i dostosować instalacje systemu operacyjnego w sposób, który po prostu nie można osiągnąć od instalatora graficznego Anaconda. Możemy na przykład zadeklarować, jakie pakiety lub grupy pakietów powinny być zainstalowane w systemie i co należy wykluczyć.
Mamy również szansę na wykonanie niestandardowych poleceń przed lub po wykonaniu instalacji, określając je w dedykowanym %przed
I %post
Odpowiednio sekcje pliku Kickstart. Skorzystamy z tej ostatniej wymienionej funkcji, aby użyć już istniejącego Luks
urządzenie podczas procesu instalacji.
Szyfrowanie z natywną składnią Kickstart
Tworzenie kontenerów LUKS jest dość łatwe i można je wykonać za pomocą natywnych instrukcji Kickstart. Oto przykład:
Część PV.01 -ondisk = sda-encrypted--luks-type = luks1--cipher = aes -xts-pllain64--pbkdf-time = 5000 --passphraza = secretPasphraze
W powyższym przykładzie, używając część
Instrukcja, tworzymy szyfrowane LVM
objętość fizyczna na /dev/sda
dysk. Określamy Luks
Wersja do użycia (LUKS1 W tym przypadku - przynajmniej w ostatnich wersjach Fedora Luks2 stała się domyślnie), szyfr
, i czas, wyrażony w milisekundach, do wydania PBKDF
(Funkcja wyprowadzania klucza opartego na hasłach) Przetwarzanie paliw (jest to odpowiednik używania --czas iter
opcja CryptsetUp
).
Nawet jeśli nie jest to bezpieczny nawyk, użyliśmy również --fraza
Aby zapewnić hasło szyfrowania: bez tej opcji proces instalacji zostanie przerwany i zostalibyśmy poproszeni o dostarczenie jednego interaktywnego.
Widzimy wyraźnie, w jaki sposób, używając Kickstart, uzyskujemy znacznie większą elastyczność w porównaniu z tradycyjną instalacją; Dlaczego musielibyśmy wykonać dodatkowe kroki? Nadal jest pewne zadania, których nie możemy osiągnąć za pomocą standardowej składni Kickstart. Między innymi nie możemy stworzyć Luks
kontenery na surowych urządzeniach (tylko na partycjach) lub określ algorytm mieszania Luks
Konfiguracja klucza, która domyślnie jest ustawiona SHA256
(nic w tym złego).
Z tych powodów możemy chcieć utworzyć naszą konfigurację partycji przed wykonaniem instalacji, ręcznie lub za pomocą narzędzi takich jak rozstanie się w %przed
sekcja samego pliku Kickstart. Możemy również mieć istniejący Luks
konfiguracja nie chcemy niszczyć. We wszystkich tych przypadkach musimy wykonać dodatkowe kroki, które zobaczymy za chwilę.
Kickstart %przed
%przed
Sekcja pliku Kickstart jest pierwszą, która została przeanalizowana po pobraniu pliku. Służy do wykonywania niestandardowych poleceń przed rozpoczęciem instalacji i musi być wyraźnie zamknięta %koniec
instrukcja.
W %przed
, Interpreter skorupy bash jest używany domyślnie, ale inne można określić za pośrednictwem --interpretator
opcja (aby użyć Pythona, które pisalibyśmy %Pre -interpreter/USR/Bin/Python
). Możemy użyć tej sekcji do uruchamiania poleceń wymaganych do otwarcia egzystencji Luks
pojemnik. Oto, co możemy napisać:
%pre iotty = "$ (tty)" exec> "$ iOTTY" 2> "$ iOTTY" podczas gdy true; Do CryptsetUp Luksopen /Dev /Sda1 Cyptroot - && Break Done %End
Kopiuj Spójrzmy na powyższy kod. Po pierwsze, przechowujemy wynik tty
polecenie, które drukuje nazwę pliku terminal podłączonego do standardowego wejścia, do IOTTY
zmienny.
Z exec> "$ iOTTY" 2> "$ iOTTY"
Polecenie przekierowaliśmy standardowe wyjście i błąd standardowy do tego samego terminala:
W ten sposób będziemy mogli wprowadzić hasło kontenera, gdy CrytpsetUp Luksopen
Polecenie zostanie wykonane, a monit zostanie wyświetlony na ekranie. Polecenie jest uruchamiane w nieskończonej pętli, która jest przerywana tylko wtedy, gdy Luks
Pojemnik jest pomyślnie otwierany.
Jeśli chcemy uruchomić całkowicie bez nadzoru instalacji, musimy przekazać hasło bezpośrednio do CryptsetUp (ponownie nie jest to zalecane). Napisalibyśmy:
%pre echo -n „OurverySecretPassPhraze” | CryptsetUp Luksopen /Dev /SDA1 Cyptroot - %END
W powyższym przykładzie przekazaliśmy hasło do standardowego wejścia polecenia CryptsetUp za pomocą rury |
: użyliśmy Echo
polecenie z -N
opcja, aby uniknąć nowej postaci, która ma zostać dołączona na końcu hasła.
Łatanie instalatora Fedora 31 Anaconda
Jeśli spróbujemy użyć odblokowanego kontenera LUKS podczas instalowania Fedora 31 za pośrednictwem Kickstart, otrzymamy następujące informacje
wiadomość, a proces zostanie przerwany:
Istniejącego odblokowanego urządzenia LUKS nie może być używane do instalacji bez określonego klucza szyfrowania
urządzenie. Proszę ,canuj przechowywanie.
Dzieje się tak z powodu tego zobowiązania wprowadzonego w wersji Fedora 31 instalatora Anaconda. Kod w zasadzie sprawdza, czy istniejące urządzenie LUKS ma zarejestrowany klucz, jeśli nie instalacja jest przerywana. Problemem jest Blivet
, Biblioteka Python używana przez Anacondę do zarządzania partycją nabywa klucz Luks
pojemnik. Osobiście skomentowałem zatwierdzenie wyjaśniające sytuację, a błąd został otwarty na Red Hat Bugzilla.
Tworzenie aktualizacji.plik IMG
W tej chwili jedynym obejściem (znam) jest załatanie kodu źródłowego Anaconda, komentowanie linii, która wykonuje kontrolę wprowadzoną z zatwierdzeniem, o którym wspomniano powyżej. Dobra wiadomość jest taka, że jest to bardzo proste do działania.
Jako pierwszą rzeczą musimy sklonować repozytorium Anaconda Git, w szczególności F31-uwalnianie
oddział:
$ git clone https: // github.COM/RHINSTALLER/ANACONDA -B F31 -Release
Po sklonowaniu repozytorium wchodzimy do anakonda
katalog i modyfikuj Pyanaconda/Storage/Checker.py
Plik: Wszystko, co musimy zrobić, to komentować linię 619
:
def set_default_checks (self): „” „Ustaw domyślne czeki.""" samego siebie.checks = lista () self.add_check (verify_root) self.add_check (verify_s390_constraints) self.add_check (verify_partition_formatting) self.add_check (verify_partition_size) self.add_check (verify_partition_format_size) self.add_check (verify_bootloader) self.add_check (verify_gpt_biosboot) self.add_check (verify_swap) self.add_check (verify_swap_uuid) self.add_check (verify_mountpoints_on_linuxfs) self.add_check (Verify_Mountpoints_ON_ROOT) #Self.add_check (verify_unlocked_devices_have_key) self.add_check (verify_luks_devices_have_key) self.add_check (verify_luks2_memory_requirements) self.add_check (verify_mounted_partitions)
Kopiuj Zapisujemy modyfikację i, z korzenia repozytorium, uruchamiamy makijażu
skrypt, który znajduje się w Skrypty
informator. Aby skrypt mógł zostać wykonany Python2
Zainstalowane:
$ ./Skrypty/makijaż
Skrypt wygeneruje aktualizacje.img
plik, który będzie zawierał nasze modyfikacje. Aby sprawdzić jego zawartość, możemy użyć lsinitrd
Komenda:
Aktualizacje $ lsinitrd.IMG Obraz: aktualizacje.IMG: 8.0k =================================================== ======================= Wersja: Argumenty: Moduły Dracut: ==================================================================================================================== ================================================== == DRWXR-XR-X 3 EGDOC EGDOC 0 stycznia 30 09:29 . drwxr-xr-x 3 EGDOC EGDOC 0 30 stycznia 09:29 Uruchom DRWXR-XR-X 3 EGDOC EGDOC 0 30 stycznia 09:29 Uruchom/zainstaluj DRWXR-XR-X 3 EGDOC EGDOC 0 stycznia 30 09:29 Uruchom/zainstaluj/zainstaluj/instalację Aktualizacje DRWXR-XR-X 3 EGDOC EGDOC 0 stycznia 09:29 Uruchom/instalację/aktualizacje/Pyanaconda Drwxr-xr-x 2 EGDOC EGDOC 0 stycznia 30 09:29 Uruchom/instalację/aktualizacje/Pyanaconda/Storage -Rw-R- -R-- 1 EGDOC EGDOC 25443 30 stycznia 09:29 Uruchom/zainstaluj/aktualizacje/Pyanaconda/Storage/Checker.PY ================================================== ========================
Użyjemy tego pliku, aby „załatać” instalator Fedora 31.
Zastosowanie łatki
Aby zastosować modyfikacje zawarte w pliku, który właśnie wygenerowaliśmy, musimy umieścić je gdzieś, gdzie możemy łatwo uzyskać do niego dostęp, być może za pośrednictwem FTP lub HTTP, a nawet na lokalnym urządzeniu blokowym, i użyć inst.aktualizacje
parametr, aby odnieść się do niego z obrazu instalatora Fedora. Z menu Grub wyróżniamy wpis menu „Zainstaluj Fedora”:
Menu instalatora Fedora 31
Po wybraniu linii menu nacisrzymy klawisz TAB: Wiersz polecenia jądra powiązany z wpisem jest wyświetlany na dole ekranu:
Wiersz poleceń jądra używany przez wpis „Instaluj Fedora” Wszystko, co musimy teraz zrobić, to dołączyć
inst.aktualizacje
instruktaż i podaj ścieżkę do aktualizacje.img
Plik, który utworzyliśmy. Przypuśćmy zarówno aktualizację, jak i aktualizacje.Plik IMG jest dostępny za pośrednictwem HTTP na serwerze lokalnym z IP 192.168.0.37, napisalibyśmy: vmlinuz initrd = initrd.IMG Inst.scena2 = hd: etykieta = fedora-s-dvd-x86_31-31 cisza inst.Aktualizacje = http: // 192.168.0.37/aktualizacje.IMG Inst.ks = http: // 192.168.0.37/ks.CFG
W tym momencie możemy nacisnąć Enter, aby uruchomić. Z powyższą modyfikacją instalator nie będzie już narzekać
odblokowane Luks
urządzenie, a instalacja będzie kontynuowana bez problemów.
Wnioski
W tym artykule zobaczyliśmy, jak dostroić instalację Kickstart, aby ponownie użyć już istniejącego Luks
urządzenie, odblokowanie go w %przed
Sekcja pliku Kickstart i sposób zastosowania niewielkiego obejścia do instalatora Anaconda Fedora 31, który w innym przypadku nie powiódłby się, gdy próba tego rodzaju instalacji jest próbą instalacji. Jeśli jesteś ciekawy składni Kickstart, spójrz na dokumentację online.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Jak zainstalować Debiana na istniejącym kontenerze Luksa
- Jak zainstalować Python Computing Computing Computing Computing…
- Jak wykonywać instalacje bez opieki Linux z Kickstart
- Jak używać pliku jako klucza urządzenia LUKS
- Oracle Linux vs Red Hat (RHEL)
- Pobierz Linux
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zainstalowania na Ubuntu 22.04
- « Dodaj nowe partycje, objętości logiczne i zamień na system nie -nowo -nowoczesny - przygotowanie celu RHCSA
- Cele badań dla Przewodnika egzaminu i przygotowania RHCSA »