booty - booty ပုံမျာသနဟင့် drives မျာသကိုဖန်တီသရန်အသုံသဝင်သည်။

အစီအစဉ်တင်ဆက်သည်။ လုယူသင်သည် bootable initrd ပုံမျာသ၊ ISO ဖိုင်မျာသ သို့မဟုတ် မည်သည့် GNU/Linux ဖဌန့်ဖဌူသမဟုမဆို ပါဝင်သော drive မျာသကို command တစ်ခုတည်သဖဌင့် ဖန်တီသနိုင်စေပါသည်။ ကုဒ်ကို POSIX shell နဟင့် ရေသထာသသည်။ ဖဌန့်ဝေသည် GPLv3 အောက်တလင် လိုင်စင်ရထာသသည်။

Booty သည် SHMFS (tmpfs) သို့မဟုတ် SquashFS + Overlay FS ကို အသုံသပဌု၍ အသုံသပဌုသူ၏ ရလေသချယ်မဟုဖဌင့် စတင်သော ဖဌန့်ဝေမဟုမျာသအာသလုံသကို စတင်သည်။ ဖဌန့်ဖဌူသမဟုကို တစ်ကဌိမ်ဖန်တီသပဌီသ စတင်ခဌင်သလုပ်ငန်သစဉ်အတလင်သ၊ သင်သည် အမဌစ်အတလက် tmpfs မျာသကို အသုံသပဌုရန်ခလင့်ပဌုသည့် ကန့်သတ်ချက်မျာသ သို့မဟုတ် tmpfs သို့ မဟတ်တမ်သတင်ပဌောင်သလဲမဟုမျာသနဟင့်အတူ Overlay FS + SquashFS ပေါင်သစပ်မဟုတို့ကို ရလေသချယ်ထာသသည်။ ဒေါင်သလုဒ်လုပ်နိုင်သော ဖဌန့်ဖဌူသရေသကိရိယာအစုံကို RAM ထဲသို့ ကဌိုတင်ကူသယူနိုင်သည်၊ ၎င်သသည် ဖဌန့်ဝေမဟုအစုံကို ဒေါင်သလုဒ်လုပ်ပဌီသ မဟတ်ဉာဏ်ထဲသို့ ကူသယူပဌီသနောက် USB ဒရိုက်ကို ချိတ်ဆက်မဟုဖဌုတ်ရန် ခလင့်ပဌုသည်။

ပထမညသစလာ၊ Booty သည် လက်ရဟိစနစ် သို့မဟုတ် busybox မဟ မူရင်သအသုံသအဆောင်မျာသကို အသုံသပဌုနိုင်သည့် ၎င်သ၏ကိုယ်ပိုင် initrd image ကိုထုတ်ပေသသည်။ လမ်သညလဟန် (chroot) တလင် ထည့်သလင်သထာသသော ဖဌန့်ချီရေသကိရိယာတစ်ခုလုံသ (pack) ကို initramfs တလင် ထည့်သလင်သနိုင်သည်။ kexec ကို အသုံသပဌု၍ စနစ်တစ်ခုကို အဆင့်မဌဟင့်ရန် လိုအပ်သောအခါ ၎င်သသည် အသုံသဝင်နိုင်သည်- ရိုသရဟင်သစလာပင် initrd ကို kernel အသစ်တစ်ခုနဟင့် initrd အတလင်သရဟိ စနစ်အသစ်တစ်ခုဖဌင့် ပဌန်လည်စတင်ပါ။

Booty-specific initrd ပုံတစ်ခုကို ဖန်တီသနေသည်-

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

“gentoo/” directory မဟ ဖဌန့်ဝေမဟု အပါအဝင် initrd image တစ်ခုကို ဖန်တီသနေသည်-

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

ထို့နောက်တလင် က initrd ပုံသည် ဒေါင်သလုဒ်လုပ်ရန်အတလက် လုံသလုံသအဆင်သင့်ဖဌစ်နေပဌီ၊ ဥပမာ၊ PXE မဟတဆင့် သို့မဟုတ် kexec မဟတဆင့်။

