RAM में Linux: debirf way 2018

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/debirf nano +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 

और /root/Projects/debirf/rescue/debirf.conf कॉन्फ़िगर करें


 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 1 1 वास्तविक कर्नेल
    • -m 1G 1G मेमोरी
  • अतिरिक्त
    • -nographic VM को वर्तमान टर्मिनल विंडो में लॉन्च करेगा
    • -enable --enable-kvm हार्डवेयर त्वरण को सक्षम करता है
    • -kernel vmlinuz-* परमिट सीधे कर्नेल पास करें
    • -initrd *.cgz initramfs के साथ .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 

परीक्षण का नमूना


asciicast


फ्लैश ड्राइव पर ग्रब स्थापित करें और उस पर 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 #!/bin/sh -e # debirf module: mi # prepare to run on mi notebook # # This script were written by # Eduard Generalov <eduard@generalov.net> # # They are Copyright 2018, and published under the MIT, #DEBIRF_PACKAGE>+firmware-iwlwifi #DEBIRF_PACKAGE>+firmware-misc-nonfree #DEBIRF_PACKAGE>+wpasupplicant echo 'iwlwifi' >> $DEBIRF_ROOT/etc/modules cat << EOF > $DEBIRF_ROOT/etc/wpa_supplicant/wpa_supplicant-wlp1s0.conf ctrl_interface=/run/wpa_supplicant update_config=1 network={ ssid="WiFi_SSID" psk="WIFIPASSWORD" } EOF cat << EOF > $DEBIRF_ROOT/etc/systemd/network/wireless.network [Match] Name=wlp1s0 [Network] DHCP=ipv4 [DHCP] RouteMetric=20 EOF 

और फ़ाइल बचाव / मॉड्यूल / नेटवर्क में debirf_exec systemctl enable wpa_supplicant@wlp1s0.service systemd-networkd.service systemd-resolved.service साथ लाइन को बदलें।


बोनस: LiR पर lxc


मॉड्यूल बचाव / मॉड्यूल / lxc


 #!/bin/sh -e # debirf module: lxc # prepare lxc # # This script were written by # Eduard Generalov <eduard@generalov.net> # # They are Copyright 2018, and published under the MIT, #DEBIRF_PACKAGE>+lxc mkdir -p $DEBIRF_ROOT/root/.ssh/ ssh-keygen -b 2048 -t rsa -f $DEBIRF_ROOT/root/.ssh/id_rsa -q -N "" cp $DEBIRF_ROOT/root/.ssh/id_rsa $DEBIRF_ROOT/root/.ssh/authorized_keys chmod 400 $DEBIRF_ROOT/root/.ssh/authorized_keys debirf_exec systemctl enable lxc-net cat << EOF > $DEBIRF_ROOT/etc/lxc/default.conf lxc.network.type = veth lxc.network.link = lxc lxc.network.name = eth0 lxc.network.flags = up lxc.network.hwaddr = 00:FF:AA:FF:xx:xx lxc.mount.entry=/var/cache/apt var/cache/apt none bind,rw 0 0 lxc.mount.entry = /root/.ssh/ root/.ssh none bind,create=dir 0 0 EOF cat << EOF > $DEBIRF_ROOT/etc/default/lxc-net USE_LXC_BRIDGE="true" LXC_BRIDGE="lxc" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.0.3.0/24" LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" LXC_DHCP_MAX="253" LXC_DHCP_CONFILE="" LXC_DOMAIN="lxc" EOF 

Source: https://habr.com/ru/post/hi420501/


All Articles