Π‘ΠΏΡΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΡ Π½Π΅ΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· boobstrap v1.2 — Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° POSIX shell Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ.
Boobstrap ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ initramfs ΠΎΠ±ΡΠ°Π·, Π²ΠΊΠ»ΡΡΠ°Ρ Π² Π½Π΅Π³ΠΎ Π»ΡΠ±ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² GNU/Linux.
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ ISO ΠΎΠ±ΡΠ°Π·Ρ Ρ Π»ΡΠ±ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ GNU/Linux.
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ USB, HDD, SSD Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Ρ Π»ΡΠ±ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ GNU/Linux.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ GNU/Linux Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π² ΡΠΈΡΡΠΎΠΌ tmpfs, Π»ΠΈΠ±ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Overlay FS ΠΈ SquashFS-ΠΎΠ±ΡΠ°Π·ΠΎΠ², Π½Π° Π²Π°Ρ Π²ΡΠ±ΠΎΡ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π»ΡΠ±ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² GNU/Linux Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ (ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π±ΡΠ΄Ρ ΡΠΎ ISO-ΠΎΠ±ΡΠ°Π·, USB, HDD, SSD Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ initrd ΠΎΠ±ΡΠ°Π· Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Reset. ΠΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Ρ ΠΎΡΡ, Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ? Boobstrap ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ.
ΠΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° 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 , boot. ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΉ initrd Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²Π½ΡΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° mkbootisofs, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ISO ΠΎΠ±ΡΠ°Π·Π° Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ —iso-9660 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ syslinux Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² Legacy-mode (BIOS) ΠΈ grub2 Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² EFI-mode (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, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π²Π°ΡΠ° Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ read-only ΡΠ»ΠΎΠΉ Overlay FS, Π° Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΡΠ΅, Π·Π°ΠΏΠΈΡΡΡΡΡ Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² tmpfs. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΡ boobs.copy-to-ram ΠΈ ΡΠΎΠ³Π΄Π° Π²ΡΡ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π° Π² RAM, Π° ΠΆΡΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π£Π΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ, Π° ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΡΡ. π
ΠΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΡ ΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠΎΡΡ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΡ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠΈΡΡΠΎΠΌ tmpfs ΡΠ°ΠΊΠΎΠ΅ ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Overlay FS, ΡΠΎ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ tmpfs-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ: /mnt/overlayfs/rootfs-changes! Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ Π² ΡΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, ΡΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ cpio-Π°ΡΡ ΠΈΠ² ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΡΡΠ΄Π° ΠΆΠ΅, Π½Π° ΡΡΠΎ ΠΆΠ΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π°ΡΡ ΠΈΠ² ΡΡΠ΄ΠΎΠΌ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ SquashFS ΠΈ cpio «ΡΠ»ΠΎΡΠΌΠΈ», ΡΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π°ΡΡ ΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ read-only ΡΠ»ΠΎΠΉ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ boobs.rootfs-changes=/rootfs-changes.cpio. ΠΠΏΡΠΈΡ boobs.rootfs-changes ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ»ΠΎΠΉ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π‘Π»ΠΎΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ Π±Π»ΠΎΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ /dev/sdb1, ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Overlay FS Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π½Π° /dev/sdb1.
Boobstrap Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡ Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ, Π²ΡΠ΅ Π²Π°ΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru