Kupanga zithunzi za bootstrap v1.2


Kupanga zithunzi za bootstrap v1.2

Kenako mwezi umodzi wokha Pambuyo pakukula pang'onopang'ono, boobstrap v1.2 inatulutsidwa - zida za POSIX popanga zithunzi za boot ndi zoyendetsa.

Boobstrap imakulolani kuchita lamulo limodzi lokha:

  • Pangani chithunzi cha initramfs, kuphatikiza kugawa kulikonse kwa GNU/Linux mmenemo.
  • Pangani zithunzi za ISO zosinthika ndi kugawa kulikonse kwa GNU/Linux.
  • Pangani ma drive oyendetsa a USB, HDD, SSD ndi magawo aliwonse a GNU/Linux.

Chodabwitsa ndichakuti mutatha kutsitsa GNU/Linux idzagwira ntchito kwathunthu mu tmpfs yoyera, kapena kugwiritsa ntchito zithunzi za Overlay FS ndi SquashFS, kusankha kwanu. Mumayika kugawa kulikonse kwa GNU / Linux m'ndandanda, pangani zoikamo zonse zofunika (mwina mu bukhu losiyana), pambuyo pake mumapanga chipangizo choyambira ndi lamulo limodzi lokha, kukhala chithunzi cha ISO, USB, HDD, SSD drive, kapena mutha kupanga chithunzi cha initrd ndi system. Dongosololi lidzakhala lofanana nthawi zonse ndipo pakagwa kuwonongeka, mutha kubwereranso ku chikhalidwe chake choyambirira ndikudina batani limodzi la Bwezeretsani. Kodi mukufuna kusamutsa kachipangizoka kwa wolandira wina, kapena kupanga makina kuchokera pachidebe chomwe chilipo kale? Boobstrap adzachita.

Zina mwazosintha zazikulu:

  • Thandizo lowonjezera la syslinux bootloader, kuwonjezera pa grub2 yomwe ilipo kale. Tsopano mutha kusankha kugwiritsa ntchito grub2, syslinux, kapena zonse ziwiri popanga chipangizo choyambira kapena chithunzi cha ISO ndi --legacy-boot syslinux ndi --efi grub2 zosankha motsatana, ndipo mutha kusankhanso mitundu yomwe Kutsitsa kumathandizira ISO. chithunzi.
  • Njira yowonjezera --bootable, yomwe imapangitsa kuti chipangizo chilichonse chotchinga chizitha kuyambiranso. Kuti mupange zithunzi za ISO, njira ya --iso-9660 iyenera kugwiritsidwa ntchito.
  • Zowonjezera kernel boot options boobs.use-shmfs kuti mukopere zomwe zili muzowonjezera zonse ku tmpfs, boobs.use-overlayfs kuti muyambe kugwiritsa ntchito Overlay FS, boobs.search-rootfs kuti musankhe gwero ndi dongosolo, boobs.copy-to-ram kukopera dongosolo mu kukumbukira ndiyeno kuzimitsa chipangizo.
  • Kudalira kokha kofunikira kuti boobstrap igwire ntchito ndi cpio. Zina zonse zomwe zimadalira ndizosankha: grub2, syslinux - zomwe zimafunikira kuti mupange media media, cdrkit kapena xorriso kuti musankhe - kupanga ISO, squashfs-zida kuti mupange SquashFS, koma palibe chomwe chimakulepheretsani kugwiritsa ntchito -cpio njira m'malo mwake - squashfs kuti mupange kugawa kwanu muzosunga zakale. busybox idzagwiritsidwa ntchito ngati itayikidwa, koma ngati sichoncho, zofunikira zonse kuchokera kudongosolo lanu zidzakopedwa. Chifukwa chake, boobstrap imatsimikizika kugwira ntchito pafupifupi kulikonse.

Mwachitsanzo, lamulo lotsatirali lidzapanga chithunzi cha initrd kuphatikizapo gentoo-chroot/ dongosolo lopakidwa ngati chithunzi cha SquashFS, chomwe chidzayambe bwino pambuyo poti initrdyo yadzaza. Ndiroleni ndikukumbutseni kuti kugwiritsa ntchito Overlay FS molumikizana ndi SquashFS, muyenera kudutsa njira ya boobs.use-overlayfs kernel, apo ayi dongosololi lidzatsegulidwa mu tmpfs. Zokonda zonse zowonjezera zitha kupangidwa m'ndandanda ina, mwachitsanzo gentoo-settings/

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

Chithunzi cha initrd chokhala ndi dongosolo mkati chimakhala chosavuta mukafuna kutumiza mwachangu dongosolo, mwachitsanzo, kudzera pa PXE, kapena pakusintha kwadongosolo kupita ku initrd pogwiritsa ntchito lamulo kexec -l /boot/vmlinuz-* -initrd=./initrd && kexec -e, chabwino kapena, pokhala mu mawonekedwe a makina a QEMU (mwina Proxmox), yambitsani kuchokera kutali pogwiritsa ntchito malamulo atatu a IPXE: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, boot. Monga mukuwonera, ngakhale initrd yokhazikika yokhala ndi makina anu mkati imakhala ndi ntchito zambiri.

