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


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

Μετά μόλις ένα μήνα Μετά από αργή ανάπτυξη, κυκλοφόρησε το boobstrap v1.2 - ένα σύνολο εργαλείων στο κέλυφος POSIX για τη δημιουργία εικόνων εκκίνησης και μονάδων δίσκου.

Το Boobstrap σάς επιτρέπει να κάνετε μόνο μία εντολή:

  • Δημιουργήστε μια εικόνα initramfs, συμπεριλαμβανομένης οποιασδήποτε διανομής GNU/Linux σε αυτήν.
  • Δημιουργήστε εικόνες ISO με δυνατότητα εκκίνησης με οποιαδήποτε διανομή GNU/Linux.
  • Δημιουργήστε εκκινήσιμες μονάδες USB, HDD, SSD με οποιαδήποτε διανομή GNU/Linux.

Η ιδιαιτερότητα είναι ότι μετά τη φόρτωση το GNU/Linux θα λειτουργεί είτε πλήρως σε καθαρά tmpfs, είτε χρησιμοποιώντας εικόνες Overlay FS και SquashFS, της επιλογής σας. Εγκαθιστάτε οποιαδήποτε διανομή GNU/Linux σε έναν κατάλογο, κάνετε όλες τις απαραίτητες ρυθμίσεις (πιθανώς σε ξεχωριστό κατάλογο), μετά από τις οποίες δημιουργείτε μια συσκευή εκκίνησης με μία μόνο εντολή, είτε πρόκειται για εικόνα ISO, USB, HDD, μονάδα SSD ή μπορείτε να δημιουργήσετε μια εικόνα initrd με το σύστημα. Το σύστημα θα βρίσκεται πάντα στην ίδια κατάσταση και σε περίπτωση βλάβης, μπορείτε να επιστρέψετε στην αρχική του κατάσταση πατώντας ένα κουμπί Επαναφορά. Θέλετε να μεταφέρετε το σύστημα σε άλλο κεντρικό υπολογιστή ή να δημιουργήσετε ένα σύστημα από ένα υπάρχον κοντέινερ; Το Boobstrap θα το κάνει.

Μεταξύ των βασικών αλλαγών:

  • Προστέθηκε υποστήριξη για τον bootloader syslinux, επιπλέον του ήδη υπάρχοντος grub2. Τώρα μπορείτε να επιλέξετε να χρησιμοποιήσετε είτε το grub2, το syslinux ή και τα δύο κατά τη δημιουργία μιας συσκευής εκκίνησης ή εικόνας ISO με τις επιλογές --legacy-boot syslinux και --efi grub2 αντίστοιχα, και μπορείτε επίσης να επιλέξετε ποιες λειτουργίες Η λήψη θα υποστηρίζει το ISO εικόνα.
  • Προστέθηκε η επιλογή --bootable, η οποία κάνει οποιαδήποτε συσκευή μπλοκ εκκινήσιμη. Για τη δημιουργία εικόνων ISO, πρέπει να χρησιμοποιηθεί η επιλογή --iso-9660.
  • Προστέθηκαν επιλογές εκκίνησης πυρήνα boobs.use-shmfs για αντιγραφή των περιεχομένων όλων των επικαλύψεων σε tmpfs, boobs.use-overlayfs για εκκίνηση με χρήση Overlay FS, boobs.search-rootfs για επιλογή πηγής με το σύστημα, boobs.copy-to-ram για να αντιγράψετε το σύστημα στη μνήμη και στη συνέχεια να απενεργοποιήσετε τη συσκευή.
  • Η μόνη απαιτούμενη εξάρτηση για να λειτουργήσει το boobstrap είναι το cpio. Οι υπόλοιπες εξαρτήσεις είναι προαιρετικές: grub2, syslinux - απαιτείται για τη δημιουργία εκκινήσιμων μέσων, cdrkit ή xorriso για επιλογή - για δημιουργία ISO, squashfs-εργαλεία για δημιουργία SquashFS, αλλά τίποτα δεν σας εμποδίζει να χρησιμοποιήσετε την επιλογή -cpio αντί - squashfs για να συσκευάσετε τη διανομή σας σε ένα αρχείο. Το busybox θα χρησιμοποιηθεί μόνο εάν είναι εγκατεστημένο, αλλά αν όχι, όλα τα απαραίτητα βοηθητικά προγράμματα από το σύστημά σας θα αντιγραφούν. Έτσι, το boobstrap είναι εγγυημένο ότι λειτουργεί σχεδόν παντού.

