Стварэнне загрузных выяў boobstrap v1.0


Стварэнне загрузных выяў boobstrap v1.0

Жадаю прадставіць вашай увазе фрэймворк пад назовам boobstrap, напісаны на POSIX shell, для стварэння загрузных выяў з дыстрыбутывамі GNU/Linux. Фрэймворк дазваляе прайсці ўвесь хай у тры простых кроку: ад разгортвання сістэмы ў chroot, стварэння initramfs-выявы які ўключае ў сябе сістэму з chroot, і ў канчатковым рахунку загрузнай ISO-выявы. boobstrap уключае ў сябе тры ўтыліты mkbootstrap, mkinitramfs і mkbootisofs адпаведна.

mkbootstrap усталёўвае сістэму ў асобную дырэкторыю, маецца натыўная падтрымка CRUX, а ў выпадку Arch Linux / Manjaro і дыстрыбутываў на аснове Debian павінны быць скарыстаны іншыя ўтыліты pacstrap, basestrap і debootstrap адпаведна.

mkinitramfs стварае initramfs-выява, вы можаце выкарыстоўваць усталяваную сістэму ў дырэкторыі як «оверлей», сціснуты пры дапамозе SquashFS, альбо загрузіўшыся ў сістэму працаваць наўпрост у tmpfs. Так напрыклад, каманда mkinitramfs `mktemp -d` -overlay "arch-chroot/" "/home", сціснутых пры дапамозе SquashFS, які далей вы можаце загружаць праз PXE у tmpfs, альбо стварыць загрузны ISO выява з гэтым initrd.

mkbootisofs стварае BIOS / UEFI загрузны ISO-выява з названай дырэкторыі. У дырэкторыю дастаткова пакласці /boot/vmlinuz і /boot/initrd.

boobstrap не выкарыстоўвае busybox, а для стварэння працоўнага асяроддзя initramfs капіюецца мінімальны набор праграм з выкарыстаннем ldd, неабходных для загрузкі і пераключэнні ў сістэму. Спіс праграм для капіравання, як і ўсё астатняе, можна наладзіць праз файл канфігурацыі /etc/boobstrap/boobstrap.conf. Гэтак жа, вы можаце ўсталяваць любы мінімалістычны дыстрыбутыў у асобны chroot/, з якога далей стварыць ужо паўнавартаснае initramfs асяроддзе. У якасці такога мінімалістычнага, але пры гэтым паўнавартаснага асяроддзя прапануецца выкарыстоўваць шаблон "crux_gnulinux-embedded", які пасля xz займае кампрамісныя 37мб. busybox жа, акрамя свайго памеру, 3-5мб супраць 30-50мб паўнавартаснага GNU/Linux асяроддзі, ніякіх пераваг больш не прапануе, такім чынам выкарыстанне busybox у праекце не бачыцца мэтазгодным.

Як хутка праверыць працаздольнасць і пачаць працу? Усталюйце і запусціце.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Гэтак жа вам неабходна даўсталяваць залежнасці, а менавіта: cpio, grub, grub-efi, dosfstools, xorriso. Выкарыстанне squashfs-tools не абавязкова, вы можаце працаваць у tmpfs пры які адпавядае аб'ёме аператыўнай памяці. У выпадку, калі ў сістэме чагосьці бракуе, boobstrap аб гэтым паведаміць пры запуску.

Для спрашчэння стварэння канфігурацый boobstrap прапануе выкарыстоўваць "шаблоны" і "сістэмы", сутнасць якіх складаецца ў тым, каб выкарыстоўваць "шаблоны" (bootstrap-templates/) для хуткай усталёўкі сістэм з файла, а непасрэдна "сістэмы" (bootstrap-systems/). выкарыстоўваць для налады канчатковых канфігурацый.

Так, напрыклад, запуск скрыпту boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild усталюе мінімальную канфігурацыю сістэмы CRUX GNU/Linux і захавае яе ў файле crux_gnulinux-embedded.rootfs, далей вы запускаеце boobstrap/ru. загрузіць першасную канфігурацыю са згаданага файла, выканае ўсю неабходную наладу і падрыхтуе загрузны ISO. Гэта зручна, калі напрыклад, мноства сістэм выкарыстоўваюць аднатыпную канфігурацыю: каб кожны раз не апісваць аднолькавы набор пакетаў, вы выкарыстоўваеце адзін шаблон, на аснове якога ўжо і ствараеце загрузныя выявы сістэм з канчатковай канфігурацыяй.

Дзе ўсё гэта выкарыстоўваць?

Вы наладжваеце сістэму ў файле адзін раз і запускам яго выконваеце яе зборку і/ці абнаўленне. Сістэма працуе ў tmpfs, што робіць яе аднаразовай, па-сутнасці. У выпадку выхаду сістэмы са строю, вы адным націскам кнопкі Reset вяртаецеся ў зыходны стан. Вы можаце спакойна выканаць rm -rf/.

Вы можаце наладжваць канфігурацыі ўсіх вашых сістэм лакальна, ствараць выявы, тэставаць іх у віртуальнай машыне ці асобным «жалезе», далей загружаць іх на выдалены сервер і запускам усяго двух каманд. kexec -l сістэму цалкам, перазагружаючы яе ў tmpfs.

Аналагічнай выявай вы можаце перавесці ўсе сістэмы, напрыклад на VDS, на працу ў tmpfs, а дыск /dev/vda зашыфраваць і выкарыстоўваць толькі пад дадзеныя, без неабходнасці трымаць аперацыйную сістэму на ёй. Адзінай "кропкай уцечкі інфармацыі" у такім выпадку стане толькі "халодны дамп" памяці вашай віртуальнай машыны, а ў выпадку кампраметацыі сістэмы (напрыклад, падборам пароля ssh або ўразлівасці ў exim), вы можаце загрузіць новы ISO праз "панэль кіравання" вашага правайдэра, каб ізноў вярнуць VDS у лад, не забыўшыся пры гэтым, адрэдагаваць канфігурацыю сістэмы зачыніўшы ўсе ўразлівасці. Гэта хутчэй, чым пераўсталёўка, наступная настройка і/або аднаўленне з бэкапу, бо па-сутнасці, загружаны ISO з вашай сістэмай гэта і ёсць ваш бэкап. "Сем бед - адзін Reset."

У рэшце рэшт, вы можаце стварыць любы дыстрыбутыў пад свае задачы, запісаць яго на USB-назапашвальнік і працаваць у ім, абнаўляючы па меры патрэбы і зноў перазапісваючы яго на USB-назапашвальнік. Усе дадзеныя захоўваць у "аблоках". Больш не трэба хвалявацца за захаванасць сістэмы і рабіць яе бэкап, калі сістэма, паўтаруся, у сутнасці стала «аднаразовай».

Вашы пажаданні, прапановы і заўвагі вітаюцца.

У рэпазітары па спасылцы далей падрабязны README-файл (на англійскай) з апісаннем кожнай утыліты і прыклады выкарыстання, гэтак жа існуе падрабязная дакументацыя на рускай і гісторыя развіцця, даступныя па спасылцы: Комплекс загрузных скрыптоў boobstrap.

Крыніца: linux.org.ru

Дадаць каментар