/ गाय के विहित पथ प्राप्त करने में विफल


42

मैं काफी समय से Ubuntu 12.10 को स्थापित करने की कोशिश कर रहा हूं, और एक-एक करके बाधाएं पार कर रहा हूं। अब मैं इस प्रकार है।

मुझे एक पीसी और 10 जीबी एचडीडी मिला है जो पूरी तरह से उबंटू को समर्पित होगा ताकि वुबी और डुअल बूट का कोई विकल्प न हो।

मैं डीवीडी से स्थापित करने की कोशिश कर रहा था, लेकिन यह "आउट ऑफ फ्रीक्वेंसी" त्रुटि पर अटक रहा है। इसलिए मुझे USB बूट विकल्प के लिए अनुकूलित करना पड़ा। लेकिन मेरा पीसी यूएसबी नॉन बूटेबल है, इसलिए वर्कअराउंड "प्लॉप बूट मैनेजर" है। इसलिए मैं स्थापना प्रक्रिया निम्नानुसार कर रहा हूं:

  1. एक सीडी ड्राइव से शुरू हो रहा है जो प्लॉप स्थापित किया जा रहा है।
  2. plop विकल्पों में USB बूट के लिए चयन।
  3. USB से बूटिंग शुरू होती है।
  4. मॉनिटर अंततः "आउट ऑफ फ्रीक्वेंसी" त्रुटि देता है
  5. टर्मिनल प्राप्त करने के लिए Shift+ Alt+ दबाएँ F1
  6. साथ में ग्रब खोलें sudo nano /etc/default/grub
  7. आवश्यक परिवर्तन करें।
  8. sudo update-grub

अब यहाँ मुझे निम्नानुसार त्रुटि हो रही है:

/usr/sbin/grub-probe:error:failed to get canonical path of /cow.

मेरा सिस्टम है

P4 3.06 GHz, 1 GB RAM, 10 GB HDD बिना OS वाला, CRT lg StudioWorks (7 साल पुराना) की निगरानी करें। मोबो मरकरी P4 266a NDMx (865 समतुल्य)। पूरी प्रणाली पूरी तरह से XP के तहत काम करने की स्थिति में है, लेकिन यह USB गैर बूट करने योग्य है, और अन्य सभी डिवाइस पूरी तरह से काम कर रहे हैं।

मुझे आगे क्या करना चाहिये?


क्या आपके कंप्यूटर में Ubuntu को चलाने के लिए अनुशंसित न्यूनतम सिस्टम आवश्यकताएँ हैं? मुझे 1GB से कम रैम वाली मशीनों पर 12.04 स्थापित करने में समस्या हुई है।
CSCameron

हां, अब मैंने सवाल करने के लिए अपने सिस्टम विनिर्देश को जोड़ दिया है।
ulkaNCST

askubuntu.com/questions/207663/… एक कोशिश के काबिल हो सकता है।
रिनजविंड

5
सबसे पहले कुछ फ़ोल्डर के लिए अपनी हार्ड ड्राइव माउंट, कहते हैं /mntऔर उसके बाद chrootकरने के लिए /mnt
हरा

जवाबों:


29

उबंटू लाइव सीडी से बूट करने के बाद (14.04 और 16.04 को कोशिश की गई) मैं इस समस्या के आसपास काम करने में सक्षम था, अपडेट-ग्रुब चुरोट 'को ग्रब पार्टीशन में चलाकर। ( /dev/sda1जिस भी विभाजन पर आपने ग्रब स्थापित किया है उसके साथ नीचे सब्स्टीट्यूट करें। सभी कमांड रूट के रूप में हैं।)

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot

2
माउंट चलाने का प्रयास मुझे त्रुटि देता है :, NTFS signature is missing.जो विषम है, क्योंकि यह
एक्सटी

@ केरिन, मैं जोर देता हूं / देव / sda1 मेरे लिए सही विभाजन था, लेकिन जाहिर है कि आपके लिए नहीं, अगर वह मात्रा NTFS है।
नाथन किड

