booty - βοηθητικό πρόγραμμα για τη δημιουργία εικόνων εκκίνησης και μονάδων δίσκου

Παρουσιάστηκε το πρόγραμμα Λεία, το οποίο σας επιτρέπει να δημιουργήσετε εικόνες initrd με δυνατότητα εκκίνησης, αρχεία ISO ή μονάδες δίσκου που περιέχουν οποιαδήποτε διανομή GNU/Linux με μία εντολή. Ο κωδικός είναι γραμμένος σε κέλυφος POSIX και διανέμονται από άδεια σύμφωνα με το GPLv3.

Όλες οι διανομές που εκκινούνται με χρήση Booty εκτελούνται είτε SHMFS (tmpfs) είτε SquashFS + Overlay FS, επιλογή του χρήστη. Η διανομή δημιουργείται μία φορά και κατά τη διαδικασία εκκίνησης επιλέγονται παράμετροι που σας επιτρέπουν να χρησιμοποιείτε καθαρά tmpfs για τη ρίζα ή έναν συνδυασμό Overlay FS + SquashFS με εγγραφή αλλαγών σε tmpfs. Είναι δυνατή η εκ των προτέρων αντιγραφή του κιτ διανομής με δυνατότητα λήψης στη μνήμη RAM, η οποία σας επιτρέπει να αποσυνδέσετε τη μονάδα USB μετά τη λήψη και την αντιγραφή του κιτ διανομής στη μνήμη.

Πρώτα απ 'όλα, το Booty δημιουργεί τη δική του εικόνα initrd, η οποία μπορεί να χρησιμοποιήσει εγγενή βοηθητικά προγράμματα από το τρέχον σύστημα ή το busybox. Είναι δυνατό να συμπεριληφθεί (πακετάρετε) ολόκληρο το κιτ διανομής που είναι εγκατεστημένο στον κατάλογο (chroot) σε initramfs. Αυτό μπορεί να είναι χρήσιμο όταν χρειάζεται να αναβαθμίσετε ένα σύστημα χρησιμοποιώντας το kexec: απλά φορτώστε ξανά το initrd με έναν νέο πυρήνα και ένα νέο σύστημα μέσα στο initrd.

Δημιουργία μιας εικόνας initrd ειδικά για Booty:

mkdir initramfs/
mkinitramfs initramfs/ --έξοδος initrd

Δημιουργία μιας εικόνας initrd συμπεριλαμβανομένης της διανομής από τον κατάλογο "gentoo/":

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Μετά από αυτό, αυτή η initrd εικόνα είναι εντελώς έτοιμη για φόρτωση, για παράδειγμα, μέσω PXE ή μέσω kexec.

Στη συνέχεια, το Booty δημιουργεί εικόνες με το σύστημα που καθορίζεται ως "επικαλύψεις". Για παράδειγμα, μπορείτε να εγκαταστήσετε (να αποσυσκευάσετε το αρχείο) ένα Gentoo υπό όρους σε έναν ξεχωριστό κατάλογο, μετά τον οποίο θα δημιουργηθεί ένα αρχείο cpio ή μια εικόνα SquashFS με αυτό το σύστημα χρησιμοποιώντας το Booty. Μπορείτε επίσης να διαμορφώσετε τη διανομή σε ξεχωριστό κατάλογο και να αντιγράψετε τις προσωπικές σας ρυθμίσεις σε άλλον κατάλογο. Όλα αυτά τα «στρώματα» θα φορτωθούν διαδοχικά το ένα πάνω στο άλλο και θα δημιουργήσουν ένα ενιαίο σύστημα εργασίας.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay document/ --squashfs --output initrd

Τελικά, το Booty σάς επιτρέπει να δημιουργήσετε εικόνες ISO με δυνατότητα εκκίνησης και μονάδες USB, HDD, SSD και άλλες μονάδες εγκαθιστώντας το παραπάνω σύστημα από εικόνες. Λεία υποστηρίζει τη δημιουργία συστημάτων εκκίνησης BIOS και UEFI. Υποστηρίζονται bootloaders GRUB2 και SYSLINUX. Οι bootloaders μπορούν να συνδυαστούν, για παράδειγμα, να χρησιμοποιήσετε το SYSLINUX για εκκίνηση στο BIOS και το GRUB2 για το UEFI. Για να δημιουργήσετε εικόνες ISO, θα χρειαστείτε επιπλέον το πακέτο cdrkit (genisoimage) ή xorriso (xorrisofs), για να διαλέξετε.

Η μόνη πρόσθετη ενέργεια που απαιτείται είναι να προετοιμάσετε τον πυρήνα (vmlinuz) για εκκίνηση εκ των προτέρων. Ο συγγραφέας (Spoofing) συνιστά τη χρήση του "make defconfig". Πριν δημιουργήσετε την εικόνα, πρέπει να προετοιμάσετε έναν κατάλογο τοποθετώντας τον πυρήνα vmlinuz και το προηγουμένως προετοιμασμένο "κενό" initrd που δημιουργήθηκε στο πρώτο παράδειγμα.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Με αυτό η προετοιμασία έχει ολοκληρωθεί, μπορούμε τώρα να δημιουργήσουμε εικόνες ISO από αυτόν τον κατάλογο.

