Paghimo bootstrap v1.2 nga mga hulagway


Paghimo bootstrap v1.2 nga mga hulagway

Pagkahuman usa lang ka buwan Human sa hinay nga pag-uswag, ang boobstrap v1.2 gibuhian - usa ka hugpong sa mga himan sa POSIX shell alang sa pagmugna og mga hulagway sa boot ug mga drive.

Ang Boobstrap nagtugot kanimo sa pagbuhat sa usa lang ka sugo:

  • Paghimo og initramfs nga imahe, lakip ang bisan unsang GNU/Linux distribution niini.
  • Paghimo mga bootable nga ISO nga mga imahe nga adunay bisan unsang pag-apod-apod sa GNU/Linux.
  • Paghimo bootable USB, HDD, SSD drive nga adunay bisan unsang pag-apod-apod sa GNU/Linux.

Ang pagkatalagsaon mao nga pagkahuman sa pagkarga sa GNU/Linux molihok bisan sa hingpit sa puro nga tmpfs, o gamit ang mga imahe sa Overlay FS ug SquashFS, ang imong gusto. I-install nimo ang bisan unsang pag-apod-apod sa GNU/Linux sa usa ka direktoryo, paghimo sa tanan nga gikinahanglan nga mga setting (posible sa usa ka lahi nga direktoryo), pagkahuman maghimo ka usa ka boot device nga adunay usa ra ka mando, mahimo’g kini usa ka imahe sa ISO, USB, HDD, SSD drive, o makahimo ka og initrd nga imahe nga adunay sistema. Ang sistema kanunay nga naa sa parehas nga estado ug kung adunay pagkaguba, mahimo ka makabalik sa orihinal nga kahimtang pinaagi sa pagpindot sa usa ka buton nga Reset. Gusto ba nimong ibalhin ang sistema sa lain nga host, o maghimo usa ka sistema gikan sa naa na nga sudlanan? Buhaton kini sa Boobstrap.

Lakip sa hinungdanon nga mga pagbag-o:

  • Gidugang nga suporta alang sa syslinux bootloader, dugang sa naa na grub2. Mahimo nimong pilion nga gamiton ang grub2, syslinux, o pareho kung maghimo usa ka boot device o imahe sa ISO nga adunay --legacy-boot syslinux ug --efi grub2 nga mga kapilian matag usa, ug mahimo usab nimo pilion kung unsang mga mode Ang pag-download mosuporta sa ISO hulagway.
  • Gidugang --bootable nga kapilian, nga naghimo sa bisan unsang block device nga bootable. Aron makahimo og ISO nga mga hulagway, ang --iso-9660 nga opsyon kinahanglang gamiton.
  • Gidugang ang kernel boot nga mga opsyon boobs.use-shmfs aron kopyahon ang mga sulod sa tanang mga overlay ngadto sa tmpfs, boobs.use-overlayfs aron ma-boot gamit ang Overlay FS, boobs.search-rootfs aron makapili og tinubdan sa sistema, boobs.copy-to-ram aron kopyahon ang sistema ngadto sa memorya ug dayon i-off ang device.
  • Ang gikinahanglan ra nga dependency para magtrabaho ang boobstrap mao ang cpio. Ang uban nga mga dependency mga opsyonal: grub2, syslinux - gikinahanglan sa paghimo sa bootable media, cdrkit o xorriso sa pagpili gikan sa - sa paghimo sa usa ka ISO, squashfs-mga himan sa paghimo sa SquashFS, apan walay makapugong kanimo sa paggamit sa -cpio kapilian sa baylo nga - squashfs para i-package ang imong distribution ngadto sa archive. Ang busybox gamiton lamang kung kini ma-install, apan kung dili, ang tanan nga gikinahanglan nga mga gamit gikan sa imong sistema makopya. Sa ingon, ang boobstrap gigarantiyahan nga molihok bisan asa.

Pananglitan, ang mosunod nga sugo maghimo ug initrd nga hulagway lakip ang gentoo-chroot/ system nga giputos isip SquashFS nga hulagway, nga malampusong mo-boot human ma-load ang initrd mismo. Pahinumdumi ko nimo nga sa paggamit sa Overlay FS inubanan sa SquashFS, kinahanglan nimo nga ipasa ang boobs.use-overlayfs kernel option, kung dili ang sistema ma-unpack sa tmpfs. Ang tanan nga dugang nga mga setting mahimo sa usa ka lahi nga direktoryo, pananglitan gentoo-settings/

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

Ang initrd nga imahen nga adunay sistema sa sulod kombenyente kung kinahanglan nimo nga dali nga i-deploy ang usa ka sistema, pananglitan, pinaagi sa PXE, o sa usa ka loaded system switch sa initrd gamit ang command kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, maayo o, anaa sa QEMU virtual machine interface (posible bisan Proxmox), boot gikan sa layo nga tinubdan gamit ang tulo ka IPXE commands: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, boot. Sama sa imong makita, bisan ang usa ka regular nga initrd sa imong sistema sa sulod adunay daghang gamit.

