Tsim cov duab bootstrap v1.0


Tsim cov duab bootstrap v1.0

Kuv xav qhia rau koj mloog txog lub moj khaum hu ua boobstrap, sau rau hauv POSIX plhaub, rau kev tsim cov duab khau raj nrog GNU / Linux faib. Lub moj khaum tso cai rau koj mus dhau tag nrho cov txheej txheem hauv tsuas yog peb kauj ruam yooj yim: los ntawm kev xa cov kab ke hauv chroot, tsim cov duab initramfs uas suav nrog cov kab ke chrooted, thiab thaum kawg ib daim duab ISO bootable. boobstrap suav nrog peb cov khoom siv hluav taws xob mkbootstrap, mkinitramfs thiab mkbootisofs feem.

mkbootstrap teeb tsa lub kaw lus nyob rau hauv ib qho chaw sib cais, muaj kev txhawb nqa ib txwm muaj rau CRUX, thiab nyob rau hauv rooj plaub ntawm Arch Linux / Manjaro thiab Debian-raws li kev faib tawm, cov khoom siv thib peb pacstrap, basestrap thiab debootstrap yuav tsum tau siv raws li.

mkinitramfs tsim ib daim duab initramfs, koj tuaj yeem siv cov txheej txheem teeb tsa hauv phau ntawv qhia ua "overlay", compressed siv SquashFS, lossis tom qab booting rau hauv lub kaw lus, ua haujlwm ncaj qha hauv tmpfs. Yog li, piv txwv li, cov lus txib mkinitramfs `mktemp -d` -overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd yuav tsim ib cov ntaub ntawv initrd, suav nrog ob lub overlays nrog "arch- chroot/"system thiab koj "/tsev", compressed siv SquashFS, uas koj tuaj yeem khau raj ntawm PXE rau hauv tmpfs, los yog tsim cov duab ISO bootable nrog qhov initrd.

mkbootisofs tsim lub BIOS / UEFI bootable ISO duab los ntawm cov ntawv teev npe. Cia li muab /boot/vmlinuz thiab /boot/initrd hauv phau ntawv qhia.

boobstrap tsis siv busybox, thiab los tsim ib qho chaw ua hauj lwm initramfs, ib txheej tsawg kawg ntawm cov kev pab cuam yog theej siv ldd, tsim nyog rau khau raj thiab hloov mus rau lub system. Daim ntawv teev cov kev pab cuam luam, zoo li txhua yam, tuaj yeem teeb tsa los ntawm cov ntaub ntawv teeb tsa /etc/boobstrap/boobstrap.conf. Tsis tas li ntawd, koj tuaj yeem nruab ib qho kev faib me me rau hauv ib qho chroot cais /, los ntawm qhov koj tuaj yeem tsim ib puag ncig initramfs tag nrho. Raws li xws li ib tug minimalistic, tab sis nyob rau tib lub sij hawm tag nrho-fledged ib puag ncig, nws yog npaj kom siv lub "crux_gnulinux-embedded" template, uas tom qab xz yuav siv sij hawm ib tug kev sib haum xeeb ntawm 37 MB. busybox, dhau li ntawm nws qhov loj me, 3-5 MB piv rau 30-50 MB ntawm ib puag ncig GNU / Linux tag nrho, tsis muaj qhov zoo dua, yog li siv busybox hauv qhov project tsis zoo li tsis tsim nyog.

Yuav ua li cas sai sai xyuas cov functionality thiab pib? Nruab thiab khiav.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# ua rau nruab# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Koj kuj yuav tsum tau nruab qhov kev vam khom, xws li: cpio, grub, grub-efi, dosfstools, xorriso. Siv squashfs-cov cuab yeej tsis tsim nyog; koj tuaj yeem ua haujlwm hauv tmpfs nrog tus nqi tsim nyog ntawm RAM. Yog tias ib yam dab tsi ploj lawm hauv qhov system, boobstrap yuav qhia qhov no thaum pib.

Txhawm rau ua kom yooj yim ntawm kev tsim cov teeb tsa, boobstrap qhia siv "cov qauv" thiab "systems", lub ntsiab lus yog siv "cov qauv" (bootstrap-templates /) kom nrawm nruab cov tshuab los ntawm cov ntaub ntawv, thiab ncaj qha "systems" (bootstrap- systems/) siv los teeb tsa kev teeb tsa zaum kawg.