Kuti mupange ma drive oyendetsa ndi zithunzi, lamulo la mkbootisofs limagwiritsidwa ntchito, mwachitsanzo, izi ndizomwe kupanga chithunzi cha ISO ndi -iso-9660 njira imawoneka ngati kugwiritsa ntchito syslinux kuyambitsa mu Legacy-mode (BIOS) ndi grub2 kuti muyambitse EFI- mode (UEFI).

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir chithunzi/
# 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

Mutha kufotokozera imodzi mwamachitidwe oyambira, kapena osawafotokozera konse, chithunzi chofananira cha ISO chidzapangidwa bwino.

Kuyika pagalimoto iliyonse ndikuyambiranso kuchokera pamenepo kumachitika pogwiritsa ntchito --bootable njira. Muyenera kupanga magawo pagalimoto nokha (fdisk) ndikuwapanga (mkdosfs, mke2fs, etc.), kenako ndikuyika chipangizocho kukhala chikwatu.

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

Chenjezo Njira --bootable imatsimikizira kuti ndi chida chotani chomwe chikwatu chakhazikitsidwa ndikuyika bootloader pa chipangizochi. Ngati mwaiwala kuyika chipangizocho kapena kutchula molakwika chikwatu chomwe chili, mwachitsanzo, pa / dev/sda, bootloader pa / dev/sda idzalembedwa moyenerera. Gwiritsani ntchito --bootable mosamala.

Kuyika dongosolo lililonse la GNU/Linux kumachepetsedwa kukhala lamulo limodzi lokha. Kuyika kungatheke pa HDD iliyonse, SSD, ndi zina zotero. Ndikoyenera kukumbukira kuti iyi ikadali dongosolo lomwe likuyenda kuchokera ku Overlay FS / SquashFS, kapena kutsitsa kwathunthu mu tmpfs, kusankha kwanu.

Mwa zina, boobstrap ili ndi zinthu zingapo zosangalatsa komanso zina zowonjezera!

Mwachitsanzo, mutha kupanga proprietary boobstrap initrd ndi lamulo mkinitramfs `mktemp -d` > /boot/initrd ndi boot mu system yanu ndi initrd iyi, kufotokozera zosankha za kernel boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Pachifukwa ichi, / dev/sda1, pomwe makina anu akunyumba ayikidwa, adzalumikizidwa ngati gawo lowerengera la Overlay FS, ndipo zosintha zonse zomwe mupanga zidzalembedwa kwakanthawi ku tmpfs. Mutha kuwonjezera njira boobs.copy-to-ram ndiyeno dongosolo lanu lonse lidzakopedwa ku RAM, ndipo hard drive ikhoza kuchotsedwa pakompyuta. Zosavuta mukafuna kuthyola china chake, ndipo mutha kubweza zosintha pongoyambiranso. 🙂

Koma bwanji ngati mukufunikabe kusunga zosintha zonse mudongosolo? Mwachitsanzo, mudayika mapulogalamu kapena zina. Mukamagwira ntchito mu tmpfs yoyera, mwatsoka izi sizingatheke, koma ngati mutatsegula pogwiritsa ntchito Overlay FS, ndiye kuti zosintha zonse zomwe zimachitika mu dongosolo zimasungidwa mu tmpfs directory: /mnt/overlayfs/rootfs-changes! Zomwe zimagwiritsidwa ntchito ndizosavuta. Munalowa mudongosolo lanu kuchokera ku chipangizo cha USB, munagwira ntchito, ndipo mukufuna kusunga zonse zomwe zasinthidwa, kenako pangani cpio archive ndikuyiyika apa, pa chipangizo chomwecho cha USB.

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

Mutha kuyika zosungidwa pafupi ndi "zigawo" za SquashFS ndi cpio, ndiye mukatsitsa zosungidwazo zimalumikizidwa ngati gawo lina lowerengera lokha. Kuti mupitirize kugwira ntchito ndi zosintha, gwiritsani ntchito njira yokweza boobs.rootfs-changes=/rootfs-changes.cpio. Njira ya boobs.rootfs-changes imathandizira gawo lodziwika ndi mwayi wosintha. Chosanjikiza chikhoza kukhala chida chotchinga, mwachitsanzo mutha kufotokozera /dev/sdb1, ndiye zosintha zonse zomwe zapangidwa mu Overlay FS zidzangosungidwa ku /dev/sdb1.

Boobstrap, ngakhale pali kuthekera kwakukulu komwe kulipo, idakali pachitukuko, ndemanga zanu zonse ndi malingaliro anu amaganiziridwa!

Source: linux.org.ru

Kuwonjezera ndemanga