मैं अपने लैपटॉप पर विंडोज और लिनक्स दोहरी बूटिंग स्थापित करने का एक आसान तरीका के साथ आने की कोशिश कर रहा हूं, जरूरी नहीं कि उस क्रम में। आम तौर पर हमें जो करना है, वह पहले विंडोज को इंस्टॉल करना है, और फिर लिनक्स को इंस्टॉल करना है और GRUB को विंडोज को संभालने की अनुमति देना है।
तो मैं जो हासिल करने की कोशिश कर रहा हूं, वह है कि पेसकी इंस्टॉलेशन प्रक्रिया (विंडोज़) को बायपास करने का एक तरीका ढूंढना और सीधे मेरी ड्राइव में कॉपी करने के लिए एक छवि का उपयोग करना। यह मुझे अपने बूट मैनेजर (GRUB) को बनाए रखने की अनुमति भी देगा। (ऐसा नहीं है कि मैं इसे बाद में बहाल नहीं कर सकता, लेकिन यह Microsoft की एकाधिकार नीति है, इस मामले में सिस्टम में अन्य बूट प्रबंधकों के अस्तित्व से इनकार करते हुए)।
मैंने पहली बार विंडोज 8.1 की एक कानूनी प्रति प्राप्त की, फिर उसे वर्चुअलबॉक्स का उपयोग करके वर्चुअल मशीन पर स्थापित करने के लिए आगे बढ़ा। फिर, मैंने अपने GPT पर हार्ड ड्राइव में एक NTFS विभाजन बनाया और नए विभाजन के लिए .vdi छवि से विंडोज विभाजन की सामग्री की नकल की।
बेशक, यह अभी तक काम नहीं करता है। मैं नहीं जानता कि बूटमार्ग को कैसे बदला जाए। यह देता है
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
क्योंकि यह उस फ़ाइल को दूसरे विभाजन से नहीं खोज सकता है जिसका उपयोग बूटिंग, सिस्टम रिकवरी आदि के लिए किया जाता है।
अब, मैंने पढ़ा है कि bootmgr अंततः Windows को बूट करने के लिए winload.exe निष्पादित करता है। मुझे कोई सुराग नहीं है कि आगे क्या करना है।
मुझे लगता है कि इसे सैद्धांतिक रूप से काम करना चाहिए क्योंकि मेरे पास विंडोज चलाने के लिए आवश्यक सभी फाइलें हैं। मुझे यह भी लगता है कि मुझे ऐसा सोचने वाला अकेला नहीं होना चाहिए, और इसलिए मुझे यहाँ बहुत कुछ याद आ रहा है। शायद यह पहले से ही किया है?
मुझे पता नहीं है कि बूटिंग कैसे काम करता है। जो मैं समझने में कामयाब रहा, वह यह है कि जब आप विंडोज और लिनक्स को डुअल-बूट करते हैं, तो आप विंडोज़ के बूटलोडर को लिनक्स के लिए चेन करते हैं। तो मैं जो हासिल करने की कोशिश कर रहा हूं, वह है कि किसी तरह से विंडोज बूटलोडर से छुटकारा पा लिया जाए।
संपादित करें
मैं बाइनरी फ़ाइलों को देख रहा हूं bootmgr
और \Boot\BCD
। bootmgr
BCD फ़ाइल पढ़ता है और आपके विकल्पों को सूचीबद्ध करता है, जिनके बीच आप बूट करना चुन सकते हैं।
इसलिए अमल करने जैसी जानकारी winload.exe
BCD फ़ाइल में रहती है। अब, मुझे लगता bootmgr
है कि chain.c32
मॉड्यूल का उपयोग करके खुद को syslinux द्वारा निष्पादित किया जाता है । मैं जो करने की कोशिश कर रहा हूं वह किसी भी तरह से विंडोज़ बूटलोडर को निष्पादित करना है, यानी winload.exe
सीधे syslinux (यदि संभव हो) से, या संशोधित करें bootmgr
ताकि यह winload.exe
खुद को निष्पादित करे (जिसका पथ सीधे bootmgr
निष्पादन योग्य होगा) बिना बीसीडी या कुछ और की तलाश के।
हाइबरनेशन (जिसके लिए एक अलग प्रक्रिया की आवश्यकता होती है) को इस कदम पर कोई चिंता नहीं है।
हमें फर्मवेयर प्रकार बताने के लिए अपना प्रश्न संपादित करें, और (यदि EFI) क्या आपने फर्मवेयर के सेटअप में संगतता समर्थन मॉड्यूल को सक्षम किया है
मेरा फर्मवेयर EFI (CSM सक्षम के साथ) है, और मैं आमतौर पर GRUB का उपयोग करके आर्क लिनक्स में बूट करता हूं। मुझे पता चला है कि विरासत प्रणालियों और EFI पर bootmgr
निष्पादित System32\winload.exe
होता है System32\winload.efi
।
मुझे इस पर 0.0
विचार करना है कि यहां से क्या करना है। पिछले 10 दिनों से मैं बीसीडी में बदलाव करने की कोशिश कर रहा हूं और मुझे लगता है कि मैं सफलता तक पहुंचने वाला हूं। लेकिन यह अप्रासंगिक है, क्योंकि मैं वास्तव में क्या करना चाहता हूं विंडोज बूट मैनेजर को पूरी तरह से बायपास करना है।
यदि आपके पास कोई विचार है कि क्या winload.efi
EFI शेल (बस एक अनुमान) से निष्पादित करने का एक तरीका है , या GRUB में कुछ अन्य संशोधन है ताकि यह विंडोज़ को EFI मोड में बिना चेनलोडर के बूट करेगा।
किसी भी सलाह का स्वागत करते हैं।
परिशिष्ट
निम्नलिखित फोरम पोस्ट कुछ उपयोगी जानकारी प्रदान कर सकते हैं:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1।
Grub4dos अभी एक बूटलोडर (जैसे NTLDR या BOOTMGR) को चेनलोड कर सकता है क्योंकि यह कोड के प्रतिस्थापन के रूप में कार्य कर सकता है जो एक "सामान्य" बूटेक्टर (अर्थात मशीन कोड के 300 बाइट्स जैसा कुछ) में निहित है।
यह कोड बस कुछ पैरामीटर सेट करता है और फिर लोडर को कॉल करता है।
यहां तक कि विभिन्न कोड के साथ समझने और दोहराने के लिए यह (() आसान नहीं है।
BOOTMGR जैसे एक NT सिस्टम लोडर में एक या एक से कम या ज्यादा .exe एक "वास्तविक मोड" ऑपरेटिंग सिस्टम (पूरी तरह से DOS के विपरीत नहीं) और सुविधाएं / उपकरण दोनों सादे पाठ और रजिस्ट्री पित्ती को पार्स करने के लिए है, यह ऐसा कुछ नहीं है जो फिर से हो सकता है- खरोंच से आसानी से लिखा है।
YEARS के बाद से अच्छे लोग @ReactOS FREELDR लिखने का काम कर रहे हैं (जिसका उद्देश्य बहुत सरल NTLDR के लिए एक प्रतिस्थापन है) (और मुझे विश्वास है कि ReactOS प्रोग्रामर में से कुछ वास्तव में अच्छे और अच्छे हैं)।
ऐसा लगता है (लेकिन यह स्पष्ट रूप से प्रलेखित नहीं है) कि वे NTLDR के साथ प्रयोगात्मक रूप से एक सर्वर 2003 बूट करने में कामयाब रहे।
2।
(U) EFI के लिए समर्थन की शुरूआत के साथ, BootMgr BIOS और (U) EFI के बीच अंतर को समाप्त करने में मदद करता है। उदाहरण के लिए, यहाँ दो क्रम हैं:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad को एक निश्चित वातावरण (API सहित) मौजूद होने की उम्मीद है। बूटमार्ग इस बात का ध्यान रखता है, इसलिए [लगभग] वही विनलाड प्रोग्राम पर्यावरण में काम करेगा।
वास्तव में, (U) EFI बूट मापदंडों को संग्रहीत करने और लाने के लिए एक विधि को परिभाषित करता है, इसलिए BootMgr का BCD उसी उद्देश्य को कवर करता है, चाहे BIOS / (U) EFI हो।
लेकिन BIOS और (U) EFI मतभेदों से परे, BootMgr आपको एक "बूट विकल्प" बनाने की सुविधा देता है, जबकि WinLoad एक विशेष ऑपरेटिंग सिस्टम को बूट करता है जो यह जानता है कि बूट कैसे करना है।
WinLoad के मौजूद होने की कितनी उम्मीद है, इस पर निर्भर करते हुए, WinLoad को सीधे लागू करना संभव हो सकता है। माइकल ब्राउन का विंबूट सीधे बूटमार्ग पीई [1] पर आक्रमण करता है, इसलिए यह सीधे विनलाद का आह्वान कर सकता है, सिवाय इसके कि विंलाद शायद एक पर्यावरण का अधिक चाहता है। आप इसे आजमा सकते हैं!
[१] बूटमग्र के साथ भ्रमित न होने के लिए जो GRUB4DOS और Syslinux 'chain.c32 को आमंत्रित कर सकते हैं। उस BootMgr में एक स्टब शामिल है जो जानता है कि एम्बेडेड BootMgr PE को कैसे लागू किया जाए।
setup
उपयोगिता में संगतता समर्थन मॉड्यूल को सक्षम किया है या नहीं ।