मुझे भी यह त्रुटि मिलती है, और मुझे नहीं लगता कि यह एक चिरौटे में होता है।
पृष्ठभूमि
मुझे लगता है कि यह तब होता है जब systemd पथ नहीं खोज सकता क्योंकि यह एक निर्देशिका में मुहिम की जाती है। तो, अंतर यह है कि जब आप एक क्रोकेट सेटअप करते हैं तो आप ड्राइव सहित हार्डवेयर तक पहुंच को कॉन्फ़िगर करते हैं।
हालाँकि आप इस एक्सेस को Systemd के अंदर कॉन्फ़िगर कर सकते हैं, जिसका मतलब यह नहीं है कि आप उन ड्राइव्स के लिए अनुमतियों को उसी तरह कॉन्फ़िगर कर सकते हैं।
उदाहरण के लिए, मैंने यह फ़ाइल बनाई:
/etc/systemd/system/systemd-nspawn@.service.d/override.conf
और इसमें ये सेटिंग्स हैं:
[Service]
DeviceAllow=char-usb_device rwm
DeviceAllow=char-usb
[Files]
Bind=/var/cache/apt/pkgcache.bin
Bind=/var/cache/apt/srcpkgcache.bin
यह तब भी काम नहीं करता है, जब पीब पर यूएसबी का उपयोग किया जाता है grub-install /dev/sda
या update-grub
डेबियन स्ट्रेच के साथ डीबूटस्ट्रैप किया जाता है। यहां तक कि ग्रब-यूबूट और ग्रब-एफी-आर्म का उपयोग करते हुए अभी भी त्रुटि है कि grub-probe
कैनोनिकल पथ नहीं मिल सकता है।
इतना ही नहीं, हालांकि यद्यपि update-grub
यह देख और जान लेंगे कि ऑपरेटिंग सिस्टम क्या हैं, लेकिन दिलचस्प रूप grub-install
से यह स्वीकार नहीं करता है कि डेबियन ऑपरेटिंग सिस्टम यूएसबी पर है।
उदाहरण
root@raspixmc:/home/pi# grub-install /dev/sda
Installing for arm-uboot platform.
grub-install: warning: no hints available for your platform. Expect
reduced performance.
grub-install: warning: WARNING: no platform-specific install was
performed.
Installation finished. No error reported.
root@raspixmc:/home/pi#
दिलचस्प है, जब मैं update-grub
चेरोट बनाता हूं और चला सकता हूं, भले ही मैं ऑपरेटिंग सिस्टम पर हूं कि मैंने यूएसबी को डीबूटस्ट्रैप किया है, यह खुद का ऑपरेटिंग सिस्टम नहीं देखता है!
root@raspixmc:/home/pi# mount /dev/sda1 /mnt
root@raspixmc:/home/pi# cd /mnt
root@raspixmc:/mnt# mount --bind /dev dev/
root@raspixmc:/mnt# mount --bind /sys sys/
root@raspixmc:/mnt# mount --bind /proc proc/
root@raspixmc:/mnt# mount --bind /dev/pts dev/pts
root@raspixmc:/mnt# chroot . bin/bash
root@raspixmc:/# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
done
root@raspixmc:/#
यह केवल रास्पियन को देखता है। यह केवल कंटेनर के अंदर GRUB को स्थापित और अद्यतन करने की कोशिश करते समय होता है, लेकिन जब मैं चेरोट से बाहर निकलता हूं।
देखो कि यह अब कैसे काम करता है क्योंकि मैंने चेरोट निर्देशिका को अनमाउंट नहीं किया:
/dev dev/
/sys sys/
/proc proc/
/dev/pts dev/pts
कंटेनर माइंड के बाहर से, मैं इस कमांड grub-uboot
को Raspbian पर इंस्टॉल कर रहा हूं और USB पर डेबस्ट्रस्त्र डेबियन युक्त कोई ग्रब नहीं है।
root@raspixmc:/mnt# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
Found Debian GNU/Linux 9 (stretch) on /dev/sda1
done
root@raspixmc:/mnt#
यह डेबियन एआरएम के लिए अनधिकृत रूप से उपलब्ध चित्रों में से एक का उपयोग करके नहीं होता है , लेकिन जाहिर है कि यह अभी भी एक कस्टमाइज़ेशन है जो अभी तक डिबूटस्ट्रैपिंग के लिए उपलब्ध नहीं है।
समस्या निवारण
वास्तव में ऐसे समय होते हैं जब यह सिर्फ एक रास्ता बनाना बेहतर होता है। केवल अगली संभावना (और एक संभावित एक) बस GRUB लिखने के लिए है। और इसके लिए मैं सिर्फ इस पेज पर पढ़ने जा रहा हूं।
https://www.dedoimedo.com/computers/grub-2.html
एक और बात जो मैं इस मुद्दे के बारे में साझा करना चाहता हूं वह एक समाधान है जो काम कर सकता है, लेकिन यह महसूस करें कि माइक्रोएसडी कार्ड बहुत संवेदनशील हैं। मैं अपनी खुद की लिनक्स छवियां बना रहा हूं और यह तेजी से सीखा है। सबसे अच्छी बात यह है कि जब भी आप कर सकते हैं Qemu का उपयोग करें, लेकिन एक पुराने विभाजन तालिका को साफ़ करने के लिए आप sgdisk --zap-all
ड्राइव पर चलने का प्रयास कर सकते हैं ।
sgdisk --zap-all /dev/sdd
वास्तव में, कभी कभी यह एक त्रुटि पहली बार देता है और यह है नहीं केवल पढ़ने के लिए त्रुटि, आप इसे फिर से चला सकते हैं और कहीं भी होगी अंत में सभी पार्टीशन टेबल नए या पुराने।
और आप एक मानक एएमडी / इंटेल-आधारित पीसी पर रास्पबेरी पाई का अनुकरण करने के लिए क्यूमू का उपयोग कर सकते हैं । मैं इसकी अनुशंसा करूंगा। मुझे पता है कि यह मूल पोस्ट से संबंधित अधिक जानकारी है, लेकिन मुझे लगता है कि संभावना है कि यह त्रुटि कैसे हुई है। यह कंटेनर की उम्र है।
sda6
? क्या मेरा जवाब यहाँ मदद करता है?