ग्रब 2.04 में एक बग है, इसलिए सुनिश्चित करें कि आपके पास एक पूर्व या बाद का संस्करण है।
ठीक है, ग्रब के लिए एक आईएसओ फ़ाइल जोड़ने के लिए मूल बातें एक यूईएफआई के लिए एक BIOS मशीन के समान हैं: फ़ाइल के निचले भाग में /etc/grub.d/40_customएक menuentryआइटम संपादित करें (इस उदाहरण में GParted का उपयोग किया जाता है):
menuentry "GParted Live ISO" {
}
अब हम एक वैरिएबल जोड़ने जा रहे हैं जिसमें डायरेक्टरी है जहाँ हमने ISO स्टोर किया है (अब तक, इतना अच्छा: BIOS मशीनों से कोई अंतर नहीं):
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
}
मैं /optइन्हें स्टोर करने के लिए उपयोग कर रहा हूं क्योंकि मुझे अपनी मशीन के रूट में निर्देशिका बनाना पसंद नहीं है और लिनक्स फाइल सिस्टम पदानुक्रम के अनुसार, जहां वैकल्पिक सॉफ्टवेयर को वैसे भी रहना चाहिए।
इससे पहले कि हम loopbackवैरिएबल जोड़ते हैं , हमें यह पता लगाना होगा कि फाइल किस हार्ड डिस्क पर संग्रहीत है, इसलिए हम a: df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso | tail -1और मेरे मशीन पर आउटपुट /dev/sdb2:।
हालाँकि, ग्रब उपयोग ( hdX,Y) अंकन और यह वह जगह है जहाँ UEFI और BIOS मशीनों के बीच अंतर आता है! तो अब अपने मशीन को रिबूट, भोजन के मेनू में जाने और प्रेस C: यह grub कमांड के साथ शीघ्र पर ले जायेगा से पहले की तरह अलग अलग आदेशों लेकिन केवल एक है कि आप की जरूरत है: ls।
मेरी मशीन पर आउटपुट है:
(hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) ... (hd3) ...
है ना? 4 ड्राइव? मेरे पास केवल 3 है! और यह (hd1,4)एक BIOS पर लाइन नहीं है लेकिन (hd1,gpt3)UEFI में है और (hd0)इसमें कोई विभाजन नहीं है!
खैर, जाहिरा तौर पर जब NVRAM का हिस्सा भंडारण के रूप में उपयोग किया जाता है और दिखाता है कि (hd0) आपको 1 पर अपने ड्राइव की संख्या शुरू करने की आवश्यकता है! जबकि सभी जानकारी जो आपको आईएसओ फाइलों को बूट करने पर मिलती है, कहती है कि आपको 0 से नंबर देना शुरू करना होगा (BIOS मशीनों पर यह हमेशा सही होता है , जरूरी नहीं कि यह कुछ यूईएफआई मशीनों पर ही हो !)
तो मान के लिए मेरी मशीन पर आईएसओ फ़ाइल के रूप में loopbackहो जाता है (दूसरा ड्राइव , दूसरा विभाजन ):(hd2,gpt2)$GPartedISOFile/dev/sdb2hd2gpt2
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
}
एक और अंतर यह है कि linuxऔर initrdBIOS मशीनों पर linuxefiऔर linuxefiयूईएफआई मशीनों पर कॉल किया जाता है , जो हमें अपना अंतिम परिणाम देता है:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$GPartedISOFile ip=frommedia toram=filesystem.squashfs union=overlay username=user
initrdefi (loop)/live/initrd.img
}
तो अब उस फाइल को सेव करें, और उसके साथ ग्रब अपडेट करें:
update-grub
उपरोक्त सभी के बाद, रिबूट करें, ग्रब मेनू में जाएं , चुनें GParted Live ISOऔर अब आप आसानी से अपने आईएसओ को बिना यूएसबी स्टिक के शिकार करने के लिए आसानी से बूट कर सकते हैं!
:-)
menuentry "CloneZilla ISO" {
set ISOFile="/opt/Live-ISOs/clonezilla-live-20170905-zesty-amd64.iso"
loopback loop (hd2,gpt2)$ISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$ISOFile ip=frommedia toram=filesystem.squashfs union=overlay
initrdefi (loop)/live/initrd.img
}