Bootstrap v1.0 -kuvien luominen


Bootstrap v1.0 -kuvien luominen

Haluaisin esitellä huomionne boobstrap-nimisen kehyksen, joka on kirjoitettu POSIX-kuoreen, käynnistystiedostojen luomiseen GNU/Linux-jakeluilla. Kehyksen avulla voit käydä läpi koko prosessin vain kolmessa yksinkertaisessa vaiheessa: järjestelmän käyttöönotosta chrootissa, chrootin sisältävän initramfs-otoksen luomisesta ja lopulta käynnistettävästä ISO-otosta. boobstrap sisältää kolme apuohjelmaa mkbootstrap, mkinitramfs ja mkbootisofs.

mkbootstrap asentaa järjestelmän erilliseen hakemistoon, CRUX:lle on natiivi tuki, ja Arch Linux / Manjaro- ja Debian-pohjaisissa jakeluissa on käytettävä kolmannen osapuolen apuohjelmia pacstrap, basestrap ja debootstrap.

mkinitramfs luo initramfs-otoksen, voit käyttää asennettua järjestelmää hakemistoon "peittokuvana", pakattuna SquashFS:llä, tai järjestelmään käynnistyksen jälkeen suoraan tmpfs:ssä. Joten esimerkiksi komento mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd luo initrd-tiedoston, joka sisältää kaksi peittokuvaa "arch- chroot/"-järjestelmä ja "/home", joka on pakattu SquashFS:llä, jonka voit sitten käynnistää PXE:n kautta tmpfs-tiedostoksi tai luoda käynnistyskelpoisen ISO-otoksen tällä initrd:llä.

mkbootisofs luo BIOS/UEFI-käynnistettävän ISO-otoksen määritetystä hakemistosta. Laita vain /boot/vmlinuz ja /boot/initrd hakemistoon.

boobstrap ei käytä busyboxia, ja toimivan initramfs-ympäristön luomiseksi minimaalinen joukko ohjelmia kopioidaan käyttämällä ldd:tä, jotka ovat välttämättömiä käynnistyksessä ja järjestelmään vaihtamisessa. Luettelo kopioitavista ohjelmista, kuten kaikki muutkin, voidaan määrittää asetustiedoston /etc/boobstrap/boobstrap.conf kautta. Voit myös asentaa minkä tahansa minimalistisen jakelun erilliseen chroot/-osaan, josta voit sitten luoda täysimittaisen initramfs-ympäristön. Tällaisena minimalistisena, mutta samalla täysimittaisena ympäristönä ehdotetaan käytettäväksi "crux_gnulinux-embedded" -mallia, joka xz:n jälkeen vaatii 37 Mt:n kompromissin. busybox, sen koon lisäksi, 3-5 Mt verrattuna 30-50 Mt täysimittaiseen GNU/Linux-ympäristöön, ei enää tarjoa mitään etuja, joten busyboxin käyttö projektissa ei vaikuta sopivalta.

Kuinka nopeasti tarkistaa toimivuus ja päästä alkuun? Asenna ja suorita.

# git-klooni https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Sinun on myös asennettava riippuvuuksia, nimittäin: cpio, grub, grub-efi, dosfstools, xorriso. Squashfs-toolsin käyttö ei ole välttämätöntä, voit työskennellä tmpfs:ssä sopivalla määrällä RAM-muistia. Jos järjestelmästä puuttuu jotain, boobstrap ilmoittaa siitä käynnistyksen yhteydessä.

Kokoonpanojen luomisen yksinkertaistamiseksi boobstrap ehdottaa "mallien" ja "järjestelmien" käyttöä, joiden ydin on käyttää "malleja" (bootstrap-templates/) järjestelmien nopeaan asentamiseen tiedostosta ja suoraan "järjestelmiin" (bootstrap- järjestelmät/), joita käytetään lopullisten kokoonpanojen määrittämiseen.

Joten esimerkiksi komentosarjan boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild suorittaminen asentaa CRUX GNU/Linux -järjestelmän vähimmäiskokoonpanon ja tallentaa sen tiedostoon crux_gnulinux-embedded.rootfs, jonka jälkeen suoritat boobstrap/bootstrap-systems. /default/crux_gnulinux.bbuild, joka lataa ensisijaisen kokoonpanon mainitusta tiedostosta, tekee kaikki tarvittavat asetukset ja valmistelee käynnistettävän ISO:n. Tämä on kätevää, kun esimerkiksi monet järjestelmät käyttävät samantyyppistä konfiguraatiota: jotta et kuvaisi joka kerta samaa pakettijoukkoa, käytät yhtä mallia, jonka perusteella luodaan käynnistyskuvat järjestelmistä lopullisella kokoonpanolla.

Missä voin käyttää tätä kaikkea?

Määrität järjestelmän tiedostossa kerran ja käynnistämällä sen rakennat ja/tai päivität sen. Järjestelmä toimii tmpfs-muodossa, mikä tekee siitä käytännössä kertakäyttöisen. Jos järjestelmä epäonnistuu, voit palata alkuperäiseen tilaan yhdellä Palauta-painikkeen napsautuksella. Voit turvallisesti ajaa rm -rf /.

Voit määrittää kaikkien järjestelmien määritykset paikallisesti, luoda kuvia, testata niitä virtuaalikoneessa tai erillisessä laitteistossa, sitten ladata ne etäpalvelimelle ja suorittaa vain kaksi komentoa kexec -l /vmlinuz —initrd=/initrd && kexec -e päivittääksesi koko järjestelmän käynnistämällä sen uudelleen tmpfs-tiedostoon.

Samalla tavalla voit siirtää kaikki järjestelmät, esimerkiksi VDS:llä, toimimaan tmpfs:ssä ja salata /dev/vda-levyn ja käyttää sitä vain dataan ilman tarvetta pitää käyttöjärjestelmää siinä. Ainoa "tietovuotokohta" on tässä tapauksessa vain virtuaalikoneen muistin "kylmä kaatopaikka" ja järjestelmän vaarantuminen (esimerkiksi arvaamalla ssh-salasana tai haavoittuvuus Exim), voit ladata uuden ISO:n palveluntarjoajasi "ohjauspaneelin" kautta saadaksesi VDS:n takaisin toimintaan unohtamatta muokata järjestelmän asetuksia sulkeaksesi kaikki haavoittuvuudet. Tämä on nopeampaa kuin uudelleenasennus, myöhempi määrittäminen ja/tai varmuuskopiosta palauttaminen, koska pohjimmiltaan järjestelmän mukana ladattava ISO on varmuuskopiosi. "Seitsemän ongelmaa - yksi nollaus."

Lopulta voit luoda minkä tahansa jakelun tarpeidesi mukaan, kirjoittaa sen USB-asemalle ja työskennellä sen kanssa päivittämällä sitä tarpeen mukaan ja kirjoittamalla sen uudelleen USB-asemaan. Kaikki tiedot tallennetaan pilviin. Sinun ei enää tarvitse huolehtia järjestelmän turvallisuudesta ja tehdä varmuuskopiota, kun järjestelmä, toistan, on käytännössä tullut "kertakäyttöiseksi".

Toiveesi, ehdotuksesi ja kommentit ovat tervetulleita.

Alla olevan linkin arkistossa on yksityiskohtainen README-tiedosto (englanniksi), jossa on kuvaus kustakin apuohjelmasta ja käyttöesimerkkejä, myös yksityiskohtainen venäjänkielinen dokumentaatio ja kehityshistoria löytyy linkistä: Boobstrap-käynnistysskriptikompleksi.

Lähde: linux.org.ru

Lisää kommentti