Эҷоди тасвирҳои bootstrap v1.2


Эҷоди тасвирҳои bootstrap v1.2

Баъдтар танҳо як моҳ Пас аз рушди суст, boobstrap v1.2 бароварда шуд - маҷмӯи асбобҳо дар қабати POSIX барои эҷоди тасвирҳои пурборкунанда ва дискҳо.

Boobstrap ба шумо имкон медиҳад, ки танҳо як фармонро иҷро кунед:

  • Тасвири initramfs, аз ҷумла ҳама гуна тақсимоти GNU/Linux дар он эҷод кунед.
  • Тасвирҳои пурборшавандаи ISO бо ҳама гуна тақсимоти GNU/Linux эҷод кунед.
  • Эҷоди дискҳои пурборшаванда USB, HDD, SSD бо ҳама гуна тақсимоти GNU/Linux.

Хусусият дар он аст, ки пас аз боркунии GNU/Linux ё пурра дар tmpf-ҳои пок кор хоҳад кард ё бо истифода аз тасвирҳои Overlay FS ва SquashFS, интихоби шумо. Шумо ҳама гуна тақсимоти GNU/Linux-ро дар директория насб мекунед, ҳама танзимоти заруриро (эҳтимолан дар директорияи алоҳида) насб мекунед, пас аз он шумо дастгоҳи пурборкуниро бо як фармон эҷод мекунед, хоҳ он тасвири ISO, USB, HDD, диски SSD ё. шумо метавонед бо система тасвири initrd эҷод кунед. Система ҳамеша дар як ҳолат хоҳад буд ва дар сурати вайрон шудан, шумо метавонед бо пахш кардани як тугмаи Reset ба ҳолати аввалааш баргардед. Оё шумо мехоҳед системаро ба ҳости дигар интиқол диҳед ё системаро аз контейнери мавҷуда эҷод кунед? Boobstrap ин корро мекунад.

Дар байни тағйироти асосӣ:

  • Илова ба grub2, ки аллакай мавҷуд аст, дастгирии пурборкунандаи syslinux илова карда шуд. Шумо ҳоло метавонед истифода баред 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 пурбор кунед: ядро ​​http://[...]/vmlinuz, initrd http://[ ...]/initrd, пурбор. Тавре ки шумо мебинед, ҳатто як initrd муқаррарӣ бо системаи шумо дар дохили он бисёр истифода дорад.

Барои эҷод кардани дискҳо ва тасвирҳои пурборшаванда фармони mkbootisofs истифода мешавад, масалан, эҷоди тасвири ISO бо опсияи -iso-9660 ба монанди истифодаи syslinux барои бор кардан ба ҳолати Легаси (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 — баромади 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 як қатор хусусиятҳои ҷолиб ва қобилиятҳои иловагӣ дорад!

Масалан, шумо метавонед бо фармони mkinitramfs `mktemp -d` > /boot/initrd-и хусусии boobstrap initrd эҷод кунед ва бо ин initrd дар системаи худ пурбор кунед, бо муайян кардани имконоти ядрои boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Дар ин ҳолат, /dev/sda1, ки дар он системаи хонагии шумо насб шудааст, ҳамчун қабати танҳо барои хондан Overlay FS пайваст мешавад ва ҳамаи тағиротҳои шумо танҳо муваққатан ба tmpfs навишта мешаванд. Шумо метавонед варианти boobs.copy-to-ramро илова кунед ва он гоҳ тамоми системаи шумо ба хотираи оперативӣ нусхабардорӣ карда мешавад ва диски сахтро аз компютер ҷудо кардан мумкин аст. Вақте ки ба шумо лозим аст, ки чизеро вайрон кунед, қулай аст ва шумо метавонед тағиротро танҳо тавассути аз нав оғоз кунед. 🙂

Аммо чӣ мешавад, агар шумо ба ҳар ҳол лозим аст, ки ҳамаи тағиротҳоро дар система захира кунед? Масалан, шумо нармафзор ё чизи дигаре насб кардаед. Ҳангоми кор дар tmpf-ҳои пок, ин мутаассифона ғайриимкон аст, аммо агар шумо бо истифода аз Overlay FS пурбор карда бошед, он гоҳ ҳама тағиротҳое, ки дар система рух медиҳанд, дар феҳристи алоҳидаи tmpfs захира карда мешаванд: /mnt/overlayfs/rootfs-changes! Сенарияи истифода хеле содда аст. Шумо ба системаи худ аз дастгоҳи USB бор кардаед, каме кор кардед ва мехостед ҳама чизеро, ки тағир дода шудааст, захира кунед, пас архиви cpio эҷод кунед ва онро дар ҳамон дастгоҳи USB дар ин ҷо ҷойгир кунед.

# cd /mnt/overlayfs/rootfs-тағйирот
#ёфт. -print0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# CD $OLDPWD

Шумо метавонед бойгониро дар паҳлӯи дигар SquashFS ва cpio "қабатҳо" гузоред, пас ҳангоми боркунии минбаъда бойгонӣ ҳамчун қабати танҳо барои хондан пайваст мешавад. Барои идома додани кор бо тағйирот, имконоти боргузорӣ boobs.rootfs-changes=/rootfs-changes.cpio-ро истифода баред. Опсияи boobs.rootfs-changes қабати муайяншударо бо дастрасии тағирот имкон медиҳад. Қабат метавонад як дастгоҳи блок бошад, масалан, шумо метавонед /dev/sdb1-ро муайян кунед, пас ҳамаи тағиротҳои дар Overlay FS воридшуда танҳо дар /dev/sdb1 захира карда мешаванд.

Boobstrap, сарфи назар аз имкониятҳои васеъ, ҳанӯз дар марҳилаи таҳия қарор дорад, ҳама шарҳҳо ва пешниҳодҳои шумо ба инобат гирифта мешаванд!

Манбаъ: linux.org.ru

Илова Эзоҳ