
तेज़ और सुरक्षित initramfs जनरेटर

बूस्टर शुरुआती बूट को हल्का, तेज़ और अधिक भरोसेमंद बनाता है। यह कॉम्पैक्ट initramfs इमेज बनाता है जो आपके Linux सिस्टम को फर्मवेयर से वास्तविक रूट फाइलसिस्टम तक न्यूनतम झंझट और मजबूत एन्क्रिप्टेड-बूट समर्थन के साथ ले जाती है।
एक बड़ा सामान्य प्रारंभिक यूज़रस्पेस पैक करने के बजाय, बूस्टर पता लगाता है कि आपकी मशीन को वास्तव में क्या चाहिए और उसके चारों ओर एक केंद्रित इमेज बनाता है। परिणाम एक पतली बूट इमेज है जिसमें ड्राइवर, अनलॉक टूल, फाइलसिस्टम समर्थन और रिकवरी पथ शामिल हैं जिनकी आपके होस्ट को आवश्यकता है, बिना हर रीबूट में एक किचन सिंक ले जाए।
बूस्टर एक सरल वादे पर बनाया गया है: प्रारंभिक बूट तेज़, स्पष्ट, सुरक्षित और संचालित करने में सुखद होना चाहिए।
मुख्य विशेषताएं:
systemd-cryptenroll TPM2 और FIDO2 टोकन को समर्थन दें, जिसमें बूस्टर के प्लगइन पथ के माध्यम से मूल FIDO2 समर्थन शामिल है।बूस्टर एन्क्रिप्टेड लैपटॉप, डेवलपर वर्कस्टेशन, रिमोट रिकवरी जरूरतों वाले सर्वर, न्यूनतम Linux सिस्टम और ऐसे बूट सेटअप के लिए एक मजबूत विकल्प है जो सालों बाद कॉन्फ़िगर करने के बाद भी समझने योग्य रहना चाहिए।
बूस्टर फुल-डिस्क एन्क्रिप्शन को एक प्रथम श्रेणी के वर्कफ़्लो के रूप में मानता है, न कि ऐड-ऑन के रूप में।
यह कर्नेल पैरामीटर, /etc/crypttab, GPT ऑटोडिस्कवरी, LUKS कंटेनरों के सीधे root= संदर्भ, कीफ़ाइल, डिटैच्ड हेडर और हार्डवेयर-समर्थित टोकन से LUKS डिवाइस अनलॉक कर सकता है।
समर्थित अनलॉक शैलियों में शामिल हैं:
systemd-cryptenroll TPM2 और FIDO2 टोकन।बूस्टर का टोकन ऑर्केस्ट्रेशन इस तरह डिज़ाइन किया गया है कि एन्क्रिप्टेड बूट पॉलिश लगे। गैर-इंटरैक्टिव टोकन पृष्ठभूमि में दौड़ सकते हैं, PIN-आधारित टोकन को एक निर्धारित क्रम में संकेत दिया जाता है, और नियमित पासफ़्रेज़ प्रॉम्प्ट एक फ़ॉलबैक के रूप में प्रकट होता है, न कि पूरे बूट को हमेशा के लिए अवरुद्ध करने के लिए।
हाल के FIDO2 सुधार अनुभव को और अधिक सहज बनाते हैं:
enable_fido2: true से सक्षम किया जा सकता है।fido2-device= के साथ एक crypttab प्रविष्टि बूस्टर को FIDO2 प्लगइन को स्वचालित रूप से बंडल करने का कारण बना सकती है।डिफ़ॉल्ट रूप से, बूस्टर एक होस्ट-विशिष्ट इमेज बनाता है। यह वर्तमान सिस्टम को देखता है, इसे बूट करने के लिए आवश्यक मॉड्यूल और टूल शामिल करता है, और अनावश्यक भागों को छोड़ देता है। इससे इमेज का ऑडिट करना आसान हो जाता है, जनरेट करना तेज़ हो जाता है, और बूट के दौरान निष्पादित करना तेज़ हो जाता है।
जब आपको एक व्यापक इमेज की आवश्यकता होती है, तो --universal में रेस्क्यू परिदृश्यों, पोर्टेबल मीडिया या ऐसे सिस्टमों के लिए मॉड्यूल का एक व्यापक सेट शामिल होता है जहां हार्डवेयर बदल सकता है।
बूस्टर व्यावहारिक वास्तविक दुनिया के बूट लेआउट का समर्थन करता है, जिसमें शामिल हैं:
UUID=, LABEL=, PARTUUID=, PARTLABEL=, HWPATH=, WWID=, या /dev/... द्वारा डिवाइस संदर्भ।/etc/crypttab से कई एन्क्रिप्टेड मैपिंग।जब कुछ गलत होता है, तो बूस्टर आपको यह देखने के लिए उपयोगी तरीके देता है कि क्या हुआ।
विस्तृत बूट लॉग के लिए booster.log=debug,console का उपयोग करें, आपातकालीन शेल के लिए busybox जोड़ें, या बूट न करने योग्य मशीन से लॉग पुनर्प्राप्त करने के लिए नेटवर्क समर्थन सक्षम करें।
बूस्टर में इमेज-निरीक्षण कमांड भी शामिल हैं ताकि आप रीबूट करने से पहले सत्यापित कर सकें कि क्या बनाया गया था:
booster ls /boot/booster-linux.img
booster cat /boot/booster-linux.img /init
booster unpack /boot/booster-linux.img /tmp/booster-image
आधिकारिक पैकेज स्थापित करें:
pacman -S booster
पैकेज /boot/ में बूस्टर इमेज बनाता है:
$ ls -lh /boot/booster-*.img
-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img
बूस्टर स्थापित करें:
xbps-install -S booster
फिर पहले से स्थापित कर्नेल के लिए initramfs को पुनर्जीवित करें:
xbps-reconfigure -f linux
बूस्टर स्थापित करें:
apk add booster
फिर सेटअप-विशिष्ट बूटलोडर निर्देशों के लिए /usr/share/doc/booster/README.alpine पढ़ें।
आप सीधे एक इमेज भी बना सकते हैं:
booster build /boot/booster-linux.img
व्यापक हार्डवेयर सेट वाली अधिक पोर्टेबल इमेज के लिए:
booster build --universal /boot/booster-linux.img
इमेज बनाने के बाद, अपने बूटलोडर को इसकी ओर इंगित करें। पूर्ण कॉन्फ़िगरेशन विवरण के लिए, बूस्टर मैनपेज देखें।
होस्ट-विशिष्ट इमेज बनाएं:
booster build booster.img
एक विशिष्ट कर्नेल के लिए इमेज बनाएं:
booster build --kernel-version 6.8.9-arch1-1 /boot/booster-linux.img
जनित इमेज का निरीक्षण करें:
booster ls /boot/booster-linux.img
/etc/booster.yaml बदलने के बाद पैक की गई इमेज को पुनर्जीवित करें:
/usr/lib/booster/regenerate_images
यूनिफाइड कर्नेल इमेज जनरेट करें जब आपकी वितरण systemd-ukify प्रदान करता है:
/usr/lib/booster/regenerate_uki build /boot/EFI/Linux
बूस्टर कॉन्फ़िगर करने के लिए जानबूझकर छोटा है। एक साधारण एन्क्रिप्टेड लैपटॉप को अक्सर किसी बड़े कॉन्फ़िग फ़ाइल की आवश्यकता नहीं होती है। अपने बूट पथ की आवश्यकता वाली सुविधाएँ ही जोड़ें:
compression: zstd
vconsole: true
enable_fido2: true
enable_lvm: true
enable_mdraid: true
SSH पर रिमोट अनलॉक के लिए:
network:
dhcp: on
ssh_host_key: /etc/booster/ssh_host_ed25519_key
ssh_authorized_keys: /etc/booster/authorized_keys
ssh_listen: :22
जब कई हार्डवेयर अनलॉक विधियाँ पंजीकृत हों तो आसान टोकन ऑर्डरिंग के लिए:
serialize_tokens:
enabled: true
clevis_timeout: 45s
tpm2_timeout: 15s
fido2_timeout: 30s
प्लायमाउथ स्प्लैश समर्थन के लिए:
enable_plymouth: true
modules_force_load: amdgpu
अपनी कर्नेल कमांड लाइन में quiet splash का उपयोग करें, और ग्राफिकल स्प्लैश चाहने पर booster.log=console से बचें।
पूर्ण उपयोगकर्ता दस्तावेज़ीकरण बूस्टर मैनपेज में है। यह कवर करता है:
/etc/booster.yaml विकल्प।/etc/crypttab एकीकरण।बूस्टर उसी समस्या स्थान में mkinitcpio और dracut के रूप में रहता है। इसका फोकस एक तेज़, कॉम्पैक्ट, Go-आधारित initramfs जनरेटर है जिसमें मजबूत एन्क्रिप्टेड-बूट एर्गोनॉमिक्स और स्वचालित होस्ट डिस्कवरी है।
परियोजना के तीन मुख्य भाग हैं:
init - प्रारंभिक यूज़रस्पेस प्रोग्राम जो बूट के दौरान चलता है।generator - वह टूल जो initramfs इमेज बनाता है।tests - जनित इमेज के लिए QEMU-आधारित एकीकरण परीक्षण।मानक Go टूलिंग के साथ बनाएं:
go build ./...
यूनिट टेस्ट चलाएं:
go test ./generator ./init
पूर्ण परीक्षण सूट चलाएं:
go test ./...
./tests पैकेज में QEMU एकीकरण परीक्षण हैं और होस्ट को आवश्यक बूट और वर्चुअलाइजेशन टूलिंग स्थापित करने की आवश्यकता है।
इस परियोजना पर काम ट्विटर के हैक वीक के दौरान शुरू हुआ। ओपन-सोर्स विकास का समर्थन करने के लिए ट्विटर को बहुत-बहुत धन्यवाद, और विशेष धन्यवाद इयान ब्राउन को।
बूस्टर की वास्तुकला माइकल स्टैपलबर्ग के distri से प्रेरित थी, और प्रारंभिक संस्करण ने distri के initramfs जनरेटर से कई विचार उधार लिए।
LICENSE देखें।