ग्रब: आईएसओ से बूट


41

मैं GRUB में ISO फ़ाइल में कैसे बूट कर सकता हूँ? आईएसओ फाइल एक रीसर्फ़स पार्टीशन पर है और GRUB इसे एक्सेस कर सकता है (पहले से ही परीक्षण किया हुआ)।


ग्रब का कौन सा संस्करण?
क्वैक

1
इसी सवाल का जवाब यहां दिया गया है
dma_k


जवाबों:


55

ISO फ़ाइल को बूट करने में सबसे बड़ी समस्या यह है कि ISO जिसे बूट करने के लिए डिज़ाइन किया गया है, लगभग हमेशा एक सीडी से बूट करने के लिए डिज़ाइन किया जाता है । ग्रब 2 (जोर मेरा) के बारे में मार्को के ब्लॉग पर बताया गया है :

GRUB ISO9660 ("आइसो") चित्र पढ़ सकते हैं। यह उदाहरण के लिए पहले कुछ क्षेत्रों को लोड कर सकता है और इसे बूट कर सकता है। लेकिन ज्यादातर लोगों को एहसास नहीं है कि "क्या है?"। लोडेड ऑपरेटिंग सिस्टम क्या करेगा? यह सबसे अधिक संभावना एक सीडीरॉम की तलाश करेगा, जो इसे नहीं मिलेगा, और असफल हो जाएगा।

तो कुछ यादृच्छिक आईएसओ फ़ाइल से बूट करने के लिए मृत-सरल-एस्ट्रल तरीका यह है कि इसे वर्चुअल मशीन (वर्चुअलबॉक्स, वीएमवेयर, या वर्चुअल पीसी) में वर्चुअल सीडी के रूप में लोड किया जाए और वहां बूट किया जाए। VM को लगभग हमेशा काम करना चाहिए, क्योंकि यह ISO फ़ाइल नहीं है - यह असली सीडी हार्डवेयर पर एक वास्तविक सीडी है।

नंगे धातु पर एक आईएसओ फ़ाइल से बूटिंग बहुत कठिन है। आप यह कैसे करते हैं यह इस बात पर निर्भर करता है कि आप किस ग्रुब के किस संस्करण का उपयोग कर रहे हैं, और परिणाम आपके द्वारा उपयोग किए जा रहे ISO के आधार पर भिन्न हो सकते हैं और इसे बूट करने के लिए कैसे कॉन्फ़िगर किया गया था। यही कारण है कि अधिकांश बूट-आईएसओ-से-यूएसबी उपकरण (यूनेटबूटिन, विनटॉफ्लाश, आदि) आमतौर पर ड्राइव में आईएसओ सामग्री निकालते हैं - क्योंकि उस तरह से उन्हें सीधे एक्सेस किया जा सकता है, बिना ओएस को भ्रमित किए बिना।


ग्रब 1

... निश्चित नहीं। यदि संभव हो तो, मेनू प्रविष्टियाँ शायद ग्रुब 4 डीओएस जैसी दिखेंगी , हालाँकि मुझे लगता है कि "मैप - हूक" कमांड ग्रुब 4 डीओएस वृद्धि है। प्लस साइड पर, ग्रब में Grub4DOS की तुलना में व्यापक फाइल सिस्टम का समर्थन है।

ग्रास ऑन रेसेरॉफ़्स (अपुष्ट) के साथ एक नोट आपको इंगित करता है " notailकाम करने के लिए इसके साथ अपने विभाजन को माउंट करना होगा"।

मेमदिस्क एक विकल्प है; निचे देखो।


Grub4DOS

Grub4DOS कुछ प्रयोगात्मक "सीडी अनुकरण" प्रदान करता है जो कुछ आईएसओ के साथ काम करता है। दुर्भाग्य से, Grub4DOS केवल FAT32 / NTFS फाइल सिस्टम पढ़ता है। Grub4DOS डाउनलोड करें।

यहाँ एक नमूना प्रविष्टि ( स्रोत ) है:

title fdfullcd.iso (0xFF)
  find --set-root /fdfullcd.iso
  map /fdfullcd.iso (0xFF)
  map --hook
  root (0xFF)
  kernel /isolinux/data/memdisk
  initrd /isolinux/data/fdboot.img

माना जाता है कि Win7 ISO को इस प्रविष्टि के साथ जोड़ा जा सकता है :

title Windows 7
  map (hd0,0)/win7.iso (hd32)
  map --hook
  chainloader (hd32)

अन्य ISO को मेमडिस्क के साथ बूट किया जा सकता है :

title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
  kernel /memdisk iso
  initrd /hdt.iso

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

यहाँ Grub4DOS को स्थापित करने पर एक हाक 5 एपिसोड है


ग्रब २