आपका समाधान भ्रामक है। क्या आपको पहले भाग को और दूसरे को पहले के चुरोट के भीतर से चलाने की आवश्यकता है? या आप पहले भाग में जो कुछ भी करते हैं उसे फेंक देते हैं और केवल दूसरे भाग को चलाते हैं? आप दोनों / देव / sda और / dev / sda1 को क्यों माउंट करते हैं?
सेरिन

2
मैंने आपके निर्देशों का पालन किया और मेरे बूट ड्राइव पर /usr/sbin/grub-probe: error: failed to get canonical path of '/boot'.केवल मेरा /bootविभाजन था, बाकी कहीं और था।
स्लेज

1
grub-install /dev/sdaपहले एक अतिरिक्त करना था update-grub, तो यह काम किया!
kiw

10

अपनी उस ड्राइव को खोजें जिसे बूट करना है

mount

या

parted -l

या

fdisk /dev/sda

और विभाजन को सूचीबद्ध करने के लिए पी टाइप करें, टाइप 83 देखें।

(यदि आपको फेडोरा मिल गया है तो आपको कमांड्स "वीजीएस" और "एलवीएस" का उपयोग करना पड़ सकता है और यदि आपको मैड्रिड मिला है तो आपको "कैट / प्रूव / mdstat" या mdadm -A-scan या insmad raid1 या करना पड़ सकता है। insmod raid5 और फिर mdadm -A-scan) और आप / dev / md0 या / dev / mapper / my-vg का उपयोग / dev / sda के बजाय करेंगे

फिर इसे माउंट करने का प्रयास करें

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

क्या यह आपकी ड्राइव है? ठंडा!

grub-install --recheck --root-directory=/mnt /dev/sda 

(या जो भी आपके रूट ड्राइव है / देव ड्राइव के साथ है)

grub-install --recheck --root-directory=/mnt /dev/sda --force

(इसे फोर्स करें अगर यह आपके विभाजन को पसंद नहीं करता है।)

अब इसे ग्रब में बूट करना चाहिए, और आप BIOS सेटअप से राइट बूट ड्राइव को चुनने और चुनने के बाद, या अपने BIOS के आधार पर ESC या F12 दबाकर और क्या आप बहुत जल्दी कर रहे हैं, तब बूट बूट करने के लिए ग्रब कमांड का उपयोग कर सकते हैं। ग्रब प्रॉम्प्ट - आप इसे पूरा करने के लिए टैब को पूरा करने के लिए उपयोग कर सकते हैं यदि यह (hd0,1) नहीं है, लेकिन (hd1,3) या इसके बजाय कुछ और है, लेकिन सावधान रहना, टैब पूरा करना कभी-कभी कुछ सेकंड के लिए लटका देता है अगर ग्रब ड्राइव नहीं पढ़ सकता ।

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

या, उम्मीद है कि आपको अभी भी एक बरकरार grub.cfg फ़ाइल मिल गई है ... या शायद यह काम करेगा:

grub-mkconfig -o /mnt/boot/grub/grub.cfg

1
यह मेरे विभाजन को पसंद नहीं करता -fथा , लेकिन काम नहीं कर रहा था। मुझे इस्तेमाल करना था--force
RM

GRUB से बूट करने के लिए, मेरे सिस्टम पर मुझे ऊपर की तरह बदलना पड़ा: linux /vmlinuz root=/dev/sda1 (यानी रूट फ़ोल्डर) initrd /boot/initrd.img (यानी जोड़ें .img)
वॉर्नर

5

उपरोक्त कोड के आधार पर संशोधित समाधान

ऊपर से समाधान समस्याओं के बिना पूरी तरह से काम नहीं करेगा क्योंकि यह फ़ाइल सिस्टम के / (रूट) में बूट विभाजन को मापता है। यह शिकायत करता है कि / बूट मौजूद नहीं है, ज़ाहिर है। इससे वह समस्या ठीक हो जाएगी:

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2  # inside chroot

जैसा कि आप देख रहे हैं मैंने लाइन ब्रेक भी हटा दिया ताकि सभी के लिए निष्पादित करना आसान हो।

एक और (सरल) समाधान

यदि आपको काम करने में समस्या हो रही है तो आपको / (विभाजन) / (विभाजन) पर बूट विभाजन की नकल करने के लिए देखना चाहिए। इसके लिए उबंटू लाइव बूट डीवीडी के साथ अपना सिस्टम शुरू करें और टर्मिनल खोलें। इसके अंदर टाइप करें:

