RAM में Linux: debirf way
क्या आप आजकल पूर्ण डिस्क गति करना चाहते हैं, है न? आइए संशोधित करें कि यह 2018 में संस्करण और स्वचालन के साथ कैसे किया जा सकता है।
मॉडरेटर से: सैंडबॉक्स में अंग्रेजी का एक लेख हमारे सामने आया। हमने इसे पढ़ा और इसे शुक्रवार के प्रयोग के रूप में प्रकाशित करने का निर्णय लिया। कड़ाई से न्याय न करें, सभी को शांति और खुश शुक्रवार! चलो एक साथ आओ! संक्षेप में, औआ दिल के नीचे से।
चैंज:
- लेख की भाषा अंग्रेजी में सही है
- नमूना भंडार जीथब में पेश किया गया
- जोड़ा गया परीक्षा परा
- जोड़ा जाता है
इस ट्यूटोरियल को चलाने से पहले आपको पता होना चाहिए:
- linux आवश्यक है
- बैश और श के बीच मुख्य अंतर (श पर लिखा डिबिरफ, इसलिए मैं शैली का पालन करने की सलाह देता हूं)
- usb key को फॉर्मेट कैसे करें (किसी भी तरह से)
- आपके हार्डवेयर के लिए ड्राइवरों की क्या आवश्यकता है (या आप इसे dmesg के माध्यम से डीबग कर सकते हैं। lspci)
- स्क्रिप्टिंग के माध्यम से अपने कार्य के उद्देश्यों को कैसे प्राप्त करें
आप प्रतिस्थापित कर सकते हैं:
- usb लेटर /dev/sdbलेकर किसी और (/dev/sdd)
- वर्किंग डायरेक्टरी /root/Projects/debirf/से आपकी पसंद (/home/username/Documents/debirf)
- /media/root/8B46-1189से- /media/username/myflashdrive
तैयारी के लिए कदम
वे (वैकल्पिक) बुनियादी स्थापना के लिए गैर-मुक्त घटकों को सक्षम करते हैं। इसके अलावा, मुझे लगता है, आपको गैर-मुक्त भंडार की आवश्यकता होगी।
- फ़ाइल का ओपन लाइन नंबर 107 /usr/bin/debirfजैसेnano +107 $(which debirf)/usr/bin/debirfnano +107 $(which debirf)
- फ़ंक्शन create_debootstrap
- local OPTS="तरह लाइन खोजें- local OPTS="
- जोड़ें --components main,contrib,non-freeकोष्ठक में--components main,contrib,non-free
शुरू करने के लिए:
आइए कल्पना करें, हमारी फ्लैश ड्राइव:
- तेज़ होना चाहिए, इसलिए 8+ वर्ग का उपयोग करने की अनुशंसा की जाती है, या बूट करने में पर्याप्त समय लगेगा
- / देव / sdb
- स्वरूपित
- /media/root/8B46-1189पर घुड़सवार।
- हमारी कार्य निर्देशिका /root/Projects/debirf/
डेबिरफ स्थापित करें
 apt-get install -yq debirf mtools genisoimage 
- डेबिट के माध्यम से आईएसओ बनाने के लिए आवश्यक mtools (काम नहीं, लेकिन आवश्यक)
- वास्तविक काम करने के लिए आवश्यक जीनोइमेज (वैकल्पिक)
डिबरीफ वर्किंग डायरेक्टरी तैयार करें
 mkdir -p /root/Projects/debirf tar xzf /usr/share/doc/debirf/example-profiles/rescue.tgz -C /root/Projects/debirf cd /root/Projects/debirf/rescue 
 DEBIRF_LABEL="debirf-rescue" DEBIRF_SUITE=stretch DEBIRF_DISTRO=debian DEBIRF_MIRROR=http://ftp.ru.debian.org/debian/ 
LiR बनाएं
- रन debirf make .और चले जाओ। शीर्ष हार्डवेयर पर इसे कम से कम 15 मिनट में कई बार चाहिए।
- debirf makeiso .चलाएं- debirf makeiso .iso काम नहीं करने के लिए (grub.cfg फ़ाइल के लिए आवश्यक)
इसका परीक्षण करें
- Qemu स्थापित करें
 - linux के लिए: apt-get install -yq qemu
- macos के लिए: brew install qemu
 
- यह तय करें कि वीएम के लिए कौन से संसाधन आवंटित किए जाएंगे
 - -smp 11 वास्तविक कर्नेल
- -m 1G1G मेमोरी
 
- अतिरिक्त
 - -nographicVM को वर्तमान टर्मिनल विंडो में लॉन्च करेगा
- -enable --enable-kvmहार्डवेयर त्वरण को सक्षम करता है
- -kernel vmlinuz-*परमिट सीधे कर्नेल पास करें
- -initrd *.cgzinitramfs के साथ .cgz फ़ाइल तक सीधी पहुँच
- -appendकर्नेल- -appendबायपास करने की अनुमति देता है, यहां ग्राफ़िकल शेल के बिना चलने के लिए पैरामीटर हैं
 