Yog li, piv txwv li, khiav cov ntawv boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild yuav nruab qhov tsawg kawg nkaus configuration ntawm CRUX GNU/Linux system thiab txuag nws nyob rau hauv cov ntaub ntawv crux_gnulinux-embedded.rootfs, ces koj khiav boobstrap/bootstrap-systems. /default/crux_gnulinux.bbuild uas yuav thauj cov thawj configuration los ntawm cov ntaub ntawv hais, ua tag nrho cov tsim nyog configuration thiab npaj ib tug bootable ISO. Qhov no yog qhov yooj yim thaum, piv txwv li, ntau lub tshuab siv tib hom kev teeb tsa: txhawm rau kom tsis txhob piav txog tib lub pob khoom txhua lub sijhawm, koj siv ib lub qauv, raws li koj tsim cov duab khau raj ntawm cov tshuab nrog qhov kawg configuration.

Kuv tuaj yeem siv tag nrho cov no nyob qhov twg?

Koj teeb tsa lub kaw lus hauv cov ntaub ntawv ib zaug thiab los ntawm kev khiav nws koj tsim thiab / lossis hloov kho nws. Lub kaw lus khiav hauv tmpfs, uas ua rau nws tseem ceeb pov tseg. Yog tias lub kaw lus tsis ua haujlwm, koj tuaj yeem rov qab mus rau nws lub xeev qub nrog ib qho nias ntawm Reset khawm. Koj tuaj yeem khiav rm -rf / .

Koj tuaj yeem teeb tsa kev teeb tsa ntawm tag nrho koj lub tshuab hauv zos, tsim cov duab, sim lawv hauv lub tshuab virtual lossis cais cov khoom siv, tom qab ntawd xa lawv mus rau lub chaw taws teeb tswj thiab khiav tsuas yog ob lo lus txib kexec -l /vmlinuz β€”initrd=/initrd && kexec -e los hloov kho tag nrho tag nrho cov system, rebooting nws rau hauv tmpfs.

Ib yam li ntawd, koj tuaj yeem hloov pauv txhua lub tshuab, piv txwv li ntawm VDS, ua haujlwm hauv tmpfs, thiab encrypt lub / dev / vda disk thiab siv nws tsuas yog rau cov ntaub ntawv, tsis tas yuav khaws lub operating system rau nws. Tsuas yog "lub ntsiab lus ntawm cov ntaub ntawv xau" hauv qhov no tsuas yog "cov khib nyiab txias" ntawm lub cim xeeb ntawm koj lub tshuab virtual, thiab thaum muaj kev cuam tshuam ntawm lub kaw lus (piv txwv li, los ntawm kev twv tus password ssh lossis qhov tsis zoo hauv Exim), koj tuaj yeem rub tawm ISO tshiab los ntawm "kev tswj hwm vaj huam sib luag" ntawm koj tus neeg muab kev pabcuam, coj VDS rov qab los ua haujlwm, tsis txhob hnov ​​​​qab hloov kho qhov system teeb tsa kom kaw txhua qhov tsis zoo. Qhov no yog sai dua reinstalling, tom qab configuration thiab / los yog rov qab los ntawm ib tug thaub qab, vim hais tias nyob rau hauv essence, lub downloadable ISO nrog koj lub cev yog koj thaub qab. "Xya teeb meem - ib qho pib dua."

Thaum kawg, koj tuaj yeem tsim txhua qhov kev faib tawm rau koj cov kev xav tau, sau rau hauv USB tsav thiab ua haujlwm hauv nws, hloov kho nws raws li xav tau thiab rov sau dua rau USB tsav dua. Tag nrho cov ntaub ntawv khaws cia hauv huab. Koj tsis tas yuav txhawj xeeb txog kev nyab xeeb ntawm lub kaw lus thiab ua qhov thaub qab thaum lub kaw lus, kuv rov hais dua, qhov tseem ceeb dhau los ua "tshem tawm".

Koj qhov kev xav, cov lus qhia thiab cov lus pom zoo txais tos.

Hauv qhov chaw khaws cia ntawm qhov txuas hauv qab no muaj cov ncauj lus kom ntxaws README (ua lus Askiv) nrog cov lus piav qhia ntawm txhua qhov kev siv hluav taws xob thiab cov piv txwv ntawm kev siv, kuj tseem muaj cov ntaub ntawv ntxaws ntxaws hauv Lavxias thiab keeb kwm kev txhim kho muaj nyob ntawm qhov txuas: Boobstrap boot script complex.

Tau qhov twg los: linux.org.ru ua

Ntxiv ib saib