Ṣiṣẹda bootstrap v1.0 awọn aworan


Ṣiṣẹda bootstrap v1.0 awọn aworan

Emi yoo fẹ lati ṣafihan si akiyesi rẹ ilana kan ti a pe ni boobstrap, ti a kọ sinu ikarahun POSIX, fun ṣiṣẹda awọn aworan bata pẹlu awọn pinpin GNU/Linux. Ilana naa gba ọ laaye lati lọ nipasẹ gbogbo ilana ni awọn igbesẹ mẹta ti o rọrun: lati mu eto naa ṣiṣẹ ni chroot kan, ṣiṣẹda aworan intramfs ti o pẹlu eto chrooted, ati nikẹhin aworan ISO bootable kan. boobstrap pẹlu awọn ohun elo mẹta mkbootstrap, mkinitramfs ati mkbootisofs lẹsẹsẹ.

mkbootstrap fi sori ẹrọ eto ni itọsọna lọtọ, atilẹyin abinibi wa fun CRUX, ati ninu ọran ti Arch Linux / Manjaro ati awọn pinpin orisun Debian, pacstrap awọn ohun elo ẹnikẹta, basestrap ati debootstrap gbọdọ ṣee lo ni atele.

mkinitramfs ṣẹda aworan initramfs, o le lo eto ti a fi sori ẹrọ ninu itọsọna bi “agbekọja”, fisinuirindigbindigbin ni lilo SquashFS, tabi lẹhin gbigbe sinu eto, ṣiṣẹ taara ni tmpfs. Fun apẹẹrẹ, aṣẹ mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd yoo ṣẹda faili initrd kan, pẹlu awọn agbekọja meji pẹlu "arch- chroot/" eto ati "/ ile" rẹ, fisinuirindigbindigbin lilo SquashFS, eyi ti o le ki o si bata nipasẹ PXE sinu tmpfs, tabi ṣẹda a bootable ISO image pẹlu yi initrd.

mkbootisofs ṣẹda aworan ISO bootable BIOS/UEFI lati inu ilana ti a ti sọ tẹlẹ. Kan fi /boot/vmlinuz ati /boot/initrd sinu itọsọna naa.

boobstrap ko lo busybox, ati lati ṣẹda ayika initramfs ṣiṣẹ, a daakọ eto ti o kere ju nipa lilo ldd, pataki lati bata ati yipada si eto naa. Atokọ awọn eto lati daakọ, bii ohun gbogbo miiran, ni a le tunto nipasẹ faili iṣeto ni /etc/boobstrap/boobstrap.conf. Paapaa, o le fi sori ẹrọ eyikeyi pinpin minimalistic sinu chroot / lọtọ, lati eyiti o le ṣẹda agbegbe initramfs ni kikun. Bi iru minimalistic, ṣugbọn ni akoko kanna agbegbe ti o ni kikun, o ni imọran lati lo awoṣe "crux_gnulinux-embedded", eyiti lẹhin xz gba adehun ti 37 MB. busybox, ni afikun si iwọn rẹ, 3-5 MB dipo 30-50 MB ti agbegbe GNU/Linux ti o ni kikun, ko funni ni awọn anfani eyikeyi mọ, nitorinaa lilo apoti busybox ni iṣẹ akanṣe ko dabi pe o yẹ.

Bii o ṣe le yara ṣayẹwo iṣẹ ṣiṣe ati bẹrẹ? Fi sori ẹrọ ati ṣiṣe.

# git oniye https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# ṣe fifi sori ẹrọ# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

O tun nilo lati fi awọn igbẹkẹle sii, eyun: cpio, grub, grub-efi, dosfstools, xorriso. Lilo awọn irinṣẹ squashfs ko ṣe pataki; o le ṣiṣẹ ni tmpfs pẹlu iye Ramu ti o yẹ. Ti nkan kan ba nsọnu ninu eto naa, boobstrap yoo jabo eyi lori ibẹrẹ.

Lati ṣe irọrun ẹda ti awọn atunto, boobstrap ni imọran lilo “awọn awoṣe” ati “awọn ọna ṣiṣe”, pataki eyiti o jẹ lati lo “awọn awoṣe” (bootstrap-awọn awoṣe /) lati fi awọn ọna ṣiṣe sori ẹrọ ni kiakia lati faili kan, ati taara “awọn ọna ṣiṣe” (bootstrap- awọn ọna šiše /) ti a lo lati ṣeto awọn atunto ikẹhin.

