Δημιουργία εικόνων bootstrap v1.0


Δημιουργία εικόνων bootstrap v1.0

Θα ήθελα να παρουσιάσω στην προσοχή σας ένα πλαίσιο που ονομάζεται boobstrap, γραμμένο στο κέλυφος POSIX, για τη δημιουργία εικόνων εκκίνησης με διανομές GNU/Linux. Το πλαίσιο σάς επιτρέπει να περάσετε ολόκληρη τη διαδικασία σε τρία απλά βήματα: από την ανάπτυξη του συστήματος σε ένα chroot, τη δημιουργία μιας εικόνας initramfs που περιλαμβάνει το chrooted σύστημα και, τελικά, μια εικόνα ISO με δυνατότητα εκκίνησης. Το boobstrap περιλαμβάνει τρία βοηθητικά προγράμματα mkbootstrap, mkinitramfs και mkbootisofs αντίστοιχα.

Το mkbootstrap εγκαθιστά το σύστημα σε ξεχωριστό κατάλογο, υπάρχει εγγενής υποστήριξη για CRUX και στην περίπτωση διανομών Arch Linux / Manjaro και Debian, πρέπει να χρησιμοποιούνται βοηθητικά προγράμματα τρίτων το pacstrap, το basestrap και το debootstrap αντίστοιχα.

Το mkinitramfs δημιουργεί μια εικόνα initramfs, μπορείτε να χρησιμοποιήσετε το εγκατεστημένο σύστημα στον κατάλογο ως "επικάλυψη", συμπιεσμένο χρησιμοποιώντας SquashFS ή μετά την εκκίνηση στο σύστημα, να εργαστείτε απευθείας σε tmpfs. Έτσι, για παράδειγμα, η εντολή mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd θα δημιουργήσει ένα αρχείο initrd, συμπεριλαμβανομένων δύο επικαλύψεων με "arch- Το σύστημα chroot/" και το "/home" σας, συμπιεσμένα χρησιμοποιώντας SquashFS, το οποίο μπορείτε στη συνέχεια να εκκινήσετε μέσω PXE σε tmpfs ή να δημιουργήσετε μια εικόνα ISO με δυνατότητα εκκίνησης με αυτό το initrd.

Το mkbootisofs δημιουργεί μια εικόνα ISO με δυνατότητα εκκίνησης BIOS/UEFI από τον καθορισμένο κατάλογο. Απλώς βάλτε τα /boot/vmlinuz και /boot/initrd στον κατάλογο.

Το boobstrap δεν χρησιμοποιεί busybox και για να δημιουργηθεί ένα λειτουργικό περιβάλλον initramfs, ένα ελάχιστο σύνολο προγραμμάτων αντιγράφεται χρησιμοποιώντας ldd, απαραίτητο για την εκκίνηση και τη μετάβαση στο σύστημα. Η λίστα των προγραμμάτων προς αντιγραφή, όπως όλα τα άλλα, μπορεί να ρυθμιστεί μέσω του αρχείου διαμόρφωσης /etc/boobstrap/boobstrap.conf. Επίσης, μπορείτε να εγκαταστήσετε οποιαδήποτε μινιμαλιστική διανομή σε ξεχωριστό chroot/, από το οποίο μπορείτε στη συνέχεια να δημιουργήσετε ένα πλήρες περιβάλλον initramfs. Ως τέτοιο μινιμαλιστικό, αλλά ταυτόχρονα πλήρες περιβάλλον, προτείνεται η χρήση του προτύπου «crux_gnulinux-embedded», το οποίο μετά το xz καταλαμβάνει ένα συμβιβασμό 37 MB. Το busybox, εκτός από το μέγεθός του, 3-5 MB έναντι 30-50 MB ενός πλήρους περιβάλλοντος GNU/Linux, δεν προσφέρει πλέον κανένα πλεονέκτημα, επομένως η χρήση του busybox σε ένα έργο δεν φαίνεται κατάλληλη.

Πώς να ελέγξετε γρήγορα τη λειτουργικότητα και να ξεκινήσετε; Εγκαταστήστε και εκτελέστε.

# κλώνος git https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# κάντε εγκατάσταση# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Πρέπει επίσης να εγκαταστήσετε εξαρτήσεις, συγκεκριμένα: cpio, grub, grub-efi, dosfstools, xorriso. Η χρήση squashfs-tools δεν είναι απαραίτητη· μπορείτε να εργαστείτε σε tmpfs με την κατάλληλη ποσότητα μνήμης RAM. Εάν κάτι λείπει από το σύστημα, το boobstrap θα το αναφέρει κατά την εκκίνηση.

Για την απλούστευση της δημιουργίας διαμορφώσεων, το boobstrap προτείνει τη χρήση "πρότυπων" και "συστημάτων", η ουσία των οποίων είναι η χρήση "προτύπων" (bootstrap-templates/) για γρήγορη εγκατάσταση συστημάτων από ένα αρχείο και απευθείας "συστήματα" (bootstrap- συστήματα/) που χρησιμοποιούνται για τη ρύθμιση των τελικών διαμορφώσεων.