Aron makahimo og mga bootable drive ug mga imahe, gigamit ang mkbootisofs command, pananglitan, mao kini ang paghimo sa usa ka ISO image nga adunay -iso-9660 nga opsyon sama sa paggamit sa syslinux sa pag-boot sa Legacy-mode (BIOS) ug grub2 aron sa pag-boot sa EFI- mode (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
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Mahimo nimong ipiho ang usa sa mga mode sa boot, o dili ipiho kini, ang katugbang nga imahe sa ISO malampuson nga mahimo.

Ang pag-instalar sa bisan unsang drive ug ang sunod nga pag-boot gikan niini gihimo gamit ang --bootable nga kapilian. Kinahanglan nimo nga maghimo mga partisyon sa drive sa imong kaugalingon (fdisk) ug i-format kini (mkdosfs, mke2fs, ug uban pa), ug dayon i-mount ang aparato sa usa ka direktoryo.

# mount / dev / sdb1 / mnt / drive /
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Pag-amping! Ang --bootable nga kapilian nagtino kung unsang block device ang gi-mount gikan sa direktoryo ug gi-install ang bootloader niini nga device. Kung nakalimtan nimo ang pag-mount sa aparato o nasayop nga ipiho ang usa ka direktoryo nga nahimutang, pananglitan, sa / dev / sda, ang bootloader sa / dev / sda ma-overwrite sumala niana. Paggamit --bootable uban ang pag-amping.

Ang pag-instalar sa bisan unsang sistema sa GNU/Linux gikunhoran sa usa lang ka sugo. Ang pag-instalar mahimo sa bisan unsang HDD, SSD, ug uban pa. Angayan nga hinumdoman nga kini usa gihapon ka sistema nga nagdagan gikan sa Overlay FS / SquashFS, o bug-os nga pagkarga sa tmpfs, ang imong gusto.

Lakip sa ubang mga butang, ang boobstrap adunay daghang makapaikag nga mga bahin ug dugang nga mga kapabilidad!

Pananglitan, makahimo ka og proprietary boobstrap initrd gamit ang command mkinitramfs `mktemp -d` > /boot/initrd ug i-boot sa imong system gamit kini nga initrd, nga magpiho sa kernel options boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Sa kini nga kaso, / dev / sda1, diin ang imong sistema sa balay gi-install, makonektar ingon usa ka read-only nga Overlay FS layer, ug ang tanan nga mga pagbag-o nga imong gihimo temporaryo ra nga isulat sa tmpfs. Mahimo nimong idugang ang opsyon nga boobs.copy-to-ram ug unya ang imong tibuok nga sistema makopya sa RAM, ug ang hard drive mahimong ma-disconnect gikan sa computer. Sayon kung kinahanglan nimo nga bungkagon ang usa ka butang, ug mahimo nimong ibalik ang mga pagbag-o pinaagi lamang sa pag-reboot. 🙂

Apan unsa man kung kinahanglan nimo nga i-save ang tanan nga mga pagbag-o sa sistema? Pananglitan, imong gi-install ang software o uban pa. Kung nagtrabaho sa puro nga tmpfs, sa walay palad imposible, apan kung nag-boot ka gamit ang Overlay FS, nan ang tanan nga mga pagbag-o nga mahitabo sa sistema gitipigan sa usa ka lahi nga direktoryo sa tmpfs: /mnt/overlayfs/rootfs-changes! Ang senaryo sa paggamit yano ra kaayo. Nag-boot ka sa imong sistema gikan sa usa ka USB device, nagtrabaho, ug gusto nga i-save ang tanan nga nabag-o, dayon paghimo og cpio archive ug ibutang kini dinhi, sa parehas nga USB device.

# cd /mnt/overlayfs/rootfs-changes
#pangita. -print0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Mahimo nimong ibutang ang archive sunod sa ubang mga "layer" sa SquashFS ug cpio, unya sa sunod nga pagkarga ang archive makonektar ingon nga usa ka read-only layer. Aron makapadayon sa pagtrabaho sa mga kausaban, gamita ang opsyon sa pag-upload boobs.rootfs-changes=/rootfs-changes.cpio. Ang boobs.rootfs-changes nga opsyon makapahimo sa espesipikong layer nga adunay change access. Ang layer mahimo nga usa ka block device, pananglitan mahimo nimong ipiho ang / dev / sdb1, unya ang tanan nga mga pagbag-o nga gihimo sa Overlay FS ma-save ra sa / dev / sdb1.

Ang Boobstrap, bisan pa sa daghang mga posibilidad nga magamit, naa pa sa yugto sa pag-uswag, ang tanan nimong mga komento ug sugyot gikonsiderar!

Source: linux.org.ru

Idugang sa usa ka comment