Cara memasang fedora/rhel/centos melalui kickstart pada peranti LUKS yang ada
- 3780
- 1186
- Marcus Kassulke
Pemasangan Kickstart Mari kita dengan mudah skrip dan meniru pemasangan Fedora, Red Hat Enterprise Linux atau Centos. Arahan yang diperlukan untuk memasang sistem operasi ditentukan, dengan sintaks khusus, di dalam fail kickstart yang dihantar ke pemasang anaconda. Dalam tutorial ini kita akan melihat cara menggunakan semula yang sudah ada Luks
(Linux Unified Keys Setup) Bekas semasa melakukan pemasangan Kickstart: ini adalah sesuatu yang tidak dapat dicapai hanya dengan arahan kickstart dan memerlukan beberapa langkah tambahan.
Dalam tutorial ini anda akan belajar:
- Cara Menggunakan Bekas LUKS yang Ada Semasa Melaksanakan Pemasangan Kickstart Fedora, RHEL atau Centos
- Cara membuat dan menggunakan kemas kini.fail IMG akan digunakan dengan pemasang anaconda.
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Fedora/rhel/centos |
Perisian | Tidak ada perisian khusus yang diperlukan untuk mengikuti tutorial ini. |
Yang lain |
|
Konvensyen | # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak |
Pengenalan
Kickstart Marilah kita dengan mudah meniru dan menyesuaikan pemasangan sistem operasi dengan cara yang mustahil untuk dicapai dari pemasang grafik anaconda. Kita boleh, sebagai contoh, mengisytiharkan apa pakej atau kumpulan pakej yang harus dipasang pada sistem dan apa yang harus dikecualikan.
Kami juga berpeluang untuk melaksanakan arahan tersuai sebelum atau selepas pemasangan dilakukan, menyatakannya di dalam yang berdedikasi %pra
dan %jawatan
Bahagian fail kickstart masing -masing. Kami akan memanfaatkan ciri terakhir yang disebutkan ini untuk menggunakan yang sudah ada Luks
peranti semasa proses pemasangan.
Penyulitan dengan sintaks kickstart asli
Membuat bekas Luks agak mudah, dan boleh dilakukan dengan hanya menggunakan arahan kickstart asli. Berikut adalah contoh:
bahagian pv.01 --ondisk = sda-encrypted-luks-type = luks1 --cipher = aes-xts-plain64 --pbkdf-time = 5000 --passphrase = asretpassphrase
Dalam contoh di atas, dengan menggunakan bahagian
arahan, kami membuat yang disulitkan lvm
jumlah fizikal di /dev/sda
cakera. Kami menentukan Luks
versi untuk digunakan (Luks1 dalam kes ini - sekurang -kurangnya dalam versi terkini Fedora Luks2 telah menjadi lalai), yang cipher
, dan masa, dinyatakan dalam milisaat, untuk dibelanjakan untuk Pbkdf
(Fungsi derivasi utama berasaskan kata laluan) pemprosesan laluan laluan (ia bersamaan dengan menggunakan --masa
pilihan Cryptsetup
).
Walaupun ia bukan tabiat yang selamat, kami juga menggunakannya --laluan belakang
Untuk menyediakan frasa laluan penyulitan: Tanpa pilihan ini, proses pemasangan akan terganggu, dan kami akan diminta untuk menyediakannya secara interaktif.
Kami dapat melihat dengan jelas bagaimana, menggunakan Kickstart, kami mendapat lebih banyak fleksibiliti berbanding pemasangan tradisional; Mengapa kita perlu melakukan langkah tambahan, maka? Masih ada beberapa tugas yang tidak dapat kita capai dengan hanya menggunakan sintaks kickstart standard. Antara lain, kita tidak dapat mencipta Luks
bekas pada peranti mentah (hanya pada partition) atau tentukan algoritma hashing untuk digunakan untuk Luks
persediaan utama, yang secara lalai ditetapkan ke SHA256
(tidak ada yang salah dengannya).
Atas sebab -sebab ini, kami mungkin ingin membuat persediaan partition kami sebelum melakukan pemasangan, sama ada secara manual atau dengan menggunakan alat seperti berpisah di dalam %pra
bahagian fail kickstart itu sendiri. Kita juga mungkin mempunyai yang ada Luks
persediaan kita tidak mahu memusnahkan. Dalam semua kes ini, kita mesti melakukan langkah -langkah tambahan yang akan kita lihat dalam seketika.
Bahagian pra kickstart %
The %pra
bahagian fail kickstart adalah yang pertama yang akan dihuraikan apabila fail diambil. Ia digunakan untuk melaksanakan arahan tersuai sebelum pemasangan bermula dan mesti ditutup dengan jelas dengan %Akhir
arahan.
Dalam %pra
, jurubahasa shell bash digunakan secara lalai, tetapi yang lain dapat ditentukan melalui --jurubahasa
pilihan (untuk menggunakan python yang akan kami tulis %pra -interpreter/usr/bin/python
). Kita boleh menggunakan bahagian ini untuk menjalankan arahan yang diperlukan untuk membuka yang ada Luks
bekas. Inilah yang boleh kita tulis:
%pra iotty = "$ (tty)" exec> "$ iotty" 2> "$ iotty" sementara benar; Do CryptSetup Luksopen /Dev /SDA1 Cryptroot - && Break Done %End
Salinan Mari lihat kod di atas. Pertama sekali, kami menyimpan hasil dari tty
perintah, yang mencetak nama fail terminal yang disambungkan ke input standard, ke dalam iotty
pembolehubah.
Dengan exec> "$ iotty" 2> "$ iotty"
Perintah Kami mengalihkan output standard dan ralat standard ke terminal yang sama:
dengan cara ini kita akan dapat memasukkan kata laluan kontena apabila crytpsetup luksopen
Perintah akan dilaksanakan dan petikan akan dipaparkan di skrin. Perintah itu dilancarkan dalam gelung tak terhingga yang terganggu hanya jika Luks
bekas berjaya dibuka.
Sekiranya kita mahu perlu menjalankan pemasangan yang tidak dijaga, kita mesti lulus frasa laluan terus ke cryptsetup (sekali lagi, ini tidak disyorkan). Kami akan menulis:
%pra echo -n "OurVerySecretPassphrase" | Cryptsetup Luksopen /Dev /SDA1 Cryptroot - %Akhir
Dalam contoh di atas, kami melepasi frasa laluan ke input standard perintah cryptsetup melalui paip |
: kami menggunakan echo
perintah dengan -n
pilihan untuk mengelakkan watak baru untuk dilampirkan pada akhir frasa laluan.
Patching Fedora 31 Anaconda Installer
Sekiranya kami cuba menggunakan bekas Luks yang tidak dikunci semasa memasang Fedora 31 melalui Kickstart, kami akan menerima yang berikut
mesej, dan prosesnya akan digugurkan:
Peranti LUK yang dibuka yang sedia ada tidak boleh digunakan untuk pemasangan tanpa kunci penyulitan yang ditentukan untuk ini
peranti. Tolong, buat semula simpanan.
Ini berlaku kerana komit ini diperkenalkan dalam versi Fedora 31 dari pemasang Anaconda. Kod pada dasarnya memeriksa bahawa peranti LUKS yang ada mempunyai kunci berdaftar, jika tidak pemasangannya dibatalkan. Masalahnya ialah Blivet
, Perpustakaan Python yang digunakan oleh Anaconda untuk menguruskan partition memperoleh kunci hanya jika bekas dibuka olehnya: ini boleh dilakukan dari pemasang grafik tetapi tidak ada, pada saat menulis, arahan kickstart untuk membuka kunci yang ada Luks
bekas. Saya secara peribadi mengulas komit yang menjelaskan keadaan, dan pepijat telah dibuka pada Bugzilla Red Hat.
Membuat kemas kini.fail IMG
Pada masa ini satu -satunya penyelesaian (yang saya tahu) adalah untuk menampal kod sumber Anaconda, mengulas garis yang melaksanakan kawalan yang diperkenalkan dengan komit yang kita nyatakan di atas. Berita baiknya ialah ia sangat mudah untuk beroperasi.
Sebagai perkara pertama, kita perlu mengklon repositori anaconda git, khususnya F31-Release
Cawangan:
$ git clone https: // github.com/rhinstaller/anaconda -b f31 -rilease
Setelah repo diklonkan, kami memasuki Anaconda
direktori dan ubah suai pyanaconda/penyimpanan/pemeriksa.py
Fail: Yang harus kita lakukan ialah mengulas baris 619
:
def set_default_checks (diri): "" "Tetapkan cek lalai."" ".cek = senarai () diri.add_check (verify_root) diri.add_check (verify_s390_constraints) diri.add_check (verify_partition_formatting) diri.add_check (verify_partition_sizes) diri.add_check (verify_partition_format_sizes) diri.add_check (verify_bootloader) diri.add_check (verify_gpt_biosboot) diri.add_check (verify_swap) diri.add_check (verify_swap_uuid) diri.add_check (verify_mountpoints_on_linuxfs) diri.add_check (verify_mountpoints_on_root) #self.add_check (verify_unlocked_devices_have_key).add_check (verify_luks_devices_have_key) diri.add_check (verify_luks2_memory_requirements) diri.add_check (verify_mounted_partitions)
Salinan Kami menyimpan pengubahsuaian dan, dari akar repositori, kami melancarkan Makeupdates
skrip yang terdapat di Skrip
direktori. Untuk skrip yang akan dilaksanakan, kita mesti ada python2
Dipasang:
$ ./skrip/makeupdates
Skrip akan menjana kemas kini.img
fail yang akan mengandungi pengubahsuaian kami. Untuk memeriksa kandungannya, kami boleh menggunakannya lsinitrd
Perintah:
$ lsinitrd kemas kini.IMG Imej: Kemas kini.IMG: 8.0K ================================================ ====================== versi: Argumen: Dracut Modul: ================================================================== ================================================= == DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 . DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 RUN DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 RUN/Pasang DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 RUN/Pasang/ Kemas kini DRWXR-XR-X 3 EGDOC EGDOC 0 Jan 30 09:29 Run/Pasang/Kemas Kini/Pyanaconda DRWXR-XR-X 2 EGDOC EGDOC 0 Jan 30 09:29 Run/Pasang/Kemas Kini/Pyanaconda/Penyimpanan -RW-R- -R-- 1 EGDOC EGDOC 25443 30 Jan 09:29 Run/Pasang/Kemas kini/Pyanaconda/Penyimpanan/Pemeriksa.py ================================================ =======================
Kami akan menggunakan fail ini untuk "patch" pemasang fedora 31.
Memohon patch
Untuk menggunakan pengubahsuaian yang terkandung dalam fail yang baru saja kita hasilkan, kita perlu meletakkannya di mana kita dapat mengaksesnya dengan mudah, mungkin melalui FTP atau HTTP, atau bahkan pada peranti blok tempatan, dan gunakan Inst.kemas kini
parameter untuk merujuknya dari gambar pemasang fedora. Dari menu grub kami menyerlahkan entri menu "Pasang Fedora":
Menu pemasang fedora 31
Sebaik sahaja garisan menu dipilih, kami tekan kekunci Tab: baris arahan kernel yang dikaitkan dengan entri dipaparkan di bahagian bawah skrin:
Baris arahan kernel yang digunakan oleh entri "pemasangan fedora" yang perlu kita lakukan sekarang adalah untuk menambahkan
Inst.kemas kini
arahan dan berikan jalan ke kemas kini.img
fail yang kami buat. Menganggap kedua -dua kickstart dan kemas kini.Fail IMG boleh diakses melalui HTTP pada pelayan tempatan dengan IP 192.168.0.37, kami akan menulis: vmlinuz initrd = initrd.Img Inst.Stage2 = HD: Label = Fedora-S-DVD-X86_31-31 Tenang Inst.Kemas kini = http: // 192.168.0.37/kemas kini.Img Inst.KS = http: // 192.168.0.37/ks.cfg
Pada ketika ini kita boleh tekan Enter untuk boot. Dengan pengubahsuaian di atas, pemasang tidak akan mengadu lagi
yang dibuka Luks
peranti, dan pemasangan akan diteruskan tanpa masalah.
Kesimpulan
Dalam artikel ini kita melihat bagaimana untuk menyesuaikan pemasangan kickstart untuk menggunakan semula yang sudah ada Luks
peranti, membukanya di %pra
Bahagian fail kickstart, dan cara memohon penyelesaian kecil ke pemasang fedora 31 anaconda yang sebaliknya akan gagal apabila jenis pemasangan itu dicuba. Sekiranya anda ingin tahu mengenai sintaks kickstart sila lihat dokumentasi dalam talian.
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Cara Memasang Debian pada bekas Luks yang ada
- Cara Memasang Python Pengkomputeran Saintifik Anaconda ..
- Cara Melakukan Pemasangan Linux Tanpa Jauh dengan Kickstart
- Cara menggunakan fail sebagai kunci peranti luks
- Oracle Linux vs Red Hat (RHEL)
- Muat turun linux
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang perlu dipasang di Ubuntu 22.04
- « Tambahkan partisi baru, jumlah logik, dan swap ke sistem yang tidak merosakkan - penyediaan objektif RHCSA
- Objektif Kajian untuk Panduan Peperiksaan & Penyediaan RHCSA »