यहाँ उदाहरण Grub2 प्रविष्टियों की एक जोड़ी है। chainloader तो इन प्रविष्टियों को (1) उपयोग नहीं काम बूट करने के लिए एक आईएसओ वर्तमान में, करता है लूपबैक करने के लिए "माउंट" आईएसओ, और (2) की तरह ऐड कुछ इसो-स्कैन या findiso को linux लाइन है कि निर्दिष्ट करता है आईएसओ फ़ाइल।

दुर्भाग्य से, ऐसा करने का कोई सामान्य तरीका नहीं है। प्रत्येक भिन्न बूट प्रविष्टि को लक्ष्य ISO की सामग्री के लिए अनुकूलित किया जाना चाहिए। अधिकांश लिनक्स लाइवसीडी ISOLINUX को एक बूटलोडर के रूप में उपयोग करते हैं; आइसोलिन को खोजने के लिए उस बूट प्रविष्टि की जांच करें जो आमतौर पर बूट होता है।

उदाहरण प्रविष्टियाँ ( स्रोत ):

menuentry "Ubuntu Live 9.10 32bit" {
 loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

menuentry "Grml small 2009.10" {
  loopback loop /boot/iso/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}

यदि आप एक गैर-लिनक्स लाइवसीडी को बूट करने की कोशिश कर रहे हैं, तो आप भाग्य से बाहर हो सकते हैं। फिर, मेम्दिस्क मदद कर सकता है :

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}

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

Ofc मैं इसे VMware के अंदर बूट कर सकता हूं (और मैंने पहले ही किया था) लेकिन इससे मुझे बहुत मदद नहीं मिलती क्योंकि यह विंडोज है और जब मैं इसे अपने डिस्क पर VMware के माध्यम से स्थापित करता हूं, तो यह बाद में बूट कर सकता है (बेवकूफ विंडोज ...)।
अल्बर्ट

क्या आप मुझे एक सुझाव दे सकते हैं कि मुझे पहले किस विकल्प की कोशिश करनी चाहिए, यानी Grub1, Grub2 या Grub4DOS? मैं बस स्थापित कर सकते हैं जो कुछ भी जरूरत है, कि वास्तव में समस्या नहीं होगी।
अल्बर्ट

@ अल्बर्ट: क्या आप अपने पहले के प्रश्न के संदर्भ में पूछ रहे हैं ? मेरा मानना ​​है कि आपका सबसे अच्छा शर्त निष्कर्षण विधि का उपयोग करना है; विंडोज इंस्टॉलर उन आईएसओ में से एक है, जिन्हें हार्डवेयर से बूट नहीं होने पर समस्या होती है। आप कोशिश कर सकते हैं, लेकिन मैं इसके बारे में ज्यादा नहीं जानता। आप शायद एक फ्लैश ड्राइव प्राप्त करना चाहते हैं और उसका उपयोग करना चाहते हैं; देख superuser.com/questions/66948/... या superuser.com/questions/62193/install-win7-from-usb
नीम हकीम क्विक्सोट

1
@quackquixote, आपके बोल्ड शब्दों के बारे में "लोडेड ऑपरेटिंग सिस्टम क्या करेगा? यह सबसे अधिक संभावना सीडीरॉम की तलाश करेगा, जो इसे नहीं मिलेगा, और असफल" , ओएस को सीडीरॉम की तलाश करने की आवश्यकता क्यों है? यह पहले से ही एक आदर्श आईएसओ फ़ाइल है और ओएस को लोड करने के लिए जो कुछ भी आवश्यक है वह पहले से ही आईएसओ फ़ाइल के भीतर है, इसलिए यह सीडीरोम की तलाश क्यों नहीं छोड़ सकता है?
पचेरियर

1

आप एक विभाजन में एक आईएसओ फ़ाइल लिखने के लिए टर्मिनल से dd का उपयोग कर सकते हैं। बस सावधान रहें, यदि आप dd गलत का उपयोग करते हैं तो आप सब कुछ मिटा सकते हैं। यह कुछ इस तरह दिखना चाहिए: dd if = Desktop / LinuxCDFile.iso of = / Path / To / विभाजन


लेकिन विंडोज लोडर द्वारा बूट करने योग्य होने के लिए विभाजन को प्राथमिक होना चाहिए।
फायरलॉर्ड

यह केवल कभी-कभी काम करता है, आम तौर पर परिणाम बूट करने योग्य नहीं होता है।
डेविड टोनहोफर

1
@ फ़ायरलॉर्ड: ठीक है, विंडोज लोडर का उपयोग न करें। ग्रब का प्रयोग करें। हाँ, यह बूट विंडोज़ भी करता है, अगर आपको वास्तव में इसकी आवश्यकता है।
Evi1M4chine
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.