bootstrap v1.0 ပုံများကို ဖန်တီးခြင်း။


bootstrap v1.0 ပုံများကို ဖန်တီးခြင်း။

GNU/Linux ဖြန့်ဝေမှုများဖြင့် boot ပုံများဖန်တီးရန်အတွက် POSIX shell တွင်ရေးထားသော boobstrap ဟုခေါ်သော မူဘောင်တစ်ခုကို သင့်အာရုံကို တင်ပြလိုပါသည်။ framework သည် သင့်အား ရိုးရှင်းသော အဆင့်သုံးဆင့်ဖြင့် လုပ်ဆောင်နိုင်သည်- chroot တစ်ခုတွင် system ကိုအသုံးပြုခြင်းမှ၊ chrooted system ပါ၀င်သော initramfs ပုံတစ်ခုဖန်တီးခြင်းနှင့် နောက်ဆုံးတွင် bootable ISO ပုံတစ်ခုဖန်တီးခြင်းမှဖြစ်သည်။ boobstrap တွင် mkbootstrap၊ mkinitramfs နှင့် mkbootisofs အသီးသီးပါဝင်သည်။

mkbootstrap သည် သီးခြား directory တစ်ခုတွင် စနစ်အား ထည့်သွင်းသည်၊ CRUX အတွက် မူရင်း ပံ့ပိုးမှု ရှိပြီး Arch Linux / Manjaro နှင့် Debian-based ဖြန့်ချီမှုများတွင်၊ ပြင်ပမှ utilities pacstrap၊ basestrap နှင့် debootstrap တို့ကို အသီးသီး အသုံးပြုရပါမည်။

mkinitramfs သည် initramfs ပုံတစ်ပုံကို ဖန်တီးသည်၊ သင်သည် "ထပ်ဆင့်လွှာ" အဖြစ် လမ်းညွှန်တွင် ထည့်သွင်းထားသော စနစ်အား SquashFS အသုံးပြု၍ ဖိသိပ်ထားနိုင်သည်၊ သို့မဟုတ် စနစ်ထဲသို့ စတင်ပြီးနောက်၊ tmpfs တွင် တိုက်ရိုက်အလုပ်လုပ်နိုင်သည်။ ဥပမာအားဖြင့်၊ command mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd သည် "arch- ထပ်ဆင့်နှစ်ခုအပါအဝင် initrd ဖိုင်ကို ဖန်တီးလိမ့်မည်၊ chroot/" စနစ် နှင့် သင်၏ "/home" ကို SquashFS ဖြင့် ချုံ့ထားပြီး၊ ထို့နောက် PXE မှတဆင့် tmpfs သို့ စတင်နိုင်သည်၊ သို့မဟုတ် ဤ initrd ဖြင့် bootable ISO ပုံတစ်ခု ဖန်တီးနိုင်သည်။

mkbootisofs သည် သတ်မှတ်ထားသော directory မှ BIOS/UEFI bootable ISO image ကို ဖန်တီးသည်။ /boot/vmlinuz နှင့် /boot/initrd ကို directory တွင်သာထည့်ပါ။

boobstrap သည် busybox ကိုအသုံးမပြုပါ၊ နှင့်အလုပ်လုပ်သော initramfs ပတ်၀န်းကျင်ကိုဖန်တီးရန်၊ ပရိုဂရမ်အနည်းငယ်ကို ldd ကိုအသုံးပြု၍ ကူးယူထားပြီး၊ boot လုပ်ပြီးစနစ်သို့ပြောင်းရန် လိုအပ်ပါသည်။ အခြားအရာအားလုံးကဲ့သို့ ကော်ပီကူးရန် ပရိုဂရမ်များစာရင်းကို configuration file /etc/boobstrap/boobstrap.conf မှတဆင့် configure လုပ်နိုင်ပါသည်။ ထို့အပြင် သင်သည် ပြည့်စုံသော initramfs ပတ်၀န်းကျင်ကို ဖန်တီးနိုင်သည့် သီးခြား chroot/ တွင် အနည်းငယ်မျှသာ ဖြန့်ဖြူးမှုကို ထည့်သွင်းနိုင်သည်။ အနည်းငယ်မျှသာသာဖြစ်သော်လည်း၊ တစ်ချိန်တည်းတွင် ပြည့်စုံသောပတ်ဝန်းကျင်တစ်ခုအနေဖြင့် xz သည် 37 MB အပေးအယူလုပ်ပြီးနောက်တွင် "crux_gnulinux-embedded" ပုံစံကို အသုံးပြုရန် အဆိုပြုထားသည်။ busybox ၏အရွယ်အစားအပြင်၊ ပြည့်စုံသော GNU/Linux ပတ်၀န်းကျင်၏ 3-5 MB နှင့် 30-50 MB သည် မည်သည့်အားသာချက်များကိုမျှ မပေးသောကြောင့်၊ ပရောဂျက်တစ်ခုတွင် busybox ကိုအသုံးပြုခြင်းသည် သင့်လျော်ပုံမပေါ်ပါ။