Έτσι, για παράδειγμα, η εκτέλεση του σεναρίου boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild θα εγκαταστήσει την ελάχιστη διαμόρφωση του συστήματος CRUX GNU/Linux και θα το αποθηκεύσει στο αρχείο crux_gnulinux-embedded.rootfs και, στη συνέχεια, θα εκτελέσετε το boobstrap-sysstrap /default/crux_gnulinux.bbuild που θα φορτώσει την κύρια διαμόρφωση από το αναφερόμενο αρχείο, θα κάνει όλες τις απαραίτητες ρυθμίσεις και θα προετοιμάσει ένα εκκινήσιμο ISO. Αυτό είναι βολικό όταν, για παράδειγμα, πολλά συστήματα χρησιμοποιούν τον ίδιο τύπο διαμόρφωσης: για να μην περιγράφετε το ίδιο σύνολο πακέτων κάθε φορά, χρησιμοποιείτε ένα πρότυπο, βάσει του οποίου δημιουργείτε εικόνες εκκίνησης συστημάτων με την τελική διαμόρφωση.

Πού μπορώ να τα χρησιμοποιήσω όλα αυτά;

Ρυθμίζετε το σύστημα σε ένα αρχείο μία φορά και εκτελώντας το δημιουργείτε ή/και το ενημερώνετε. Το σύστημα τρέχει σε tmpfs, γεγονός που το καθιστά ουσιαστικά μίας χρήσης. Εάν το σύστημα αποτύχει, μπορείτε να επιστρέψετε στην αρχική του κατάσταση με ένα κλικ του κουμπιού Επαναφορά. Μπορείτε να εκτελέσετε με ασφάλεια το rm -rf /.

Μπορείτε να διαμορφώσετε τις διαμορφώσεις όλων των συστημάτων σας τοπικά, να δημιουργήσετε εικόνες, να τις δοκιμάσετε σε μια εικονική μηχανή ή ξεχωριστό υλικό, στη συνέχεια να τις ανεβάσετε σε έναν απομακρυσμένο διακομιστή και να εκτελέσετε μόνο δύο εντολές kexec -l /vmlinuz —initrd=/initrd && kexec -e για να ενημερώσετε ολόκληρο το σύστημα, επανεκκινώντας το σε tmpfs.

Με τον ίδιο τρόπο, μπορείτε να μεταφέρετε όλα τα συστήματα, για παράδειγμα σε VDS, για να εργαστούν σε tmpfs, και να κρυπτογραφήσετε το δίσκο /dev/vda και να τον χρησιμοποιήσετε μόνο για δεδομένα, χωρίς να χρειάζεται να διατηρείτε το λειτουργικό σύστημα σε αυτόν. Το μόνο "σημείο διαρροής πληροφοριών" σε αυτήν την περίπτωση θα είναι μόνο η "ψυχρή απόθεση" της μνήμης της εικονικής μηχανής σας και σε περίπτωση παραβίασης του συστήματος (για παράδειγμα, μαντεύοντας τον κωδικό πρόσβασης ssh ή μια ευπάθεια στο Exim), μπορείτε να κατεβάσετε ένα νέο ISO μέσω του "πίνακα ελέγχου" του παρόχου σας, για να επαναφέρετε το VDS σε λειτουργία, χωρίς να ξεχάσετε να επεξεργαστείτε τη διαμόρφωση του συστήματος για να κλείσετε όλα τα τρωτά σημεία. Αυτό είναι ταχύτερο από την επανεγκατάσταση, την επακόλουθη διαμόρφωση ή/και την επαναφορά από ένα αντίγραφο ασφαλείας, επειδή στην ουσία, το ISO με δυνατότητα λήψης με το σύστημά σας είναι το αντίγραφό σας. "Επτά προβλήματα - μία επαναφορά."

Στο τέλος, μπορείτε να δημιουργήσετε οποιαδήποτε διανομή για τις ανάγκες σας, να την γράψετε σε μια μονάδα USB και να εργαστείτε σε αυτήν, ενημερώνοντάς την όπως χρειάζεται και ξαναγράφοντας τη στη μονάδα USB ξανά. Όλα τα δεδομένα αποθηκεύονται στα σύννεφα. Δεν χρειάζεται πλέον να ανησυχείτε για την ασφάλεια του συστήματος και να κάνετε ένα αντίγραφο ασφαλείας όταν το σύστημα, επαναλαμβάνω, έχει ουσιαστικά γίνει «μιας χρήσης».

Οι επιθυμίες, οι προτάσεις και τα σχόλιά σας είναι ευπρόσδεκτα.

Στο αποθετήριο στον παρακάτω σύνδεσμο υπάρχει ένα λεπτομερές αρχείο README (στα Αγγλικά) με περιγραφή κάθε βοηθητικού προγράμματος και παραδείγματα χρήσης, υπάρχει επίσης λεπτομερής τεκμηρίωση στα ρωσικά και ιστορικό ανάπτυξης διαθέσιμο στον σύνδεσμο: Σύνθετο σενάριο εκκίνησης Boobstrap.

Πηγή: linux.org.ru

Προσθέστε ένα σχόλιο