Nitorina fun apẹẹrẹ, nṣiṣẹ iwe afọwọkọ boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild yoo fi sori ẹrọ iṣeto ti o kere julọ ti CRUX GNU/Linux ati fi pamọ sinu faili crux_gnulinux-embedded.rootfs, lẹhinna o ṣiṣe awọn boobstrap / bootstrap-systems. /default/crux_gnulinux.bbuild eyi ti yoo fifuye awọn jc re iṣeto ni lati awọn darukọ faili, ṣe gbogbo awọn pataki iṣeto ni ati ki o mura a bootable ISO. Eyi jẹ rọrun nigbati, fun apẹẹrẹ, ọpọlọpọ awọn ọna ṣiṣe lo iru iṣeto kanna: ki o má ba ṣe apejuwe iru awọn idii kanna ni akoko kọọkan, o lo awoṣe kan, ti o da lori eyiti o ṣẹda awọn aworan bata ti awọn ọna ṣiṣe pẹlu iṣeto ikẹhin.

Nibo ni MO le lo gbogbo eyi?

O tunto eto naa ninu faili lẹẹkan ati nipa ṣiṣiṣẹ rẹ o kọ ati/tabi ṣe imudojuiwọn rẹ. Awọn eto nṣiṣẹ ni tmpfs, eyi ti o mu ki o pataki isọnu. Ti eto ba kuna, o le pada si ipo atilẹba rẹ pẹlu titẹ ọkan ti bọtini Tunto. O le ṣiṣẹ lailewu rm -rf /.

O le tunto awọn atunto ti gbogbo awọn eto rẹ ni agbegbe, ṣẹda awọn aworan, ṣe idanwo wọn ni ẹrọ foju tabi ohun elo lọtọ, lẹhinna gbe wọn si olupin latọna jijin ki o ṣiṣẹ awọn aṣẹ meji nikan kexec -l / vmlinuz —initrd=/initrd && kexec -e lati ṣe imudojuiwọn gbogbo eto, atunbere sinu tmpfs.

Ni ọna kanna, o le gbe gbogbo awọn ọna ṣiṣe, fun apẹẹrẹ lori VDS, lati ṣiṣẹ ni tmpfs, ati encrypt / dev/vda disk ki o lo fun data nikan, laisi iwulo lati tọju ẹrọ ṣiṣe lori rẹ. Nikan “ojuami ti jijo alaye” ninu ọran yii yoo jẹ “idasonu tutu” nikan ti iranti ti ẹrọ foju rẹ, ati ni iṣẹlẹ ti adehun ti eto naa (fun apẹẹrẹ, nipa ṣiro ọrọ igbaniwọle ssh tabi ailagbara ninu Exim), o le ṣe igbasilẹ ISO tuntun nipasẹ “igbimọ iṣakoso” ti olupese rẹ, lati mu VDS pada si iṣẹ, laisi gbagbe lati satunkọ iṣeto eto lati pa gbogbo awọn ailagbara. Eyi yarayara ju fifi sori ẹrọ, iṣeto atẹle ati / tabi mimu-pada sipo lati afẹyinti, nitori ni pataki, ISO ti o ṣe igbasilẹ pẹlu eto rẹ jẹ afẹyinti rẹ. "Meje wahala - ọkan si ipilẹ."

Ni ipari, o le ṣẹda pinpin eyikeyi fun awọn iwulo rẹ, kọ si kọnputa USB kan ki o ṣiṣẹ ninu rẹ, ṣe imudojuiwọn rẹ bi o ṣe nilo ati tunkọ si kọnputa USB lẹẹkansii. Gbogbo data ti wa ni ipamọ ninu awọn awọsanma. Iwọ ko nilo lati ṣe aniyan nipa aabo ti eto naa ati ṣe afẹyinti nigbati eto naa, Mo tun ṣe, ti di pataki “sọsọ”.

Awọn ifẹ rẹ, awọn imọran ati awọn asọye jẹ itẹwọgba.

Ninu ibi ipamọ ti o wa ni ọna asopọ ni isalẹ faili README ti alaye wa (ni ede Gẹẹsi) pẹlu apejuwe ti ohun elo kọọkan ati awọn apẹẹrẹ ti lilo, iwe alaye tun wa ni Russian ati itan idagbasoke ti o wa ni ọna asopọ: Boobstrap bata akosile eka.

orisun: linux.org.ru

Fi ọrọìwòye kun