ืืืจื ืจืง ืืืืฉ ืืืืจ ืคืืชืื ืืืื, ืฉืืืจืจ boobstrap v1.2 - ืกื ืืืื ืืืขืืคืช POSIX ืืืฆืืจืช ืชืืื ืืช ืืชืืื ืืืื ื ืื.
Boobstrap ืืืคืฉืจ ืื ืืืฆืข ืคืงืืื ืืืช ืืืื:
- ืฆืืจ ืชืืื ืช initramfs, ืืืื ืื ืืคืฆื ืฉื GNU/Linux ืื.
- ืฆืืจ ืชืืื ืืช ISO ืื ืืชื ืืช ืืืชืืื ืขื ืื ืืคืฆืช GNU/Linux.
- ืฆืืจ ืืื ื ื USB, HDD, SSD ืื ืืชื ืื ืืืชืืื ืขื ืื ืืคืฆืช GNU/Linux.
ืืืืืจืืช ืืื ืฉืืืจื ืืขืื ืช GNU/Linux ืืคืขืื ืืืืืืื ื-tmpfs ืืืืจ, ืื ืืืืฆืขืืช ืชืืื ืืช Overlay FS ื- SquashFS, ืืืืืจืชืื. ืืชื ืืชืงืื ืื ืืคืฆืช GNU/Linux ืืกืคืจืืื, ืืืฆืข ืืช ืื ืืืืืจืืช ืืืจืืฉืืช (ืืคืฉืจ ืืกืคืจืืื ื ืคืจืืช), ืืืืืจ ืืื ืืชื ืืืฆืจ ืืชืงื ืืชืืื ืขื ืคืงืืื ืืืช ืืืื, ืืื ืื ืื ืชืืื ืช ISO, USB, HDD, ืืื ื SSD, ืื ืืชื ืืืื ืืืฆืืจ ืชืืื ื ืจืืฉืื ืืช ืขื ืืขืจืืช. ืืืขืจืืช ืชืืื ืชืืื ืืืืชื ืืฆื ืืืืงืจื ืฉื ืชืงืื ื ืืชื ืืืืืจ ืืืฆืื ืืืงืืจื ืืืืืฆื ืขื ืืคืชืืจ ืืืคืืก ืืื. ืืื ืืจืฆืื ื ืืืขืืืจ ืืช ืืืขืจืืช ืืืืจื ืืืจ, ืื ืืืฆืืจ ืืขืจืืช ืืืืื ืงืืื? ืืืืกืืจืืค ืืขืฉื ืืช ืื.
ืืื ืืฉืื ืืืื ืืืจืืืืื:
- ื ืืกืคื ืชืืืื ืขืืืจ ืืืขื ืืืชืืื syslinux, ืื ืืกืฃ ื-grub2 ืฉืืืจ ืงืืื. ืืขืช ืืชื ืืืื ืืืืืจ ืืืฉืชืืฉ ื-grub2, syslinux ืื ืฉื ืืื ืืขืช ืืฆืืจืช ืืชืงื ืืชืืื ืื ืชืืื ืช ISO ืขื ืืคืฉืจืืืืช --legacy-boot syslinux ื--efi grub2 ืืืชืืื, ืืชืืื ืื ืืืืืจ ืืืืื ืืฆืืื ืืืืจืื ืชืชืืื ื-ISO ืชืืื ื.
- ื ืืกืคื ืืคืฉืจืืช --bootable, ืืฉืจ ืืืคืืช ืื ืืืฉืืจ ืืกืืื ืืืชืืื. ืืื ืืืฆืืจ ืชืืื ืืช ISO, ืืฉ ืืืฉืชืืฉ ืืืคืฉืจืืช --iso-9660.
- ื ืืกืคื ืืคืฉืจืืืืช ืืชืืื ืืืื boobs.use-shmfs ืืื ืืืขืชืืง ืืช ืืชืืื ืฉื ืื ืฉืืืืช ืืขื ื-tmpfs, boobs.use-overlayfs ืืืชืืื ืืืืฆืขืืช Overlay FS, boobs.search-rootfs ืืืืืจืช ืืงืืจ ืขื ืืืขืจืืช, boobs.copy-to-ram ืืืขืชืืง ืืช ืืืขืจืืช ืืืืืจืื ืืืืืจ ืืื ืืืืืช ืืช ืืืืฉืืจ.
- ืืชืืืช ืืืืืื ืื ืืจืฉืช ืืื ืฉ-boobstrap ืืขืืื ืืื cpio. ืฉืืจ ืืชืืืช ืื ืืืคืฆืืื ืืืืช: grub2, syslinux - ื ืืจืฉ ืืืฆืืจืช ืืืื ื ืืชื ืช ืืืชืืื, cdrkit ืื xorriso ืืืืืจื - ืืืฆืืจืช ISO, squashfs-tools ืืืฆืืจืช SquashFS, ืืื ืฉืื ืืืจ ืื ืืื ืข ืืื ืืืฉืชืืฉ ืืืคืฉืจืืช -cpio ืืืงืื - squashfs ืืื ืืืจืื ืืช ืืืคืฆื ืฉืื ืืืจืืืื. ื-busybox ืืฉืืฉ ืจืง ืื ืืื ืืืชืงื, ืื ืื ืื, ืื ืืื ืืฉืืจืืช ืื ืืืฆืื ืืืืขืจืืช ืฉืื ืืืขืชืงื. ืืคืืื, ืืืืื ืฉ-boobstrap ืืขืืื ืืืขื ืืื ืืงืื.
ืืืืืื, ืืคืงืืื ืืืื ืชืืฆืืจ ืชืืื ืช initrd ืืืืืืช gentoo-chroot/ืืขืจืืช ืืจืืื ืืชืืื ืช SquashFS, ืฉืชืืืื ืืืฆืืื ืืืืจ ืฉื-initrd ืขืฆืื ืืืืขื. ืืจืฉื ืื ืืืืืืจ ืืื ืฉืืื ืืืฉืชืืฉ ื-Overlay FS ืืฉืืืื ืขื SquashFS, ืขืืืื ืืขืืืจ ืืช ืืคืฉืจืืช ืืงืจื ื boobs.use-overlayfs, ืืืจืช ืืืขืจืืช ืชืคืจืง ื-tmpfs. ื ืืชื ืืืฆืข ืืช ืื ืืืืืจืืช ืื ืืกืคืืช ืืกืคืจืืื ื ืคืจืืช, ืืืฉื gentoo-settings/
# mkdir initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs > initrd
ืชืืื ืช initrd ืขื ืืขืจืืช ืืคื ืื ื ืืื ืืืฉืจ ืืชื ืฆืจืื ืืคืจืืก ืืขืจืืช ืืืืืจืืช, ืืืฉื, ืืืืฆืขืืช PXE, ืื ืืืขืืจ ืืขืจืืช ืืขืื ื-initrd ืืืืฆืขืืช ืืคืงืืื kexec -l /boot/vmlinuz-* โinitrd=./initrd && kexec -e, ืืืื, ืื, ืืืืืชื ืืืืฉืง ืืืืื ื ืืืืืจืืืืืืช QEMU (ืืืื ืืคืืื Proxmox), ืืชืืื ืืืงืืจ ืืจืืืง ืืืืฆืขืืช ืฉืืืฉ ืคืงืืืืช IPXE: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, ืืชืืื. ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืคืืื ื-initrd ืจืืื ืขื ืืืขืจืืช ืฉืื ืืคื ืื ืืฉ ืฉืืืืฉืื ืจืืื.
ืืื ืืืฆืืจ ืืื ื ืื ืืชืืื ืืช ื ืืชื ืื ืืืชืืื, ื ืขืฉื ืฉืืืืฉ ืืคืงืืื mkbootisofs, ืืืืืื, ืื ื ืจืืืช ืืฆืืจืช ืชืืื ืช ISO ืขื ืืคืฉืจืืช -iso-9660 ืืืืฆืขืืช syslinux ืืื ืืืชืื ืืชืื ืืฆื Legacy (BIOS) ื-grub2 ืืื ืืืชืื ืืชืื EFI- ืืฆื (UEFI).
# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ โiso-9660 โlegacy-boot syslinux โefi grub2 โoutput boot.iso
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
ืืชื ืืืื ืืฆืืื ืืื ืืืฆืื ืืืชืืื, ืื ืื ืืฆืืื ืืืชื ืืืื, ืชืืื ืช ื-ISO ืืืชืืืื ืชืืืืฆืจ ืืืฆืืื.
ืืืชืงื ื ืขื ืื ืืื ื ืืืืชืืื ืฉืืืืจ ืืื ืืื ื ืืชืืฆืขืช ืืืืฆืขืืช ืืืคืฉืจืืช --bootable. ืืชื ืฆืจืื ืืืฆืืจ ืืืืฆืืช ืืืื ื ืืขืฆืื (fdisk) ืืืขืฆื ืืืชื (mkdosfs, mke2fs ืืื'), ืืืืืจ ืืื ืืืขืืืช ืืช ืืืชืงื ืืชืื ืกืคืจืืื.
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
ืึฐืึดืืจืึผืช! ืืืคืฉืจืืช --bootable ืงืืืขืช ืืืืื ืืืฉืืจ ืืกืืื ืืชืืงืืื ื ืืขื ืช ืืืชืงืื ื ืืช ืืืขื ืืืชืืื ืืืชืงื ืื. ืื ืชืฉืื ืืืขืื ืืช ืืืืฉืืจ ืื ืฆืืื ืืืขืืช ืกืคืจืืื ืฉื ืืฆืืช, ืืืฉื, ื-/dev/sda, ืืืขื ืืืชืืื ื-/dev/sda ืืืจืืก ืืืชืื. ืืฉืชืืฉ ื--bootable ืืืืืจืืช.
ืืชืงื ืช ืื ืืขืจืืช GNU/Linux ืืฆืืืฆืืช ืืคืงืืื ืืืช ืืืื. ืืืชืงื ื ืืืืื ืืืชืืฆืข ืขื ืื HDD, SSD ืืื'. ืืืื ืืืืืจ ืฉืื ืขืืืื ืืขืจืืช ืืคืืขืืช ื-Overlay FS / SquashFS, ืื ืืืขืื ื ืืืื ืืชืื tmpfs, ืืืืืจืชื.
ืืื ืืืชืจ ื- boobstrap ืืกืคืจ ืคืืฆ'ืจืื ืืขื ืื ืื ืืืืืืืช ื ืืกืคืืช!
ืืืืืื, ืืชื ืืืื ืืืฆืืจ boobstrap initrd ืงื ืืื ื ืขื ืืคืงืืื mkinitramfs `mktemp -d` > /boot/initrd ืืืืชืื ืืชืื ืืืขืจืืช ืฉืื ืขื initrd ืื, ืชืื ืฆืืื ืืคืฉืจืืืืช ืืืืื boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. ืืืงืจื ืื, /dev/sda1, ืืืื ืฉืืืขืจืืช ืืืืชืืช ืฉืื ืืืชืงื ืช, ืืืืืจ ืืฉืืืช Overlay FS ืืงืจืืื ืืืื, ืืื ืืฉืื ืืืื ืฉืชืืฆืข ืืืืชืื ืจืง ืืืืคื ืืื ื ื-tmpfs. ืืชื ืืืื ืืืืกืืฃ ืืช ืืืคืฉืจืืช boobs.copy-to-ram ืืื ืื ืืืขืจืืช ืฉืื ืชืืขืชืง ื-RAM, ืื ืืชื ืื ืชืง ืืช ืืืื ื ืืงืฉืื ืืืืืฉื. ื ืื ืืืฉืจ ืืชื ืฆืจืื ืืฉืืืจ ืืฉืื, ืืืชื ืืืื ืืืืืืจ ืฉืื ืืืื ืคืฉืื ืขื ืืื ืืชืืื ืืืืฉ. ๐
ืืื ืื ืื ืืื ืืืช ืฆืจืื ืืฉืืืจ ืืช ืื ืืฉืื ืืืื ืืืขืจืืช? ืืืืืื, ืืชืงื ืช ืชืืื ื ืื ืืฉืื ืืืจ. ืืืฉืจ ืขืืืืื ื-tmpfs ืืืืจืื, ืื ืืืจืื ืืฆืขืจ ืืืชื ืืคืฉืจื, ืืื ืื ืืชืืื ืืืืฆืขืืช Overlay FS, ืื ืื ืืฉืื ืืืื ืืืชืจืืฉืื ืืืขืจืืช ื ืฉืืจืื ืืกืคืจืืืช tmpfs ื ืคืจืืช: /mnt/overlayfs/rootfs-changes! ืชืจืืืฉ ืืฉืืืืฉ ืคืฉืื ืืืื. ืืชืืื ืืืขืจืืช ืฉืื ืืืชืงื USB, ืขืฉืืช ืขืืืื ืืจืฆืืช ืืฉืืืจ ืืช ืื ืื ืฉืืฉืชื ื, ืืื ืืืฆืืจ ืืจืืืื cpio ืืืฉืื ืืืชื ืืื, ืขื ืืืชื ืืชืงื USB.
# cd /mnt/overlayfs/rootfs-changes
# ืืืฆืื . -print0 | cpio --create --ืคืืจืื "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# ืชืงืืืืืจ $OLDPWD
ืืชื ืืืื ืืฉืื ืืช ืืืจืืืื ืืื "ืฉืืืืช" ืืืจืืช ืฉื SquashFS ื-cpio, ืืื ืืืขืื ื ืฉืืืืจ ืืื ืืืจืืืื ืืชืืืจ ืืฉืืื ื ืืกืคืช ืืงืจืืื ืืืื. ืืื ืืืืฉืื ืืขืืื ืขื ืฉืื ืืืื, ืืฉืชืืฉ ืืืคืฉืจืืช ืืืขืืื boobs.rootfs-changes=/rootfs-changes.cpio. ืืืคืฉืจืืช boobs.rootfs-changes ืืืคืฉืจืช ืืช ืืฉืืื ืฉืฆืืื ื ืขื ืืืฉืช ืฉืื ืื. ืืฉืืื ืืืืื ืืืืืช ืืชืงื ืืืืง, ืืืฉื ืืชื ืืืื ืืฆืืื /dev/sdb1, ืืื ืื ืืฉืื ืืืื ืฉื ืขืฉื ื-Overlay FS ืคืฉืื ืืืฉืืจื ื-/dev/sdb1.
Boobstrap, ืืืจืืช ืืืคืฉืจืืืืช ืืจืืืืช ืืืืื ืืช, ืขืืืื ืืฉืื ืืคืืชืื, ืื ืืืขืจืืช ืืืืฆืขืืช ืฉืื ื ืืงืืืช ืืืฉืืื!
ืืงืืจ: linux.org.ru