Ներկայացված ծրագիրը
Booty-ի միջոցով բեռնված բոլոր բաշխումները գործարկվում են կամ SHMFS (tmpfs) կամ SquashFS + Overlay FS՝ օգտագործողի ընտրությամբ: Բաշխումը ստեղծվում է մեկ անգամ, և բեռնման գործընթացում ընտրվում են պարամետրեր, որոնք թույլ են տալիս օգտագործել մաքուր tmpfs արմատի համար, կամ Overlay FS + SquashFS-ի համադրություն՝ tmpfs-ի փոփոխություններ գրանցելով: Հնարավոր է ներբեռնվող բաշխման փաթեթը նախապատճենել RAM-ում, ինչը թույլ է տալիս անջատել USB կրիչը ներբեռնելուց և բաշխման հավաքածուն հիշողության մեջ պատճենելուց հետո:
Նախևառաջ, Booty-ն ստեղծում է իր սեփական initrd պատկերը, որը կարող է օգտագործել ընթացիկ համակարգի կամ busybox-ի տեղական կոմունալ ծառայություններ: Հնարավոր է ներառել (փաթեթավորել) գրացուցակում (chroot) տեղադրված ամբողջ բաշխման հավաքածուն initramfs-ում: Սա կարող է օգտակար լինել, երբ դուք պետք է թարմացնեք համակարգը՝ օգտագործելով kexec. պարզապես վերաբեռնեք initrd-ը նոր միջուկով և նոր համակարգով initrd-ի ներսում:
Booty-ին հատուկ initrd պատկերի ստեղծում.
mkdir initramfs/
mkinitramfs initramfs/ --ելք initrd
Initrd պատկերի ստեղծում, ներառյալ բաշխումը «gentoo/» գրացուցակից.
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd
Որից հետո այս initrd պատկերը լիովին պատրաստ է բեռնման, օրինակ՝ PXE-ի կամ kexec-ի միջոցով։
Հաջորդը, Booty-ն ստեղծում է պատկերներ համակարգով, որը նշված է որպես «վերածում»: Օրինակ, դուք կարող եք տեղադրել (բացփաթեթավորել արխիվը) պայմանական Gentoo-ն առանձին գրացուցակում, որից հետո այս համակարգով cpio արխիվ կամ SquashFS պատկեր կստեղծվի Booty-ի միջոցով: Դուք կարող եք նաև կարգավորել բաշխումը առանձին գրացուցակում և պատճենել ձեր անձնական կարգավորումները մեկ այլ գրացուցակում: Այս բոլոր «շերտերը» հաջորդաբար կբեռնվեն միմյանց վրա և կստեղծեն մեկ աշխատանքային համակարգ:
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay document/ --squashfs --output initrd
Ի վերջո, Booty-ն թույլ է տալիս ստեղծել bootable ISO պատկերներ և USB, HDD, SSD և այլ կրիչներ՝ տեղադրելով վերը նշված համակարգը պատկերներից:
Միակ լրացուցիչ գործողությունը, որը պահանջվում է, միջուկը (vmlinuz) նախապես բեռնման համար պատրաստելն է: Հեղինակը (Spoofing) խորհուրդ է տալիս օգտագործել «make defconfig»: Պատկերը ստեղծելուց առաջ անհրաժեշտ է պատրաստել գրացուցակ՝ տեղադրելով vmlinuz միջուկը և առաջին օրինակում ստեղծված նախապես պատրաստված «դատարկ» initrd-ը։
mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd
Դրանով նախապատրաստումն ավարտված է, մենք այժմ կարող ենք ստեղծել ISO պատկերներ այս գրացուցակից:
Հետևյալ հրամանը կստեղծի ISO պատկեր, ոչ թե bootable, այլ պարզապես ISO.
mkdir iso/
mkbootisofs iso/ --output archive.iso
Բեռնման պատկեր ստեղծելու համար անհրաժեշտ է նշել «--legacy-boot» տարբերակը BIOS-ի համար և «--efi»՝ UEFI-ի համար, ընտրանքները որպես պարամետր վերցնում են կամ grub2 կամ syslinux, կարող եք նաև նշել միայն մեկ տարբերակ ( Օրինակ, UEFI-ի բեռնման աջակցությունը անհրաժեշտ չէ, այն կարող է նշված չլինել):
mkbootisofs iso/ --legacy-boot syslinux --ելք boot-biosonly.iso
mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --ելքային boot-bios-uefi.iso
mkbootisofs iso/ --efi grub2 --ելք boot-uefionly.iso
Եվ ինչպես նախկինում, համակարգով պատկերները ներառված էին initrd-ում, դուք կարող եք դրանք ներառել ISO-ում:
mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --ելք gentoo.iso
Այս հրամանից հետո կստեղծվի bootable BIOS/UEFI ISO պատկեր, որը բեռնում է Gentoo-ն SquashFS պատկերում՝ օգտագործելով Overlay FS-ը, օգտագործելով tmpfs տվյալների պահպանման համար: Միջուկը պետք է կառուցվի Overlay FS աջակցությամբ SquashFS-ով: Այնուամենայնիվ, եթե ինչ-ինչ պատճառներով դա պարտադիր չէ, կարող եք օգտագործել «—cpio» տարբերակը՝ «squashfs»-ի փոխարեն՝ gentoo-ն փաթեթավորելու համար որպես cpio արխիվ, որի դեպքում արխիվը կբացվի անմիջապես tmpfs-ի մեջ՝ boot-ում, գլխավորը: այն է, որ համակարգը բացելու համար tmpfs-ն ուներ բավարար RAM:
Հետաքրքիր փաստ․ եթե «—efi» տարբերակով ստեղծված ISO պատկերը բացվում է FAT32 ֆլեշ կրիչի վրա՝ պարզապես ֆայլերը պատճենելով (cp -r), ապա ֆլեշ կրիչը կգործարկվի UEFI ռեժիմում՝ առանց որևէ նախնական պատրաստման՝ շնորհիվ առանձնահատկությունների։ UEFI- ներբեռնողների:
Բացի bootable ISO-ներից, ցանկացած bootable drive կարող է ստեղծվել նույն պարամետրերով՝ USB, HDD, SSD և այլն, և այս սկավառակը կարող է շարունակել օգտագործվել իր նպատակային նպատակներով: Դա անելու համար հարկավոր է միացնել, օրինակ, USB սարքը և դրա վրա գործարկել mkbootisofs: Պարզապես ավելացրեք մեկ տարբերակ «—bootable», որպեսզի սկավառակը, որի վրա գտնվում է նշված գրացուցակը, դառնա bootable:
Mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable
Դրանից հետո USB սարքը կդառնա bootable gentoo/ overlay-ով (մի մոռացեք պատճենել /boot/vmlinuz և /boot/initrd ֆայլերը սարքում):
Եթե ինչ-ինչ պատճառներով դրայվը չի տեղադրվել /mnt-ում, և պարզվում է, որ /mnt-ը գտնվում է հիմնական սարքի /dev/sda-ի վրա, ապա բեռնիչը կվերագրվի /dev/sda-ին: Դուք պետք է զգույշ լինեք, երբ նշելով --bootable տարբերակը:
Բեռնման գործընթացում Booty-ն աջակցում է մի շարք տարբերակներ, որոնք կարող են փոխանցվել boot loader-ին, grub.cfg-ին կամ syslinux.cfg-ին: Լռելյայն, առանց որևէ ընտրանքների, բոլոր ծածկույթները բեռնվում և բացվում են tmpfs-ի մեջ (կանխադրված տարբերակ ooty.use-shmfs): Overlay FS-ն օգտագործելու համար պետք է օգտագործվի booty.use-overlayfs տարբերակը: Booty.copy-to-ram տարբերակը սկզբում պատճենում է ծածկույթները tmpfs-ում, որից հետո միայն միացնում է դրանք և բեռնում: Պատճենելուց հետո USB սարքը (կամ այլ պահեստային սարք) կարող է հեռացվել:
Source: opennet.ru