Η ακόλουθη εντολή θα δημιουργήσει μια εικόνα ISO, όχι μια εκκινήσιμη, απλώς ένα ISO:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Για να δημιουργήσετε μια εικόνα εκκίνησης, πρέπει να καθορίσετε την επιλογή "--legacy-boot" για το BIOS και "--efi" για το UEFI, αντίστοιχα. Οι επιλογές λαμβάνουν είτε το grub2 είτε το syslinux ως παραμέτρους, μπορείτε επίσης να καθορίσετε μόνο μία επιλογή ( για παράδειγμα, δεν απαιτείται υποστήριξη εκκίνησης UEFI, ενδέχεται να μην έχει καθοριστεί).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --έξοδος boot-uefionly.iso

Και όπως πριν, εικόνες με το σύστημα συμπεριλήφθηκαν στο initrd, μπορείτε να τις συμπεριλάβετε στο ISO.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Μετά από αυτήν την εντολή, θα δημιουργηθεί μια εικόνα ISO BIOS/UEFI με δυνατότητα εκκίνησης που φορτώνει το Gentoo στην εικόνα SquashFS χρησιμοποιώντας Overlay FS, χρησιμοποιώντας tmpfs για αποθήκευση δεδομένων. Ο πυρήνας πρέπει να κατασκευαστεί με υποστήριξη Overlay FS με SquashFS. Ωστόσο, εάν για κάποιο λόγο αυτό δεν απαιτείται, μπορείτε να χρησιμοποιήσετε την επιλογή «—cpio» αντί για —squashfs για να συσκευάσετε το gentoo/ ως αρχείο cpio, οπότε το αρχείο θα αποσυσκευαστεί απευθείας σε tmpfs κατά την εκκίνηση, το κύριο πράγμα είναι ότι για την αποσυσκευασία το σύστημα tmpfs είχε αρκετή μνήμη RAM.

Ενδιαφέρον γεγονός: εάν μια εικόνα ISO που δημιουργήθηκε χρησιμοποιώντας την επιλογή "—efi" αποσυσκευαστεί σε μια μονάδα flash FAT32 με απλή αντιγραφή αρχείων (cp -r), τότε η μονάδα Flash θα εκκινήσει σε λειτουργία UEFI χωρίς καμία προκαταρκτική προετοιμασία, χάρη στις συγκεκριμένες λεπτομέρειες των προγραμμάτων λήψης UEFI.

Εκτός από τα ISO με δυνατότητα εκκίνησης, μπορεί να δημιουργηθεί οποιαδήποτε μονάδα εκκίνησης με τις ίδιες παραμέτρους: USB, HDD, SSD και ούτω καθεξής, και αυτή η μονάδα μπορεί να συνεχίσει να χρησιμοποιείται για τον προορισμό της. Για να το κάνετε αυτό, πρέπει να τοποθετήσετε, για παράδειγμα, μια συσκευή USB και να εκτελέσετε το mkbootisofs σε αυτήν. Απλώς προσθέστε μία επιλογή "—bootable", ώστε η μονάδα δίσκου στην οποία βρίσκεται ο καθορισμένος κατάλογος να γίνει εκκινήσιμη.

προσάρτηση /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Μετά από αυτό, η συσκευή USB θα γίνει εκκίνηση με την επικάλυψη gentoo/ (μην ξεχάσετε να αντιγράψετε τα αρχεία /boot/vmlinuz και /boot/initrd στη συσκευή).

Εάν για κάποιο λόγο η μονάδα δίσκου δεν ήταν προσαρτημένη στο /mnt και αποδειχθεί ότι το /mnt βρίσκεται στην κύρια συσκευή /dev/sda, τότε ο bootloader θα ξαναγραφεί στο /dev/sda. Θα πρέπει να είστε προσεκτικοί όταν καθορίζετε την επιλογή --bootable.

Κατά τη διαδικασία εκκίνησης, το Booty υποστηρίζει έναν αριθμό επιλογών που μπορούν να περάσουν στον φορτωτή εκκίνησης, το grub.cfg ή το syslinux.cfg. Από προεπιλογή, χωρίς καμία επιλογή, όλες οι επικαλύψεις φορτώνονται και αποσυμπιέζονται σε tmpfs (προεπιλεγμένη επιλογή ooty.use-shmfs). Για να χρησιμοποιήσετε το Overlay FS πρέπει να χρησιμοποιηθεί η επιλογή booty.use-overlayfs. Η επιλογή booty.copy-to-ram αντιγράφει πρώτα τις επικαλύψεις σε tmpfs, στη συνέχεια τις συνδέει μόνο και τις φορτώνει. Μόλις αντιγραφεί, η συσκευή USB (ή άλλη συσκευή αποθήκευσης) μπορεί να αφαιρεθεί.

Πηγή: opennet.ru

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