Kreye imaj bootstrap v1.0


Kreye imaj bootstrap v1.0

Mwen ta renmen prezante nan atansyon w yon kad ki rele boobstrap, ekri nan koki POSIX la, pou kreye imaj bòt ak distribisyon GNU/Linux. Fondasyon an pèmèt ou ale atravè tout pwosesis la nan jis twa etap senp: soti nan deplwaye sistèm nan nan yon chroot, kreye yon imaj initramfs ki gen ladan sistèm nan chrooted, epi finalman yon imaj ISO demaraj. boobstrap gen ladan twa sèvis piblik mkbootstrap, mkinitramfs ak mkbootisofs respektivman.

mkbootstrap enstale sistèm lan nan yon anyè separe, gen sipò natif natal pou CRUX, ak nan ka Arch Linux / Manjaro ak distribisyon ki baze sou Debian, yo dwe itilize sèvis piblik twazyèm pati pacstrap, basestrap ak debootstrap respektivman.

mkinitramfs kreye yon imaj initramfs, ou ka itilize sistèm nan enstale nan anyè a kòm yon "superposition", konprese lè l sèvi avèk SquashFS, oswa apre demaraj nan sistèm nan, travay dirèkteman nan tmpfs. Se konsa, pou egzanp, lòd la mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd pral kreye yon fichye initrd, ki gen ladan de superpositions ak "arch- Chroot/" sistèm ak "/home" ou a, konprese lè l sèvi avèk SquashFS, ke ou ka Lè sa a, demare atravè PXE nan tmpfs, oswa kreye yon imaj ISO demaraj ak initrd sa a.

mkbootisofs kreye yon imaj BIOS/UEFI demaraj ISO soti nan anyè espesifye a. Jis mete /boot/vmlinuz ak /boot/initrd nan anyè a.

boobstrap pa sèvi ak busybox, epi pou kreye yon anviwònman initramfs k ap travay, yo kopye yon seri pwogram minim lè l sèvi avèk ldd, ki nesesè pou demare epi chanje nan sistèm nan. Lis pwogram pou kopye, tankou tout lòt bagay, ka konfigirasyon atravè fichye konfigirasyon /etc/boobstrap/boobstrap.conf. Epitou, ou ka enstale nenpòt distribisyon minimalist nan yon chroot separe /, ki soti nan ki ou ka Lè sa a, kreye yon anviwònman initramfs plen véritable. Kòm yon anviwònman minimalist, men an menm tan, li pwopoze pou itilize modèl "crux_gnulinux-embedded", ki apre xz pran yon konpwomi nan 37 MB. busybox, san konte gwosè li, 3-5 MB kont 30-50 MB nan yon anviwònman GNU/Linux plen véritable, pa ofri okenn avantaj ankò, kidonk lè l sèvi avèk busybox nan yon pwojè pa sanble apwopriye.

Ki jan yo byen vit tcheke fonksyonalite a epi kòmanse? Enstale epi kouri.

# git klon https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# fè enstale # boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Ou bezwen tou enstale depandans, sètadi: cpio, grub, grub-efi, dosfstools, xorriso. Sèvi ak squashfs-tools pa nesesè; ou ka travay nan tmpfs ak kantite lajan ki apwopriye nan RAM. Si yon bagay ki manke nan sistèm nan, boobstrap pral rapòte sa a lè demaraj.

Pou senplifye kreyasyon konfigirasyon yo, boobstrap sijere itilize "modèl" ak "sistèm", sans sa a se sèvi ak "modèl" (bootstrap-templates/) pou byen vit enstale sistèm ki soti nan yon dosye, ak dirèkteman "sistèm" (bootstrap- sistèm/) yo itilize pou mete konfigirasyon final yo.

Se konsa, pou egzanp, kouri nan script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild pral enstale konfigirasyon minimòm sistèm CRUX GNU/Linux la epi sove li nan dosye crux_gnulinux-embedded.rootfs, Lè sa a, ou kouri boobstrap/bootstrap-systems. /default/crux_gnulinux.bbuild ki pral chaje konfigirasyon prensipal la nan dosye mansyone a, fè tout konfigirasyon ki nesesè yo epi prepare yon ISO demaraj. Sa a se pratik lè, pou egzanp, anpil sistèm itilize menm kalite konfigirasyon an: yo nan lòd yo pa dekri menm seri pakè a chak fwa, ou itilize yon modèl, ki baze sou ki ou kreye imaj bòt nan sistèm ak konfigirasyon final la.

Ki kote mwen ka itilize tout bagay sa yo?

Ou konfigirasyon sistèm nan nan yon fichye yon fwa epi lè w kouri li ou bati ak / oswa mete ajou li. Sistèm nan kouri nan tmpfs, ki fè li esansyèlman jetab. Si sistèm nan echwe, ou ka retounen nan eta orijinal li ak yon sèl klike sou bouton an Reyajiste. Ou ka san danje kouri rm -rf /.

Ou ka konfigirasyon tout sistèm ou yo lokalman, kreye imaj, teste yo nan yon machin vityèl oswa pyès ki nan konpitè separe, epi telechaje yo sou yon sèvè aleka epi kouri jis de kòmand kexec -l /vmlinuz —initrd=/initrd && kexec -e. pou mete ajou tout sistèm nan, rdemare li nan tmpfs.

Menm jan an tou, ou ka transfere tout sistèm, pa egzanp sou VDS, pou yo travay nan tmpfs, epi ankripte /dev/vda disk la epi sèvi ak li sèlman pou done, san yo pa bezwen kenbe sistèm operasyon an sou li. Sèl "pwen flit enfòmasyon" nan ka sa a pral sèlman "pil fatra frèt la" nan memwa nan machin vityèl ou a, ak nan evènman an nan yon konpwomi nan sistèm nan (pa egzanp, pa devine modpas la ssh oswa yon vilnerabilite nan Exim), ou ka telechaje yon nouvo ISO atravè "panèl kontwòl" founisè w la, pou pote VDS la tounen nan operasyon, san bliye modifye konfigirasyon sistèm lan pou fèmen tout frajilite yo. Sa a se pi vit pase re-enstale, konfigirasyon ki vin apre ak / oswa restore soti nan yon backup, paske nan sans, ISO a telechaje ak sistèm ou a se backup ou. "Sèt pwoblèm - yon sèl reset."

Nan fen a, ou ka kreye nenpòt distribisyon pou bezwen ou yo, ekri li nan yon kondwi USB ak travay nan li, mete ajou li jan sa nesesè ak reekri li nan kondwi a USB ankò. Tout done yo estoke nan nwaj yo. Ou pa bezwen enkyete sou sekirite sistèm lan ankò epi fè yon backup lè sistèm nan, mwen repete, esansyèlman vin "jetab".

Swè ou, sijesyon ak kòmantè yo akeyi.

Nan depo a nan lyen ki anba a gen yon dosye detaye README (an angle) ak yon deskripsyon chak sèvis piblik ak egzanp itilizasyon, gen tou dokiman detaye an Ris ak yon istwa devlopman ki disponib nan lyen an: Boobstrap bòt script konplèks.

Sous: linux.org.ru

Add nouvo kòmantè