जेंटू लाइव सीडी से आर्क को कैसे काटें?


1

मेरे पास 2 ओएस विभाजन के साथ एक लैपटॉप है: विंडोज 10 के लिए 1, आर्क लिनक्स के लिए 1। बूटलोडर विंडोज एक है, इसलिए मैं आर्क शुरू नहीं कर सकता। अब मेरा विंडोज अचानक टूट गया, इसलिए मेरा लैपटॉप अब सामान्य रूप से स्टार्टअप नहीं कर सकता है।
मेरे पास जेंटू लाइव सीडी भी है। आर्क नहीं।
जलने में सक्षम कंप्यूटर के पास कोई कंप्यूटर नहीं हैं (एक आर्क सीडी बनाने के लिए), मेरे लैपटॉप से ​​अलग (जिसे स्टार्ट-अप करने के लिए जेंटू डिस्क की आपूर्ति करने की आवश्यकता है, और वह डिस्क फिर से लिखने योग्य नहीं है)।

मैं अपने आर्क लिनक्स इंस्टॉलेशन में केवल इस जेंटू लाइव सीडी का उपयोग कैसे करूं?


1
@Seth बूटलोडर को ठीक करने के लिए, उसे चुराने की जरूरत है, इसलिए वह चला सकता है grub-installया जो भी हो।
डैनियल बी

दो अवलोकन: आपको बूट करने के लिए सीडी की आवश्यकता नहीं है - आप इसके बजाय यूएसबी ड्राइव से बूट कर सकते हैं; यह भी देखें कि क्या आप boot-repairजेंटू के लिए प्राप्त कर सकते हैं - यह ग्रब रिकवरी की प्रक्रिया को अविश्वसनीय रूप से सरल बनाता है।
AFH

जवाबों:


2

यह वास्तव में आसान है। कट्टर chroot स्क्रिप्ट करता है निम्नलिखित :

chroot_setup() {
  CHROOT_ACTIVE_MOUNTS=()
  [[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap'
  trap 'chroot_teardown' EXIT

  chroot_maybe_add_mount "! mountpoint -q '$1'" "$1" "$1" --bind &&
  chroot_add_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
  chroot_add_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
  ignore_error chroot_maybe_add_mount "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
      efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
  chroot_add_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
  chroot_add_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
  chroot_add_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
  chroot_add_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
  chroot_add_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
}

... और फिर प्रतियां resolv.conf

तो आपको इसकी आवश्यकता है:

mount proc "$chroot_directory/proc" -t proc -o nosuid,noexec,nodev
mount sys "$chroot_directory/sys" -t sysfs -o nosuid,noexec,nodev,ro
mount udev "$chroot_directory/dev" -t devtmpfs -o mode=0755,nosuid
mount devpts "$chroot_directory/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec
mount shm "$chroot_directory/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev
mount run "$chroot_directory/run" -t tmpfs -o nosuid,nodev,mode=0755
mount tmp "$chroot_directory/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid

इसके अलावा, यदि आप EFI- बूटेड हैं:

mount efivarfs "$chroot_directory/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev

/etc/resolv.confजरूरत पड़ने पर कॉपी भी करें या आप DNS नामों को हल करने में सक्षम नहीं होंगे।

वैकल्पिक रूप से, आप जेंटू चेरोट प्रक्रिया का भी पालन कर सकते हैं :

mount -t proc proc "$chroot_directory/proc"
mount --rbind /sys "$chroot_directory/sys"
mount --make-rslave "$chroot_directory/sys"
mount --rbind /dev "$chroot_directory/dev"
mount --make-rslave "$chroot_directory/dev"

उसके बाद, बस चलाएं chroot "$chroot_directory"या शायद chroot "$chroot_directory" /usr/bin/bashयदि आपका वर्तमान शेल उस निर्देशिका के अंदर उपलब्ध नहीं है जो आप दर्ज कर रहे हैं।


जब आपके द्वारा दिए गए विकल्पों में से कोई भी चल रहा है, तो चेरोट कमांड रिटर्न करता है chroot: failed to run command '/bin/bash': No such file or directory, यहां तक ​​कि जब /bin/bashचुरोट के लिए एक तर्क के रूप में आपूर्ति की जाती है।
साइमन कलेवर

आह बिल्कुल। यह / usr / bin / bash में स्थित हो सकता है। मैं जवाब की जाँच और अद्यतन करूँगा।
डेनियल बी

/bin/bashलाइव सीडी पर मौजूद है।
सिमोन कलेवर

इसे चिरोट निर्देशिका में मौजूद होना चाहिए, जैसे मैंने लिखा था। यह निर्देशिका में प्रवेश कर रहा है और फिर उस निर्देशिका के सापेक्ष फ़ाइल निष्पादित कर रहा है।
डेनियल बी

मेरे आर्क सिस्टम पर, फ़ाइल हार्ड-लिंक्ड दोनों स्थानों में मौजूद है।
डैनियल बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.