Για παράδειγμα, η ακόλουθη εντολή θα δημιουργήσει μια εικόνα initrd που περιλαμβάνει ένα gentoo-chroot/ σύστημα συσκευασμένο ως εικόνα SquashFS, το οποίο θα εκκινήσει με επιτυχία αφού φορτωθεί το ίδιο το initrd. Να σας υπενθυμίσω ότι για να χρησιμοποιήσετε το Overlay FS σε συνδυασμό με το SquashFS, πρέπει να περάσετε την επιλογή πυρήνα boobs.use-overlayfs, διαφορετικά το σύστημα θα αποσυμπιεστεί σε tmpfs. Όλες οι πρόσθετες ρυθμίσεις μπορούν να γίνουν σε ξεχωριστό κατάλογο, για παράδειγμα gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs > initrd

Μια εικόνα initrd με ένα σύστημα μέσα είναι βολική όταν χρειάζεται να αναπτύξετε γρήγορα ένα σύστημα, για παράδειγμα, μέσω PXE, ή σε έναν φορτωμένο διακόπτη συστήματος στο initrd χρησιμοποιώντας την εντολή kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, καλά ή, όντας στη διεπαφή εικονικής μηχανής QEMU (πιθανώς ακόμη και Proxmox), εκκινήστε από μια απομακρυσμένη πηγή χρησιμοποιώντας τρεις εντολές IPXE: πυρήνας http://[...]/vmlinuz, initrd http://[ ...]/initrd, εκκίνηση. Όπως μπορείτε να δείτε, ακόμη και ένα κανονικό initrd με το σύστημά σας μέσα έχει πολλές χρήσεις.

Για τη δημιουργία μονάδων δίσκου και εικόνων με δυνατότητα εκκίνησης, χρησιμοποιείται η εντολή mkbootisofs, για παράδειγμα, η δημιουργία μιας εικόνας ISO με την επιλογή -iso-9660 μοιάζει με τη χρήση του syslinux για εκκίνηση σε λειτουργία παλαιού τύπου (BIOS) και του grub2 για εκκίνηση στο EFI- λειτουργία (UEFI).

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
--επικάλυψη gentoo-chroot/ --επικάλυψη gentoo-settings/ --squashfs

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

Η εγκατάσταση σε οποιαδήποτε μονάδα δίσκου και η επακόλουθη εκκίνηση από αυτήν πραγματοποιείται χρησιμοποιώντας την επιλογή --bootable. Πρέπει να δημιουργήσετε μόνοι σας διαμερίσματα στη μονάδα δίσκου (fdisk) και να τα διαμορφώσετε (mkdosfs, mke2fs, κ.λπ.), και στη συνέχεια να προσαρτήσετε τη συσκευή σε έναν κατάλογο.

# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--επικάλυψη gentoo-chroot/ --επικάλυψη gentoo-settings/ --squashfs

Προσοχή! Η επιλογή --bootable καθορίζει από ποια συσκευή μπλοκ έχει τοποθετηθεί ο κατάλογος και εγκαθιστά το bootloader σε αυτήν τη συσκευή. Εάν ξεχάσετε να προσαρτήσετε τη συσκευή ή προσδιορίσετε κατά λάθος έναν κατάλογο που βρίσκεται, για παράδειγμα, στο /dev/sda, ο bootloader στο /dev/sda θα αντικατασταθεί ανάλογα. Χρησιμοποιήστε το --bootable με προσοχή.

