GRUB2 से चैनलोड सिसलीक्स - syslinux.cfg मेनू दिखाएं


9

मैं सिस्टम को रीइमेज करने के लिए एक क्लोनज़िला लाइव यूएसबी डिस्क का उपयोग कर रहा हूं। Http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parthers.doc में बताए गए अनुसार मेरे डिस्क में मेनू के साथ मुझे संकेत देता है में syslinux.cfgबहुत हाल ही में जो कि UEFI मशीनें हैं को छोड़कर सभी प्रणालियों के लिए जहाँ मैं के साथ संकेत कर रहा हूँ (और BIOS UEFI उपकरणों पहले से बूट करने के लिए कॉन्फ़िगर है) grub.cfgमेनू।

यह देखते हुए कि मैंने अपने syslinux.cfgमेनू को भारी रूप से अनुकूलित किया है, मैं grub.cfgफ़ाइल को केवल स्वचालित रूप से चेनलोड के लिए संशोधित करना चाहूंगा ताकि syslinux.cfgसभी मामलों में मेनू को दिखाया जा सके ।

क्या यह वास्तव में संभव है? कैसे?

डिस्क पर GRUB2 है और मेरी समझ (इंटरनेट पर चारों ओर देखने से) यह संभव है, लेकिन मैंने यह नहीं समझा कि कैसे। किसी भी मदद की सराहना की है।

संपादित करें:
मैं विकल्पों में हैं में से किसी का चयन मुद्दों के बिना कि ग्रब का उपयोग कर प्रणाली जूते स्पष्ट करना चाहते हैं grub.cfgके रूप में Conezilla डाउनलोड द्वारा प्रदान की डिफ़ॉल्ट रूप से मेनू, लेकिन मुझे क्या करना चाहते हैं SYSLINUX के मेनू दिखाने के लिए है (में syslinux.cfg) grub.cfg

दूसरे संपादन में डिफ़ॉल्ट मेनू के बजाय , मैंने यह कैसे किया:
अंत में प्रस्तावित समाधान मेरे लिए काम नहीं करते थे, इसलिए मैंने बस 'ईएफआई' बूट फ़ोल्डर को "अनुपलब्ध" (इसका नाम बदल दिया); इस तरह से UEFI बूट विफल हो जाता है और पुराने सिस्टम पर syslinux से सिस्टम बूट हो जाता है: BIOS में कोई संशोधन नहीं, कोई नया मेनू नहीं, कोई चेनलोड नहीं ...


मुझे लगता है कि, आप उपयोग कर सकते हैं configfilesyslinux.cfg chainload को grub.conf अंदर पैरामीटर
SHW

जवाबों:


1

यह सुझाव देता है कि यह कुछ कीड़े से संबंधित था और कुछ पैच था, इसलिए यह सुनिश्चित करना मुश्किल है: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

सबसे पहले, अगर आपका OS अपडेट को ग्रब करता है तो यह grub.cfg को पुन: उत्पन्न करेगा और आपके कॉन्फ़िगरेशन को मिटा देगा, इसलिए /etc/grub.d में फ़ाइलों को मैन्युअल रूप से संशोधित करने के बजाय /boot/grub.cfg को संशोधित न करें (40_ustom या ऐसा कुछ नाम वाली फ़ाइल) और कॉल करें grub-mkconfig -o /boot/grub/grub.cfg

आप इस तरह से कुछ सरल कोशिश कर सकते हैं:

मेनेंट्री "सिस्लिनक्स रूट ड्राइव" {

सेट रूट = (hd1,3)

चेन लोडर +1

}

(hd1,3) sdb3 डिस्क विभाजन है, ग्रब uid द्वारा पहचान का समर्थन करता है, इसलिए सेटअप बनाना संभव है जिसमें आपके विभाजन को सभी पीसी द्वारा पता लगाया जाएगा। हालांकि मेरे अनुभव में कभी-कभी यह पर्याप्त नहीं होता है।

आप भी कुछ इस तरह की कोशिश कर सकते हैं chainloader (hd1,3)/path/to/syslinux/isofile.bin

यदि सब कुछ विफल हो जाता है, तो इसमें आइसोलाइन से बूट करना संभव है, लेकिन ऐसा लगता है कि आपके मामले में यह कोई विकल्प नहीं है।


मैंने पहली बार ग्रब कमांड लाइन से यह कोशिश की (ग्रब में एक बार प्रेस करें), मैंने अपने syslinux.cfg विभाजन की पहचान की और सीधे 'चेनलोडर (HD0, msdos2) +1' की कोशिश की, लेकिन मुझे त्रुटि 'अमान्य फ़ाइल फ़ाइल पथ' मिली। कृपया ध्यान दें कि डॉस के ऊपर विभाजन की सामग्री में कोई भी .bin फ़ाइल नहीं है। (मैंने अतिरिक्त स्पष्टता के लिए प्रश्न को भी संपादित किया)
rodedo

यह शायद नहीं है, इसका नाम और द्विआधारी प्रारूप विस्तार (.bin) डिस्ट्रो पर निर्भर करता है (लाइव सीडी की आमतौर पर बिन में सिसलिनक्स और आइसोलिनक्स के साथ बूट करने में सक्षम होना चाहिए, लेकिन आपके मामले में यह संभवतः .bs फ़ाइल है, यहां कमांड के लिए देखें। syslinux.org/wiki/index.php/SYSLINUX#LABEL_command )। हालांकि मैं अब एक बात पर शोध कर रहा हूं: कैस्पर मॉड्यूल के साथ सीधे कर्नेल को बूट नहीं करता (उर्फ लाइव सीडी / लाइव यूएसबी मोड) यह बूटलोडर मेनू नहीं चलाता है। कुछ मिनटों के बाद मैं परिणाम लिखूंगा।
आईबीआर

ठीक है, मैं देखता हूं कि उम्मीदवार .c32 फाइलें हैं जो मेरे पास हैं। अधिक स्पष्ट रूप से यह फ़ोल्डर की सामग्री है: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg', cfg फ़ाइल को छोड़कर , क्या मैं एक-एक करके दूसरा प्रयास करूंगा? अपने आस-पास देखने से मैं समझ गया कि चैन 32 को दूसरी दिशा में शैलोइडिंग के लिए उपयोग किया जाना है (इसलिए मुझे क्या चाहिए), क्या मैं गलत हूं?
रोदियो

खैर कॉलिंग कैस्पर बूटलोडर मेनू को आमंत्रित नहीं करता है। मुझे नहीं पता कि इसे कैसे संग्रहीत किया जाए। अगर इससे मुझे अपनी खुद की ग्रब चैनलोडिंग का उदाहरण देने में मदद मिलेगी, लेकिन मुझे शक है कि इसका सिसलिनक्स के साथ कोई उपयोग है:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

4 साल बाद ... :)

इसे इस्तेमाल करे:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

1
कृपया थोड़ा विस्तार करें और बताएं कि यह समस्या का हल क्यों है।
काउंटरमोड

-1

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


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