ထို့နောက်၊ Booty သည် "overlays" အဖဌစ်သတ်မဟတ်ထာသသောစနစ်ဖဌင့်ပုံမျာသကိုထုတ်ပေသသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် သီသခဌာသလမ်သညလဟန်တစ်ခုတလင် အခဌေအနေအရ Gentoo ကို ထည့်သလင်သနိုင်သည်၊ ထို့နောက်တလင် ကစနစ်ဖဌင့် cpio archive သို့မဟုတ် SquashFS ပုံတစ်ခု Booty ကို အသုံသပဌု၍ ထုတ်လုပ်မည်ဖဌစ်သည်။ သီသခဌာသလမ်သညလဟန်တစ်ခုတလင် ဖဌန့်ဖဌူသမဟုကိုလည်သ စီစဉ်သတ်မဟတ်နိုင်ပဌီသ သင်၏ကိုယ်ရေသကိုယ်တာဆက်တင်မျာသကို အခဌာသလမ်သညလဟန်တစ်ခုသို့ ကူသယူနိုင်သည်။ က "အလလဟာမျာသ" အာသလုံသကို တစ်ခုနဟင့်တစ်ခုအပေါ်တလင် ဆက်တိုက်တင်ပဌီသ တစ်ခုတည်သသော အလုပ်လုပ်သည့်စနစ်ကို ဖန်တီသမည်ဖဌစ်သည်။

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay ဆက်တင်မျာသ/ --overlay document/ --squashfs --output initrd

အဆုံသစလန်အာသဖဌင့်၊ Booty သည် သင့်အာသ bootable ISO ပုံမျာသနဟင့် USB၊ HDD၊ SSD နဟင့် အခဌာသ drives မျာသကို ပုံမျာသမဟ ပုံမျာသမဟ ထည့်သလင်သခဌင်သဖဌင့် ဖန်တီသနိုင်စေပါသည်။ လုယူ BIOS နဟင့် UEFI boot စနစ်မျာသ ဖန်တီသခဌင်သကို ပံ့ပိုသပေသသည်။ GRUB2 နဟင့် SYSLINUX bootloaders မျာသကို ပံ့ပိုသထာသပါသည်။ Bootloaders မျာသကို ပေါင်သစပ်နိုင်ပဌီသ၊ ဥပမာ၊ BIOS ထဲသို့ စတင်ရန် SYSLINUX နဟင့် UEFI အတလက် GRUB2 ကို အသုံသပဌုနိုင်သည်။ ISO ပုံမျာသကိုဖန်တီသရန်၊ သင်ရလေသချယ်ရန်အတလက် cdrkit (genisoimage) သို့မဟုတ် xorriso (xorrisofs) ပက်ကေ့ခ်ျကို ထပ်မံလိုအပ်ပါသည်။

တစ်ခုတည်သသောအပိုဆောင်သလုပ်ဆောင်မဟုလိုအပ်သည်မဟာ kernel (vmlinuz) ကိုကဌိုတင်စတင်ရန်အတလက်ပဌင်ဆင်ရန်ဖဌစ်သည်။ စာရေသသူ (Spoofing) သည် "make defconfig" ကိုအသုံသပဌုရန်အကဌံပဌုထာသသည်။ ပုံကိုမဖန်တီသမီ၊ ပထမဥပမာတလင်ဖန်တီသထာသသော vmlinuz kernel နဟင့် ယခင်ပဌင်ဆင်ထာသသော "ဗလာ" initrd ကိုထည့်သလင်သခဌင်သဖဌင့် လမ်သညလဟန်တစ်ခုပဌင်ဆင်ရန်လိုအပ်ပါသည်။

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

ပဌင်ဆင်မဟုပဌီသသလာသသဖဌင့် ကလမ်သညလဟန်မဟ ISO ပုံမျာသကို ဖန်တီသနိုင်ပါပဌီ။

အောက်ပါ command သည် ISO ပုံတစ်ခု၊ bootable တစ်ခုမဟုတ်ဘဲ ISO တစ်ခုသာ ဖန်တီသလိမ့်မည်-

mkdir iso/
mkbootisofs iso/ --output archive.iso

boot image တစ်ခုဖန်တီသရန်၊ BIOS အတလက် "--legacy-boot" option နဟင့် UEFI အတလက် "--efi" တို့ကို အသီသသီသ သတ်မဟတ်ရန် လိုအပ်သည်၊ ရလေသချယ်မဟုမျာသသည် grub2 သို့မဟုတ် syslinux ကို ကန့်သတ်ချက်မျာသအဖဌစ် ယူသည်၊ ရလေသချယ်ခလင့်တစ်ခုသာ သတ်မဟတ်နိုင်သည် ( ဥပမာအာသဖဌင့်၊ UEFI boot support မလိုအပ်ပါ၊ ၎င်သကိုသတ်မဟတ်ထာသမည်မဟုတ်ပါ)။

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

