ืืจืฆืื ื ืืืฆืื ืืชืฉืืืช ืืืื ืืกืืจืช ืืฉื boobstrap, ืืืชืืื ืืืขืืคืช POSIX, ืืืฆืืจืช ืชืืื ืืช ืืชืืื ืขื ืืคืฆืืช ืฉื GNU/Linux. ืืืกืืจืช ืืืคืฉืจืช ืื ืืขืืืจ ืืช ืื ืืชืืืื ืืฉืืืฉื ืฉืืืื ืคืฉืืืื ืืืื: ืืคืจืืกืช ืืืขืจืืช ื-chroot, ืืฆืืจืช ืชืืื ืช initramfs ืืืืืืช ืืช ืืืขืจืืช ื-chrooted, ืืืกืืคื ืฉื ืืืจ ืชืืื ืช ISO ืื ืืชื ืช ืืืชืืื. boobstrap ืืืื ืฉืืืฉื ืืื ืขืืจ mkbootstrap, mkinitramfs ื-mkbootisofs ืืืชืืื.
mkbootstrap ืืชืงืื ืืช ืืืขืจืืช ืืกืคืจืืื ื ืคืจืืช, ืืฉ ืชืืืื ืืงืืจืืช ื-CRUX, ืืืืงืจื ืฉื ืืคืฆืืช ืืืืกืกืืช Arch Linux/Manjaro ืืืืืื, ืืฉ ืืืฉืชืืฉ ืืืื ืืฉืืจืืช ืฉื ืฆื ืฉืืืฉื pacstrap, basestrap ื-debootstrap ืืืชืืื.
mkinitramfs ืืืฆืจ ืชืืื ืช initramfs, ืืชื ืืืื ืืืฉืชืืฉ ืืืขืจืืช ืืืืชืงื ืช ืืกืคืจืืื ื"ืฉืืืช ืขื", ืืืืกื ืืืืฆืขืืช SquashFS, ืื ืืืืจ ืืชืืื ืืืขืจืืช, ืืขืืื ืืฉืืจืืช ื-tmpfs. ืื ืืืฉื, ืืคืงืืื mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd ืชืืฆืืจ ืงืืืฅ initrd, ืืืื ืฉืชื ืฉืืืืช ืขื "arch- ืืขืจืืช chroot/" ืื-"/home" ืฉืื, ืืืืกืื ืืืืฆืขืืช SquashFS, ืฉืืืชื ืชืืื ืืืืจ ืืื ืืืชืื ืืืืฆืขืืช PXE ืืชืื tmpfs, ืื ืืืฆืืจ ืชืืื ืช ISO ืื ืืชื ืช ืืืชืืื ืขื initrd ืื.
mkbootisofs ืืืฆืจ ืชืืื ืช ISO ืื ืืชื ืช ืืืชืืื BIOS/UEFI ืืืกืคืจืืื ืฉืฆืืื ื. ืคืฉืื ืฉืื /boot/vmlinuz ื /boot/initrd ืืกืคืจืืื.
boobstrap ืื ืืฉืชืืฉ ื-busybox, ืืืื ืืืฆืืจ ืกืืืืช initramfs ืขืืืืช, ืงืืืฆื ืืื ืืืืืช ืฉื ืชืืื ืืืช ืืืขืชืงืช ืืืืฆืขืืช ldd, ืื ืืืฆื ืืืชืืื ืืืืขืืจ ืืืขืจืืช. ืืช ืจืฉืืืช ืืชืืื ืืืช ืืืขืชืงื, ืืื ืื ืืืจ ืืืจ, ื ืืชื ืืืืืืจ ืืจื ืงืืืฅ ืืชืฆืืจื /etc/boobstrap/boobstrap.conf. ืืื ืื, ืืชื ืืืื ืืืชืงืื ืื ืืคืฆื ืืื ืืืืืกืืืช ืืชืื chroot/ ื ืคืจื, ืฉืืื ื ืชืืื ืืืฆืืจ ืกืืืืช initramfs ืืืื. ืืกืืืื ืืื ืืืืืกืืืช, ืื ืื ืืื ืืช ืืืื, ืืืฆืข ืืืฉืชืืฉ ืืชืื ืืช "crux_gnulinux-embedded", ืฉืืืจื xz ืชืืคืกืช ืคืฉืจื ืฉื 37 ืืื-ืืืื. busybox, ืืืื ืืืืื ืฉืื, 3-5 ืืื-ืืืื ืืขืืืช 30-50 ืืื-ืืืื ืฉื ืกืืืืช ืื ื/ืืื ืืงืก ืืืื, ืืืจ ืื ืืฆืืข ืืชืจืื ืืช ืืืฉืื, ืื ืฉืืฉืืืืฉ ื-busybox ืืคืจืืืงื ืื ื ืจืื ืืชืืื.
ืืืฆื ืืืืืง ืืืืืจืืช ืืช ืืคืื ืงืฆืืื ืืืืช ืืืืชืืื? ืืชืงื ืืืคืขื.
# ืฉืืืื git https://github.com/sp00f1ng/boobstrap.git
# ืจืฆืืขืช ืฆืืฆืื ืืชืงืืืืืจ
# ืืฆืข ืืชืงื ื# boobstrap/tests/crux_gnulinux-download-and-build
ืืชื ืื ืฆืจืื ืืืชืงืื ืชืืืช, ืืืืืจ: cpio, grub, grub-efi, dosfstools, xorriso. ืืื ืฆืืจื ืืืฉืชืืฉ ืืืื squashfs; ืืชื ืืืื ืืขืืื ื-tmpfs ืขื ืืืืืช ืืืชืืืื ืฉื ืืืืจืื RAM. ืื ืืฉืื ืืกืจ ืืืขืจืืช, boobstrap ืืืืื ืขื ืื ืขื ืืืคืขืื.
ืืื ืืคืฉื ืืช ืืฆืืจืช ืืชืฆืืจืืช, boobstrap ืืฆืืข ืืืฉืชืืฉ ื"ืชืื ืืืช" ื"ืืขืจืืืช", ืืืืืช ืฉืืื ืืื ืืืฉืชืืฉ ื"ืชืื ืืืช" (bootstrap-templates/) ืืื ืืืชืงืื ืืืืืจืืช ืืขืจืืืช ืืงืืืฅ, ืืืืืคื ืืฉืืจ "ืืขืจืืืช" (bootstrap- systems/) ืืืฉืืฉืื ืืืืืจืช ืชืฆืืจืืช ืกืืคืืืช.
ืื ืืืฉื, ืืคืขืืช ืืกืงืจืืคื boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild ืชืชืงืื ืืช ืืชืฆืืจื ืืืื ืืืืืช ืฉื ืืขืจืืช CRUX GNU/Linux ืืชืฉืืืจ ืืืชื ืืงืืืฅ crux_gnulinux-embedded.rootfs, ืืื ืชืคืขืื ืืช boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild ืืฉืจ ืืืขื ืืช ืืชืฆืืจื ืืจืืฉืืช ืืืงืืืฅ ืฉืืืืืจ, ืืืฆืข ืืช ืื ืืชืฆืืจื ืื ืืจืฉืช ืืืืื ISO ืฉื ืืชื ืืืชืืื. ืื ื ืื, ืืืฉื, ืืืฉืจ ืืขืจืืืช ืจืืืช ืืฉืชืืฉืืช ืืืืชื ืกืื ืฉื ืชืฆืืจื: ืืื ืื ืืชืืจ ืืช ืืืชื ืกื ืืืืืืช ืืื ืคืขื, ืืชื ืืฉืชืืฉ ืืชืื ืืช ืืืช, ืฉืขื ืืกืืกื ืืชื ืืืฆืจ ืชืืื ืืช ืืชืืื ืฉื ืืขืจืืืช ืขื ืืชืฆืืจื ืืกืืคืืช.
ืืืคื ืื ื ืืืื ืืืฉืชืืฉ ืืื ืื?
ืืชื ืืืืืจ ืืช ืืืขืจืืช ืืงืืืฅ ืคืขื ืืืช ืืขื ืืื ืืคืขืืชื ืืชื ืืื ื ื/ืื ืืขืืื ืืืชื. ืืืขืจืืช ืคืืขืืช ื-tmpfs, ืื ืฉืืืคื ืืืชื ืืืขืฉื ืื ืคืขืืืช. ืื ืืืขืจืืช ื ืืฉืืช, ืชืืื ืืืืืจ ืืืฆืื ืืืงืืจื ืืืืืฆื ืืืช ืขื ืืคืชืืจ ืืืืคืืก. ืืชื ืืืื ืืืจืืฅ ืืืืื ืืช rm -rf /.
ืืชื ืืืื ืืืืืืจ ืืช ืืชืฆืืจืืช ืฉื ืื ืืืขืจืืืช ืฉืื ืืืืคื ืืงืืื, ืืืฆืืจ ืชืืื ืืช, ืืืืืง ืืืชื ืืืืื ื ืืืจืืืืืืช ืื ืืืืืจื ื ืคืจืืช, ืืื ืืืขืืืช ืืืชื ืืฉืจืช ืืจืืืง ืืืืจืืฅ ืจืง ืฉืชื ืคืงืืืืช kexec -l /vmlinuz โinitrd=/initrd && kexec -e ืืื ืืขืืื ืืช ืื ืืืขืจืืช ืืืื, ืืืชืื ืืืชื ื-tmpfs.
ืืืืชื ืืืคื, ื ืืชื ืืืขืืืจ ืืช ืื ืืืขืจืืืช, ืืืฉื ื-VDS, ืืขืืืื ื-tmpfs, ืืืืฆืคืื ืืช ืืืืกืง /dev/vda ืืืืฉืชืืฉ ืื ืจืง ืขืืืจ ื ืชืื ืื, ืืื ืฆืืจื ืืืืืืง ืื ืืช ืืขืจืืช ืืืคืขืื. "ื ืงืืืช ืืืืคืช ืืืืืข" ืืืืืื ืืืงืจื ืื ืชืืื ืจืง โโ"ืืืืืื ืืงืจื" ืฉื ืืืืืจืื ืฉื ืืืืื ื ืืืืจืืืืืืช ืฉืื, ืืืืงืจื ืฉื ืคืืืขื ืืืขืจืืช (ืืืืืื, ืขื ืืื ื ืืืืฉ ืกืืกืืช ssh ืื ืคืืืขืืช ื Exim), ืืชื ืืืื ืืืืจืื ISO ืืืฉ ืืจื "ืืื ืืืงืจื" ืฉื ืืกืคืง ืฉืื, ืืื ืืืืืืจ ืืช ื-VDS ืืคืขืืื, ืืืื ืืฉืืื ืืขืจืื ืืช ืชืฆืืจืช ืืืขืจืืช ืืื ืืกืืืจ ืืช ืื ืืคืืืขืืืืช. ืื ืืืืจ ืืืชืจ ืืืชืงื ื ืืืืฉ, ืชืฆืืจื ืฉืืืืจ ืืื ื/ืื ืฉืืืืจ ืืืืืื, ืืืืืื ืฉืืขืฆื, ื-ISO ืื ืืชื ืืืืจืื ืขื ืืืขืจืืช ืฉืื ืืื ืืืืืื ืฉืื. "ืฉืืข ืฆืจืืช - ืืืคืืก ืืืช".
ืืกืืคื ืฉื ืืืจ, ืชืืืื ืืืฆืืจ ืื ืืคืฆื ืืฆืจืืื ืฉืืื, ืืืชืื ืืืชื ืืืื ื USB ืืืขืืื ืื, ืืขืืื ืืืชื ืืคื ืืฆืืจื ืืืฉืืชื ืืืชื ืฉืื ืืืื ื ื-USB. ืื ืื ืชืื ืื ืืืืืกื ืื ืืขื ื ืื. ืืชื ืืืจ ืื ืฆืจืื ืืืืื ืืืืืืืช ืืืขืจืืช ืืืืฆืข ืืืืื ืืืฉืจ ืืืขืจืืช, ืื ื ืืืืจ, ืืคืื ืืขืฆื ื"ืื ืคืขืืืช".
ืจืฆืื ืืชืืื, ืืืฆืขืืช ืืืืขืจืืช ืฉืืื ืืชืงืืื ืืืจืื.
ืืืืืจ ืืงืืฉืืจ ืืืื ืืฉ ืงืืืฅ README ืืคืืจื (ืืื ืืืืช) ืขื ืชืืืืจ ืฉื ืื ืืื ืืืืืืืืช ืืฉืืืืฉ, ืืฉ ืื ืชืืขืื ืืคืืจื ืืจืืกืืช ืืืืกืืืจืืืช ืคืืชืื ืืืื ื ืืงืืฉืืจ: ืืชืื ืกืงืจืืคื ืืืชืืื ืฉื boobstrap.
ืืงืืจ: linux.org.ru