လုပ်ဆောင်ချက်ကို လျင်မြန်စွာ စစ်ဆေးပြီး စတင်ရန် မည်သို့လုပ်ဆောင်မည်နည်း။ Install လုပ်ပြီး run လိုက်ပါ။

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# install# boobstrap/tests/crux_gnulinux-download-and-build လုပ်ပါ
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

မှီခိုမှုဖြစ်သည့် cpio၊ grub၊ grub-efi၊ dosfstools၊ xorriso တို့ကိုလည်း ထည့်သွင်းရန် လိုအပ်ပါသည်။ squashfs-tools ကိုအသုံးပြုရန်မလိုအပ်ပါ၊ သင့်လျော်သော RAM ပမာဏဖြင့် tmpfs တွင် သင်အလုပ်လုပ်နိုင်သည်။ စနစ်တွင် တစ်စုံတစ်ရာ ပျောက်ဆုံးနေပါက၊ boobstrap သည် ၎င်းကို စတင်ချိန်တွင် အစီရင်ခံပါမည်။

configurations များဖန်တီးခြင်းကို ရိုးရှင်းစေရန် boobstrap သည် "templates" နှင့် "systems" ကိုအသုံးပြုရန် အကြံပြုထားပြီး ယင်း၏အနှစ်သာရမှာ "templates" (bootstrap-templates/) ကိုအသုံးပြုရန် အကြံပြုထားပြီး ဖိုင်တစ်ခုမှ စနစ်များကို လျင်မြန်စွာထည့်သွင်းရန်နှင့် "systems" (bootstrap- systems/) နောက်ဆုံးဖွဲ့စည်းပုံများကို သတ်မှတ်ရန် အသုံးပြုသည်။

ထို့ကြောင့် ဥပမာအားဖြင့်၊ script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild ကိုအသုံးပြုခြင်းသည် CRUX GNU/Linux စနစ်၏ အနိမ့်ဆုံးဖွဲ့စည်းပုံကို ထည့်သွင်းပြီး crux_gnulinux-embedded.rootfs ဖိုင်တွင် သိမ်းဆည်းမည်၊ ထို့နောက် သင် boobstrap/bootstrap-systems ကို run ပါမည်။ ဖော်ပြထားသောဖိုင်မှ ပင်မဖွဲ့စည်းပုံကို တင်မည့် /default/crux_gnulinux.bbuild၊ လိုအပ်သောဖွဲ့စည်းမှုအားလုံးကိုလုပ်ဆောင်ပြီး bootable ISO ကိုပြင်ဆင်ပါ။ ဥပမာအားဖြင့်၊ စနစ်များစွာသည် တူညီသောဖွဲ့စည်းပုံပုံစံကိုအသုံးပြုသည့်အခါ အဆင်ပြေသည်- တစ်ကြိမ်စီတွင် တူညီသောပက်ကေ့ဂျ်အစုအဝေးကို မဖော်ပြစေရန်အတွက်၊ သင်သည် နောက်ဆုံးဖွဲ့စည်းမှုစနစ်၏ boot ပုံများကိုဖန်တီးသည့်အပေါ်အခြေခံ၍ နမူနာပုံစံတစ်ခုကို အသုံးပြုပါ။

ဒါတွေအားလုံး ဘယ်မှာသုံးလို့ရမလဲ။

သင်သည် ဖိုင်တစ်ခုတွင် စနစ်တစ်ခုကို တစ်ကြိမ်တည်းသတ်မှတ်ပြီး ၎င်းကို run ခြင်းဖြင့် သင်သည် ၎င်းကို တည်ဆောက်ပြီး/သို့မဟုတ် အပ်ဒိတ်လုပ်ပါ။ စနစ်သည် tmpfs ဖြင့်အလုပ်လုပ်သည်၊ ၎င်းကိုမရှိမဖြစ်လိုအပ်သည်။ စနစ်ပျက်သွားပါက၊ Reset ခလုတ်ကို တစ်ချက်နှိပ်ရုံဖြင့် ၎င်း၏ မူလအခြေအနေသို့ ပြန်သွားနိုင်ပါသည်။ သင်သည် rm -rf / ကို အန္တရာယ်ကင်းစွာ လုပ်ဆောင်နိုင်သည်။