वर्चुअल मशीन शुरू करने का आदेश:
 qemu-system-x86_64 --enable-kvm -kernel vmlinuz-* -initrd *.cgz -append "console=tty0 console=ttyS0,115200n8" -m 1G -smp 1 -net nic,vlan=0 -net user -nographic 
परीक्षण का नमूना

फ्लैश ड्राइव पर ग्रब स्थापित करें और उस पर LiR कॉपी करें
मैं आपको बायोस विरासत बूट और पैकेज ग्रब-पीसी का उपयोग करने की सलाह देता हूं। UEFI के साथ परीक्षण नहीं किया गया है, लेकिन काम करना चाहिए। अगली पंक्तियाँ होंगी:
- माउंट पॉइंट बनाएं (GUI- पावर्ड सिस्टम पर ऑटो-माउंट सक्षम हो, इसकी आवश्यकता नहीं है)
- आरोह बिंदु पर माउंट करने के लिए usb कुंजी माउंट करें (GUI- पावर्ड सिस्टम सक्षम ऑटो-माउंट पर जिसकी आवश्यकता नहीं है)
- ग्रब स्थापित करें
- ग्रब फ़ाइल की प्रतिलिपि बनाएँ
- प्रतिलिपि initramfs (सिस्टम)
- कॉपी vmlinuz (कर्नेल)
- USB कुंजी को अनमाउंट करें
- माउंट प्वाइंट हटा दें
 mkdir -p /media/root/8B46-1189 mount /dev/sdb1 /media/root/8B46-1189 grub-install --boot-directory=/media/root/8B46-1189/boot /dev/sdb cp /root/Projects/debirf/rescue/iso/boot/grub/grub.cfg /media/root/8B46-1189/boot/grub/ cp /root/Projects/debirf/rescue/*.cgz /media/root/8B46-1189 cp /root/Projects/debirf/rescue/vmlinuz-* /media/root/8B46-1189 umount /media/root/8B46-1189 rm -rf /media/root/8B46-1189 
बूट करने योग्य आईएसओ (वैकल्पिक) बनाएं
- डाउनलोड
- अलग-थलग विन्यास फ़ाइल बनाएँ
- आइसो बनाएँ
 mkdir -p rescue/iso/isolinux/ wget -O rescue/iso/isolinux/isolinux.bin 'http://mirror.yandex.ru/centos/7/os/x86_64/isolinux/isolinux.bin' cat << EOF > rescue/iso/isolinux/isolinux.cfg TIMEOUT 5 DEFAULT lir LABEL lir LINUX /vmlinuz-4.9.0-7-amd64 INITRD /debirf-rescue_stretch_4.9.0-7-amd64.cgz EOF genisoimage -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -l -input-charset default -V LiR -A "Linux in RAM" -o rescue/rescue.iso rescue/iso/ 
परिणाम की जाँच करें
- QEMU हाइपरविजर apt-get install -yq qemu
- रन qemu-system-x86_64 -enable-kvm -m 512 -hda /dev/sdb
- यदि पिछली कमांड विफल हो जाती है, तो -enable-kvmहटा दें
- VM को शुरू किया जाएगा, USB कुंजी से बूट किया जाएगा
- आपको दो मेनू आइटम, अंत में अंतर: कंसोल और सीरियल देखना होगा। पहली प्रविष्टि का चयन करें।
- ~ मिनट में आपको कई लाइनें दिखाई देंगी। समाप्त होने के बाद - स्वागत संदेश देखने के लिए एंटर दबाएं
- लॉगिन: रूट, कोई पासवर्ड नहीं
इसे कस्टमाइज़ करें: कस्टम डीबियर मॉड्यूल बनाएँ
मॉड्यूल - LiR बनाने के दौरान चलने के लिए निष्पादन योग्य श स्क्रिप्ट
- मॉड्यूल फ़ाइल बनाएँ
- फ़ाइल के नामों का क्रम महत्वपूर्ण है। फ़ाइल networkमें रिज़ॉल्विंग फ़ाइल सिस्टम-सॉल्यूशन में बदल जाएगी, और आप नेटवर्क के साथ काम नहीं कर सकते;
- 1 से 3 तक की लाइनें मौजूद होनी चाहिए, लाइन 3 में फ़ाइल का नाम मौजूद होना चाहिए
- यदि आप पैकेज स्थापित करना चाहते हैं - निर्माण का उपयोग करें #DEBIRF_PACKAGE>+
- अगर आप $DEBIRF_ROOTसाथ काम करना चाहते हैं -$DEBIRF_ROOTउपयोग करें
- यदि आप fakeroot में कमांड चलाना चाहते हैं - debirf_execउपयोगdebirf_exec
नमूना:
 cat <<< EOF > rescue/modules/mi  
और फ़ाइल बचाव / मॉड्यूल / नेटवर्क में debirf_exec systemctl enable wpa_supplicant@wlp1s0.service systemd-networkd.service systemd-resolved.service साथ लाइन को बदलें।
बोनस: LiR पर lxc
मॉड्यूल बचाव / मॉड्यूल / lxc