Η εγκατάσταση οποιουδήποτε συστήματος GNU/Linux περιορίζεται σε μία μόνο εντολή. Η εγκατάσταση μπορεί να γίνει σε οποιονδήποτε σκληρό δίσκο, SSD και ούτω καθεξής. Αξίζει να υπενθυμίσουμε ότι αυτό είναι ακόμα ένα σύστημα που τρέχει από το Overlay FS / SquashFS ή φορτώνει εξ ολοκλήρου σε tmpfs, της επιλογής σας.

Μεταξύ άλλων, το boobstrap έχει μια σειρά από ενδιαφέροντα χαρακτηριστικά και πρόσθετες δυνατότητες!

Για παράδειγμα, μπορείτε να δημιουργήσετε ένα ιδιόκτητο boobstrap initrd με την εντολή mkinitramfs `mktemp -d` > /boot/initrd και να εκκινήσετε στο σύστημά σας με αυτό το initrd, καθορίζοντας τις επιλογές του πυρήνα boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Σε αυτήν την περίπτωση, το /dev/sda1, όπου είναι εγκατεστημένο το οικιακό σας σύστημα, θα συνδεθεί ως επίπεδο επικάλυψης FS μόνο για ανάγνωση και όλες οι αλλαγές που κάνετε θα γραφτούν μόνο προσωρινά στο tmpfs. Μπορείτε να προσθέσετε την επιλογή boobs.copy-to-ram και, στη συνέχεια, ολόκληρο το σύστημά σας θα αντιγραφεί στη μνήμη RAM και ο σκληρός δίσκος μπορεί να αποσυνδεθεί από τον υπολογιστή. Βολικό όταν χρειάζεται να σπάσετε κάτι και μπορείτε να επαναφέρετε τις αλλαγές απλά κάνοντας επανεκκίνηση. 🙂

Τι γίνεται όμως αν εξακολουθείτε να χρειάζεται να αποθηκεύσετε όλες τις αλλαγές στο σύστημα; Για παράδειγμα, εγκαταστήσατε λογισμικό ή κάτι άλλο. Όταν εργάζεστε σε καθαρά tmpfs, αυτό είναι δυστυχώς αδύνατο, αλλά εάν εκκινήσατε χρησιμοποιώντας το Overlay FS, τότε όλες οι αλλαγές που συμβαίνουν στο σύστημα αποθηκεύονται σε έναν ξεχωριστό κατάλογο tmpfs: /mnt/overlayfs/rootfs-changes! Το σενάριο χρήσης είναι πολύ απλό. Κάνατε εκκίνηση στο σύστημά σας από μια συσκευή USB, κάνατε κάποια δουλειά και θέλετε να αποθηκεύσετε όλα όσα άλλαξαν, στη συνέχεια δημιουργήσατε ένα αρχείο cpio και το βάλατε εδώ, στην ίδια συσκευή USB.

# cd /mnt/overlayfs/rootfs-changes
# εύρημα . -εκτύπωση0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Μπορείτε να βάλετε το αρχείο δίπλα σε άλλα "επίπεδα" του SquashFS και cpio, και στη συνέχεια, με την επόμενη φόρτωση, το αρχείο θα συνδεθεί ως ένα άλλο επίπεδο μόνο για ανάγνωση. Για να συνεχίσετε να εργάζεστε με αλλαγές, χρησιμοποιήστε την επιλογή μεταφόρτωσης boobs.rootfs-changes=/rootfs-changes.cpio. Η επιλογή boobs.rootfs-changes ενεργοποιεί το καθορισμένο επίπεδο με πρόσβαση αλλαγής. Το επίπεδο μπορεί να είναι μια συσκευή μπλοκ, για παράδειγμα, μπορείτε να καθορίσετε /dev/sdb1, τότε όλες οι αλλαγές που έγιναν στο Overlay FS θα αποθηκευτούν απλώς στο /dev/sdb1.

Το Boobstrap, παρά τις ευρείες δυνατότητες που υπάρχουν, είναι ακόμα στο στάδιο ανάπτυξης, όλα τα σχόλια και οι προτάσεις σας λαμβάνονται υπόψη!

Πηγή: linux.org.ru

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