သင့်စနစ်အားလုံးကို စက်တွင်းဖွဲ့စည်းပုံပုံစံသတ်မှတ်ခြင်း၊ ပုံများဖန်တီးခြင်း၊ ၎င်းတို့ကို virtual machine သို့မဟုတ် သီးခြား hardware တွင်စမ်းသပ်နိုင်ပြီး၊ ထို့နောက် ၎င်းတို့ကို အဝေးထိန်းဆာဗာသို့ အပ်လုဒ်လုပ်ကာ kexec -l /vmlinuz —initrd=/initrd && kexec -e အမိန့်နှစ်ခုသာ လုပ်ဆောင်နိုင်သည်။ စနစ်တစ်ခုလုံးကို အပ်ဒိတ်လုပ်ရန်၊ ၎င်းကို tmpfs သို့ ပြန်လည်စတင်ပါ။

အလားတူပင်၊ ဥပမာအားဖြင့်၊ VDS တွင်၊ tmpfs တွင်အလုပ်လုပ်ရန်၊ စနစ်အားလုံးကိုလွှဲပြောင်းနိုင်ပြီး /dev/vda disk ကို ကုဒ်ဝှက်ကာ ၎င်းတွင် operating system ကိုထားရှိရန်မလိုအပ်ဘဲ ၎င်းကိုဒေတာအတွက်သာအသုံးပြုနိုင်သည်။ ဤကိစ္စတွင် တစ်ခုတည်းသော “အချက်အလက်ပေါက်ကြားမှု” သည် သင့် virtual machine ၏ မမ်မိုရီ၏ “အအေးမိသောအမှိုက်ပုံ” သာဖြစ်မည်ဖြစ်ပြီး၊ စနစ်၏အပေးအယူတစ်ခုဖြစ်လာသောအခါ (ဥပမာ၊ ssh စကားဝှက်ကို ခန့်မှန်းခြင်းဖြင့် သို့မဟုတ် အားနည်းချက်တစ်ခုဖြစ်သည်။ Exim) အားနည်းချက်အားလုံးကိုပိတ်ရန် စနစ်ဖွဲ့စည်းပုံကို တည်းဖြတ်ရန် မမေ့ဘဲ VDS ကို ပြန်လည်လည်ပတ်စေရန်အတွက် သင်၏ဝန်ဆောင်မှုပေးသူ၏ "ထိန်းချုပ်မှုအကန့်" မှတစ်ဆင့် ISO အသစ်တစ်ခုကို ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ ၎င်းသည် ပြန်လည်ထည့်သွင်းခြင်း၊ နောက်ဆက်တွဲဖွဲ့စည်းပုံနှင့်/သို့မဟုတ် အရန်တစ်ခုမှ ပြန်လည်ရယူခြင်းထက် ပိုမိုမြန်ဆန်ပါသည်၊ အကြောင်းမှာ အနှစ်သာရအားဖြင့် သင့်စနစ်ဖြင့် ဒေါင်းလုဒ်လုပ်နိုင်သော ISO သည် သင်၏အရန်ကူးယူခြင်းဖြစ်ပါသည်။ "ဒုက္ခခုနစ်ပါး - တစ်ကြိမ်ပြန်လည်သတ်မှတ်ခြင်း။"

အဆုံးတွင်၊ သင်သည် သင်၏လိုအပ်ချက်အတွက် မည်သည့်ဖြန့်ဖြူးမှုကို ဖန်တီးနိုင်သည်၊ ၎င်းကို USB ဒရိုက်တစ်ခုတွင် ရေးပြီး ၎င်းတွင် လုပ်ဆောင်နိုင်သည်၊ ၎င်းကို လိုအပ်သလို အပ်ဒိတ်လုပ်ပြီး USB ဒရိုက်သို့ ထပ်မံရေးသားနိုင်သည်။ ဒေတာအားလုံးကို cloud ထဲတွင် သိမ်းဆည်းထားသည်။ စနစ်၏ဘေးကင်းမှုနှင့် ပတ်သက်၍ စိတ်ပူစရာမလိုတော့ဘဲ၊ စနစ်သည် မရှိမဖြစ်လိုအပ်သော "တစ်ခါသုံး" ဖြစ်လာသောအခါတွင် အရန်ကူးယူရန် မလိုအပ်တော့ပါ။

သင်၏ဆန္ဒများ၊ အကြံပြုချက်များနှင့်မှတ်ချက်များကိုကြိုဆိုပါသည်။

အောက်ဖော်ပြပါလင့်ခ်ရှိ သိုလှောင်ရုံတွင် အသုံးဝင်မှုတစ်ခုစီ၏ ဖော်ပြချက်နှင့် အသုံးပြုမှုနမူနာများပါရှိသော အသေးစိတ် README ဖိုင် (အင်္ဂလိပ်လို) ပါရှိပြီး၊ ရုရှားဘာသာစကားဖြင့် အသေးစိတ်စာရွက်စာတမ်းများနှင့် ဖွံ့ဖြိုးတိုးတက်မှုမှတ်တမ်းကိုလည်း လင့်ခ်တွင်ရရှိနိုင်ပါသည်- Boobstrap boot script complex.

source: linux.org.ru

မှတ်ချက် Add