åŸ ã¡ããã©äžã¶æ ãã£ãããšããéçºã®åŸãããŒãã¹ãã©ãã v1.2 ããªãªãŒã¹ãããŸãããããã¯ãããŒã ã€ã¡ãŒãžãšãã©ã€ããäœæããããã® POSIX ã·ã§ã«äžã®ããŒã« ã»ããã§ãã
Boobstrap ã§ã¯ã次ã®ã³ãã³ãã XNUMX ã€ã ãå®è¡ã§ããŸãã
- GNU/Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ãå«ã initramfs ã€ã¡ãŒãžãäœæããŸãã
- ä»»æã® GNU/Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããŒãå¯èœãª ISO ã€ã¡ãŒãžãäœæããŸãã
- ä»»æã® GNU/Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšããŠãèµ·åå¯èœãª USBãHDDãSSD ãã©ã€ããäœæããŸãã
ç¹åŸŽã¯ãGNU/Linux ãããŒãããåŸãå®å šã«çŽç²ãª tmpfs ã§åäœãããããŸã㯠Overlay FS ããã³ SquashFS ã€ã¡ãŒãžã䜿çšããŠåäœããããšã§ãã GNU/Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ããã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ããå¿ èŠãªèšå®ããã¹ãŠ (å Žåã«ãã£ãŠã¯å¥ã®ãã£ã¬ã¯ããªã«) è¡ã£ãåŸãã³ãã³ã XNUMX ã€ã§ããŒã ããã€ã¹ (ISO ã€ã¡ãŒãžãUSBãHDDãSSD ãã©ã€ããªã©) ãäœæããŸããã·ã¹ãã ã䜿çšã㊠initrd ã€ã¡ãŒãžãäœæã§ããŸãã ã·ã¹ãã ã¯åžžã«åãç¶æ ã«ãããé害ãçºçããå Žåã¯ããªã»ãã ãã¿ã³ã XNUMX ã€æŒãããšã§å ã®ç¶æ ã«æ»ãããšãã§ããŸãã ã·ã¹ãã ãå¥ã®ãã¹ãã«è»¢éããŸãã? ãããšãæ¢åã®ã³ã³ããããã·ã¹ãã ãäœæããŸãã? ãã£ã±ãã¹ãã©ããã¯ããããããŸãã
äž»ãªå€æŽç¹ã«ã¯æ¬¡ã®ãããªãã®ããããŸãã
- æ¢åã® grub2 ã«å ããŠãsyslinux ããŒãããŒããŒã®ãµããŒããè¿œå ãããŸããã --legacy-boot syslinux ãªãã·ã§ã³ãš --efi grub2 ãªãã·ã§ã³ã䜿çšããŠããŒã ããã€ã¹ãŸã㯠ISO ã€ã¡ãŒãžãäœæãããšãã«ãgrub2ãsyslinuxããŸãã¯ãã®äž¡æ¹ã䜿çšããããšãéžæã§ããããã«ãªããŸããããŸããããŠã³ããŒã㧠ISO ããµããŒãããã¢ãŒããéžæã§ããŸããç»åã
- --bootable ãªãã·ã§ã³ãè¿œå ããŸãããããã«ãããããã㯠ããã€ã¹ãèµ·åå¯èœã«ãªããŸãã ISO ã€ã¡ãŒãžãäœæããã«ã¯ã--iso-9660 ãªãã·ã§ã³ã䜿çšããå¿ èŠããããŸãã
- ãã¹ãŠã®ãªãŒããŒã¬ã€ã®å 容ã tmpfs ã«ã³ããŒããã«ãŒãã« ããŒã ãªãã·ã§ã³ Boobe.use-shmfsããªãŒããŒã¬ã€ FS ã䜿çšããŠããŒããã Boobe.use-overlayfsãã·ã¹ãã ã®ãœãŒã¹ãéžæãã Boobe.search-rootfsãboobs.copy-to-ram ãè¿œå ããŸãããã·ã¹ãã ãã¡ã¢ãªã«ã³ããŒããŠãããããã€ã¹ã®é»æºããªãã«ããŸãã
- ããŒãã¹ãã©ãããæ©èœããããã«å¿ èŠãªäŸåé¢ä¿ã¯ cpio ã ãã§ãã æ®ãã®äŸåé¢ä¿ã¯ãªãã·ã§ã³ã§ã: grub2ãsyslinux - ããŒã¿ãã«ã¡ãã£ã¢ã®äœæã«å¿ èŠãcdrkit ãŸã㯠xorriso ããéžæ - ISO ã®äœæãsquashfs-tools (SquashFS ã®äœæ) ãã ãã-cpio ãªãã·ã§ã³ã®ä»£ããã« -cpio ãªãã·ã§ã³ã䜿çšããããšã劚ãããã®ã¯ãããŸããã squashfs ã䜿çšããŠããã£ã¹ããªãã¥ãŒã·ã§ã³ãã¢ãŒã«ã€ãã«ããã±ãŒãžåããŸãã Busybox ã¯ã€ã³ã¹ããŒã«ãããŠããå Žåã«ã®ã¿äœ¿çšãããŸãããã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãã·ã¹ãã ããå¿ èŠãªãŠãŒãã£ãªãã£ããã¹ãŠã³ããŒãããŸãã ãããã£ãŠãããŒã¹ãã©ããã¯ã»ãŒã©ãã§ãåäœããããšãä¿èšŒãããŠããŸãã
ããšãã°ã次ã®ã³ãã³ãã¯ãSquashFS ã€ã¡ãŒãžãšããŠããã±ãŒãžåããã gentoo-chroot/ ã·ã¹ãã ãå«ã initrd ã€ã¡ãŒãžãäœæããŸããããã¯ãinitrd èªäœãããŒããããåŸã«æ£åžžã«èµ·åããŸãã Overlay FS ã SquashFS ãšçµã¿åãããŠäœ¿çšââããã«ã¯ãboots.use-overlayfs ã«ãŒãã« ãªãã·ã§ã³ãæž¡ãå¿ èŠãããããšãæãåºããŠãã ãããããããªããšãã·ã¹ãã 㯠tmpfs ã«è§£åãããŸãã è¿œå ã®èšå®ã¯ãã¹ãŠå¥ã®ãã£ã¬ã¯ã㪠(äŸ: gentoo-settings/) ã§è¡ãããšãã§ããŸãã
# mkdir initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs > initrd
ã·ã¹ãã ãå éšã«å«ã initrd ã€ã¡ãŒãžã¯ãPXE çµç±ã§ã·ã¹ãã ãè¿ éã«å±éããå¿ èŠãããå ŽåããããŒããããã·ã¹ãã ã§ã³ãã³ã kexec -l /boot/vmlinuz-* âinitrd=./initrd ã䜿çšã㊠initrd ã«åãæ¿ããå¿ èŠãããå Žåã«äŸ¿å©ã§ãã && kexec -eããŸãã¯ãQEMU ä»®æ³ãã·ã³ ã€ã³ã¿ãŒãã§ã€ã¹ (ãããã Proxmox ã) ã§ã次㮠XNUMX ã€ã® IPXE ã³ãã³ãã䜿çšããŠãªã¢ãŒã ãœãŒã¹ããèµ·åããŸã: kernel http://[...]/vmlinuzãinitrd http://[ ...]/initrdãããŒãããŸãã ã芧ã®ãšãããã·ã¹ãã ãå éšã«ããéåžžã® initrd ã§ãã£ãŠããããŸããŸãªçšéããããŸãã
èµ·åå¯èœãªãã©ã€ããšã€ã¡ãŒãžãäœæããã«ã¯ãmkbootisofs ã³ãã³ãã䜿çšãããŸããããšãã°ã-iso-9660 ãªãã·ã§ã³ã䜿çšã㊠ISO ã€ã¡ãŒãžãäœæãããšãsyslinux ã䜿çšããŠã¬ã¬ã·ãŒ ã¢ãŒã (BIOS) ã§èµ·åããgrub2 ã䜿çšã㊠EFI ã§èµ·åããããã«ãªããŸããã¢ãŒãïŒUEFIïŒã
# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/ããŒã
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ âiso-9660 âã¬ã¬ã·ãŒããŒã syslinux âefi grub2 âåºå boot.iso
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
ããŒã ã¢ãŒãã® XNUMX ã€ãæå®ããŠãããŸã£ããæå®ããªããŠãã察å¿ãã ISO ã€ã¡ãŒãžãæ£åžžã«äœæãããŸãã
ä»»æã®ãã©ã€ããžã®ã€ã³ã¹ããŒã«ãšãã®åŸã®ããããã®èµ·åã¯ã --bootable ãªãã·ã§ã³ã䜿çšããŠå®è¡ãããŸãã èªåã§ãã©ã€ãäžã«ããŒãã£ã·ã§ã³ãäœæã (fdisk)ããããããã©ãŒãããã (mkdosfsãmke2fs ãªã©)ãããã€ã¹ããã£ã¬ã¯ããªã«ããŠã³ãããå¿ èŠããããŸãã
# ããŠã³ã /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 ã·ã¹ãã ã®ã€ã³ã¹ããŒã«ã¯ XNUMX ã€ã®ã³ãã³ãã ãã§æžã¿ãŸãã ã€ã³ã¹ããŒã«ã¯ä»»æã® HDDãSSD ãªã©ã«è¡ãããšãã§ããŸãã ããã¯äŸç¶ãšã㊠Overlay FS / SquashFS ããå®è¡ãããŠããã·ã¹ãã ã§ããããå®å šã« tmpfs ã«ããŒããããŠããããéžæã§ããããšãæãåºããŠãã ããã
ãšããããBootstrap ã«ã¯å€ãã®èå³æ·±ãæ©èœãšè¿œå æ©èœããããŸãã
ããšãã°ãã³ãã³ã mkinitramfs `mktemp -d` > /boot/initrd ã䜿çšããŠç¬èªã®ããŒã¹ãã©ãã initrd ãäœæããã«ãŒãã« ãªãã·ã§ã³ Boobe.use-overlayfs Boobs.search-rootfs=/dev ãæå®ããŠããã® initrd ã§ã·ã¹ãã ãèµ·åã§ããŸãã /sda1. ãã®å ŽåãããŒã ã·ã¹ãã ãã€ã³ã¹ããŒã«ãããŠãã /dev/sda1 ã¯èªã¿åãå°çšã®ãªãŒããŒã¬ã€ FS ã¬ã€ã€ãŒãšããŠæ¥ç¶ãããå ãããã¹ãŠã®å€æŽã¯äžæçã«ã®ã¿ tmpfs ã«æžã蟌ãŸããŸãã ãªãã·ã§ã³ Boobe.copy-to-ram ãè¿œå ãããšãã·ã¹ãã å šäœã RAM ã«ã³ããŒãããããŒã ãã©ã€ããã³ã³ãã¥ãŒã¿ããåæã§ããŸãã äœããå£ãå¿ èŠãããå Žåã«äŸ¿å©ã§ãåèµ·åããã ãã§å€æŽãããŒã«ããã¯ã§ããŸãã ð
ããããã·ã¹ãã å ã®ãã¹ãŠã®å€æŽãä¿åããå¿ èŠãããå Žåã¯ã©ãããã°ããã§ãããã? ããšãã°ããœãããŠã§ã¢ãªã©ãã€ã³ã¹ããŒã«ãããšããŸãã çŽç²ãª tmpfs ã§äœæ¥ããŠããå Žåãããã¯æ®å¿µãªããäžå¯èœã§ããããªãŒããŒã¬ã€ FS ã䜿çšããŠããŒãããå Žåãã·ã¹ãã å ã§çºçãããã¹ãŠã®å€æŽã¯å¥ã® tmpfs ãã£ã¬ã¯ã㪠/mnt/overlayfs/rootfs-changes ã«ä¿åãããŸãã 䜿çšã·ããªãªã¯éåžžã«ã·ã³ãã«ã§ãã USB ããã€ã¹ããã·ã¹ãã ãèµ·åããããã€ãã®äœæ¥ãè¡ããå€æŽãããå 容ããã¹ãŠä¿åããŠãããcpio ã¢ãŒã«ã€ããäœæããŠãåã USB ããã€ã¹ã«ä¿åããããšèããŸããã
# cd /mnt/overlayfs/rootfs-changes
ïŒ æ¢ã ã -print0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
ã¢ãŒã«ã€ããä»ã® SquashFS ããã³ cpio ã®ãã¬ã€ã€ãŒãã®é£ã«é 眮ãããšããã®åŸã®ããŒãæã«ã¢ãŒã«ã€ããåãªãå¥ã®èªã¿åãå°çšã¬ã€ã€ãŒãšããŠæ¥ç¶ãããŸãã åŒãç¶ãå€æŽãåŠçããã«ã¯ãã¢ããããŒã ãªãã·ã§ã³ Boobe.rootfs-changes=/rootfs-changes.cpio ã䜿çšããŸãã Boobe.rootfs-changes ãªãã·ã§ã³ã¯ãæå®ãããã¬ã€ã€ãŒãå€æŽã¢ã¯ã»ã¹ã§æå¹ã«ããŸãã ã¬ã€ã€ãŒã¯ããã㯠ããã€ã¹ã«ããããšãã§ããŸããããšãã°ã/dev/sdb1 ãæå®ãããšããªãŒããŒã¬ã€ FS ã§è¡ããããã¹ãŠã®å€æŽãåçŽã« /dev/sdb1 ã«ä¿åãããŸãã
Boobstrap ã«ã¯å¹ åºãå¯èœæ§ããããŸããããŸã éçºæ®µéã«ããããã¹ãŠã®ã³ã¡ã³ããææ¡ãèæ ®ãããŸãã
åºæïŒ linux.org.ru