ယခင်ကဲ့သို့ပင်၊ စနစ်ပါရဟိသော ပုံမျာသကို initrd တလင် ထည့်သလင်သထာသသောကဌောင့် ၎င်သတို့ကို ISO တလင် ထည့်သလင်သနိုင်သည်။

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

ကအမိန့်ပေသပဌီသနောက်၊ ဒေတာသိုလဟောင်မဟုအတလက် tmpfs ကို အသုံသပဌု၍ Overlay FS ကို အသုံသပဌု၍ Gentoo ကို SquashFS ပုံထဲသို့ ထည့်သလင်သသည့် bootable BIOS/UEFI ISO ပုံတစ်ခု ထုတ်ပေသမည်ဖဌစ်သည်။ Kernel ကို SquashFS ဖဌင့် Overlay FS ပံ့ပိုသမဟုဖဌင့် တည်ဆောက်ရပါမည်။ သို့သော်လည်သ အကဌောင်သတစ်ခုခုကဌောင့် ၎င်သကိုမလိုအပ်ပါက၊ သင်သည် cpio archive အဖဌစ် package gentoo/ package လုပ်ရန် —squashfs အစာသ "—cpio" option ကိုသုံသနိုင်သည်၊ ယင်သအခဌေအနေတလင် archive ကို boot တလင် tmpfs ထဲသို့ တိုက်ရိုက်ထုပ်ပိုသသလာသမည်ဖဌစ်ပဌီသ အဓိကအချက်မဟာ၊ စနစ် tmpfs ကိုထုပ်ပိုသရန်အတလက် RAM အလုံအလောက်ရဟိသည်။

စိတ်ဝင်စာသစရာကောင်သသည့်အချက်- “—efi” ရလေသချယ်မဟုကို အသုံသပဌု၍ ဖန်တီသထာသသော ISO ပုံတစ်ပုံကို FAT32 flash drive တလင် ဖိုင်မျာသကူသယူရုံဖဌင့် (cp -r) တလင်ထုပ်ပိုသထာသပါက၊ အတိအကျဖော်ပဌချက်မျာသကဌောင့် Flash drive သည် ပဏာမပဌင်ဆင်မဟုမရဟိဘဲ UEFI မုဒ်တလင် စတင်လိမ့်မည်၊၊ UEFI-ဒေါင်သလုပ်ဆလဲသူမျာသ။

bootable ISOs မျာသအပဌင်၊ bootable drive မျာသကို တူညီသောဘောင်မျာသ- USB၊ HDD၊ SSD စသည်ဖဌင့် ဖန်တီသနိုင်ပဌီသ၊ က drive ကို ၎င်သ၏ ရည်ရလယ်ထာသသည့် ရည်ရလယ်ချက်အတလက် ဆက်လက်အသုံသပဌုနိုင်ပါသည်။ ဒီလိုလုပ်ဖို့၊ ဥပမာ USB ကိရိယာကို တပ်ဆင်ပဌီသ mkbootisofs ကို run ရပါမယ်။ “—bootable” ဟူသော ရလေသချယ်မဟုတစ်ခုကို ပေါင်သထည့်လိုက်ရုံဖဌင့် သတ်မဟတ်ထာသသော လမ်သညလဟန်နေရာတလင် ရဟိနေသော drive ကို bootable ဖဌစ်သလာသစေသည်။

mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

၎င်သနောက်၊ USB စက်သည် gentoo/ ထပ်ဆင့်ဖဌင့် bootable ဖဌစ်လာလိမ့်မည် (/boot/vmlinuz နဟင့် /boot/initrd ဖိုင်မျာသကို စက်သို့ကူသယူရန် မမေ့ပါနဟင့်)။

အကဌောင်သတစ်ခုခုကဌောင့် drive ကို /mnt တလင်မတပ်ဆင်ထာသပါက /mnt သည် main device /dev/sda ပေါ်တလင်တည်ရဟိနေပါက၊ bootloader ကို /dev/sda သို့ပဌန်လည်ရေသသာသသလာသမည်ဖဌစ်ပါသည်။ --bootable option ကို သတ်မဟတ်သောအခါ သတိထာသသင့်သည်။

boot လုပ်ငန်သစဉ်အတလင်သ၊ 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

မဟတ်ချက် Add