sudo su
fdisk -l

यह जानने के लिए कि आपके पास कौन से विभाजन हैं। मेरे मामले में sda1 मेरा / बूट विभाजन है जो लगभग 250MB बड़ा है और एक sda5 जो लगभग 500GB है। मैं नीचे दिए गए आदेशों में इन मूल्यों का उपयोग करता हूं:

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

डेटा विभाजन के लिए बूट करने योग्य ध्वज सेट करें और इसे बूट विभाजन के लिए हटा दें:

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

अब आपका कंप्यूटर बूट फ़ाइलों के लिए sda5 के अंदर दिखेगा। चेरोटिंग करने का समय फिर से, इस बार ग्रब के लिए आवश्यक कुछ आवश्यक फ़ोल्डरों के साथ और जो आपके Ubuntu लाइव द्वारा पहले से ही उत्पन्न किए गए हैं:

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

स्थापना समाप्त हो गई। कोई त्रुटि रिपोर्ट नहीं की गई।

यदि आपको कोई संदेश नहीं दिखाई देता है कि grub.cnf फ़ाइल उत्पन्न होती है, तो अपडेट कमांड भी चलाएं:

update-grub2 /dev/sda

अब आप सुरक्षित रूप से रीबूट कर सकते हैं और प्रसिद्ध बूट मेनू को फिर से देख सकते हैं।

यह समाधान केवल वही था जो भौतिक सर्वर से आभासी मशीन में स्थानांतरित होने के बाद मेरे लिए काम कर रहा था। मुझे आशा है कि किसी को यह उपयोगी लगता है!


0

मुझे पता है, यह एक पुरानी समस्या है, लेकिन मुझे टकसाल-लिनक्स के वास्तविक संस्करण (उबंटू-आधारित) के साथ आज भी वही परेशानी थी। मुझे एक बहुत ही सरल समाधान मिला! :-) पहली स्थापना के दौरान इंटरनेट-कनेक्शन बंद कर दें। यह एक गैर संगत grub2 के लोडिंग को रोक देता है। स्थापना समाप्त होने के बाद सभी का अद्यतन करें।


0

वही त्रुटि हुई। एकमात्र समस्या यह थी कि / गाय अभी भी / पर चढ़ाई गई थी।

थोडी सूडो umount / गाय ने चाल चली


-6

यह अपडेट-ग्रब कमांड है जो आपको लाइव सीडी से इसका उपयोग करते समय त्रुटि देगा। मुझे एक समान स्थिति का सामना करना पड़ा जब मैं एक ग्रब बचाव कर रहा था। आपके पास समस्या यह है कि अपडेट-ग्रब और ग्रब-इंस्टॉल कमांड सीधे लाइव सीडी के तहत काम नहीं करते हैं (मुझे पता नहीं क्यों)। इसलिए, आपको / usr / sbin पर जाना होगा जहां कमांड स्थित हैं और उन्हें वहां से निष्पादित करें (यानी ।/update-grub)।


नहीं, आपको हार्ड डिस्क को माउंट करना होगा और उसमें चुरोट लगाना होगा, जैसे @ ग्रीन 7 ने कहा।
Psusi

मेरा तरीका भी काम करता है। कोशिश करो। इसका सरल
एवमश्फाक

1
आपके पास कोई विधि नहीं है। / usr / sbin पहले से ही पथ पर है इसलिए वहाँ cd की कोई आवश्यकता नहीं है। आप लाइव सीडी से सीधे ग्रब-इंस्टॉल और अपडेट-ग्रब नहीं चला सकते हैं (जैसा कि आपने नोट किया) क्योंकि यह मौजूदा सिस्टम को बूट करने के लिए ग्रब स्थापित करने की कोशिश करता है, जो कि हार्ड पर स्थापित ओएस के बजाय लाइव सीडी होगा। चलाना।
psusi

यह, निश्चित रूप से, काम नहीं करता है। आपको "/ cannonical path of / cow" त्रुटि नहीं मिल सकती है। और cd-ing के बारे में / usr / sbin के सामान ... ओह बॉय।
dan3

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