KVM में Windows 10: बूट डिस्क को Virtio में बदलें


25

मैंने एक IDE डिस्क का उपयोग करके एक विंडोज़ 10 वर्चुअल मशीन स्थापित की है और अब वह Virtio ड्राइवर का उपयोग करने के लिए डिस्क को बदलना पसंद करेगा।

विंडोज के अन्य संस्करणों के लिए, इस प्रश्न में दृष्टिकोण पर्याप्त है - एक IDE VM को एक गुणक VM में कैसे स्थानांतरित किया जाए?

हालांकि विंडोज 10 के साथ, यह एक INACCESSIBLE_BOOT_DEVICEसमस्या की ओर जाता है ।

मुझे पता है कि पसंदीदा दृष्टिकोण शुरू से ही Virtio डिवाइस का उपयोग है और संकेत दिए जाने पर उपयुक्त virtio ड्राइवर स्थापित करें। दुर्भाग्य से मैं केवीएम में सीडी बदलने के साथ कुछ अलग मुद्दे रख रहा था (मुझे या तो काम करने के लिए 2 सीडीरॉम डिवाइस नहीं मिल सके)।

क्या बिना रीइंस्टॉल किए इस मुद्दे को सही करने का कोई तरीका है?

यहाँ भी इसी तरह के मुद्दे - https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090


+1। मैं खुद इस मुद्दे का पता नहीं लगा सका। विंडोज के पिछले संस्करणों के लिए विभिन्न वर्कअराउंड के बाद, मैंने वर्टिओ ब्लॉक डिवाइस में प्लग-इन करने के बाद विंडोज वीएम पर VirtIO ड्राइवर स्थापित करने की कोशिश की, लेकिन मुझे अभी भी INACCESSIBLE_BOOT_DEVICEनीली स्क्रीन मिली । मैंने एक VirtIO बूट डिवाइस पर फिर से स्थापित किया।
डेल्टिक

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

@ डैनियलबी: बिल्कुल यही मैंने किया है। ऐसा लगता है कि आपका सुझाव विंडोज के पिछले संस्करणों के लिए काम करता है, लेकिन विंडोज 10.
डेल्टिक

हम्म, ठीक है। वैसे मुझे लगता है कि मेरे पास आपकी समस्या (हल) हल करने का सबसे अच्छा तरीका नहीं है: बस विंडोज आईएसओ को संशोधित करें और ड्राइवरों को शामिल करें। ध्यान रखें कि इसे बूट करने योग्य रहने की आवश्यकता है। इस तरह से आप कर सकते हैं (उम्मीद है) सीधे virtio को स्थापित करें।
डैनियल बी

1
@DanielB: VirtIO ड्राइवर को अलग ड्राइवर डिस्क के साथ इंस्टॉलेशन प्रक्रिया में लोड किया जा सकता है। यदि Windows 10 को VirtIO ड्राइवर के साथ स्थापित किया गया है, तो कोई समस्या नहीं है। यह सिर्फ इतना है कि इंटरनेट पर विंडोज को IDE से VirtIO पर स्विच करने के मौजूदा निर्देश विंडोज 10 केवीएम वर्चुअल मशीनों के लिए काम नहीं करते हैं।
डेल्टिक

जवाबों:


24

सभी उत्तर सही हैं, लेकिन आपको पुण्य ड्राइवर स्थापित करने के बाद कुछ अतिरिक्त कदम उठाने की आवश्यकता हो सकती है । यहाँ मेरे द्वारा अनुसरण किए गए चरण हैं:

  1. एक उन्नत कमांड प्रॉम्प्ट खोलें और टाइप करके VM को सुरक्षित मोड में बूट करने के लिए सेट करें

    bcdedit / set {current} safeboot न्यूनतम

  2. VM को शट-डाउन करें और बूट डिवाइस प्रकार को virtio में बदलें।

  3. VM को बूट करें। यह सुरक्षित मोड में प्रवेश करेगा।

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

  4. बूट किए गए वीएम में मशीन को सामान्य मोड में बूट करने की अनुमति देने के लिए bcdedit सेटिंग्स रीसेट करें (फिर से उन्नत कमांड में):

    bcdedit / deletevalue {current} safeboot

  5. किया हुआ।


1
बहुत खुबस! यह मेरे लिए गायब सा था। मैंने इस्तेमाल किया bcdedit /set safeboot minimal, {current}क्योंकि मुझे यकीन नहीं था कि मुझे वहाँ जाना चाहिए था।
चार्ल्स ग्रीन

2
@CharlesGreen {current}शाब्दिक है, जैसा कि आप लिखते हैं।
मार्क.2377

यदि आपके पास पिन लॉगिन है तो समस्या क्योंकि पासवर्ड लॉगिन के लिए नेटवर्क एक्सेस की आवश्यकता हो सकती है। मैं विंडोज को एक परिणाम के रूप में पुनः इंस्टॉल कर रहा हूं। answer.microsoft.com/en-us/windows/forum/windows_10-security/…
एंड्रयू ओल्नी

मैंने लॉग इन समस्या से बचने के लिए चरण एक में bcdedit / सेट {current} सेफबूट नेटवर्क के साथ प्रयास किया, मैंने पहली बार अतिरिक्त सुरक्षित होने के लिए एक स्थानीय उपयोगकर्ता भी बनाया और मुझे नहीं लगता कि समस्या मेरे लिए वैसे भी लागू होती है, लेकिन चूंकि मशीन है एक डोमेन से जुड़ा हुआ है और मेरे पास हर चीज का नियंत्रक नहीं है जो मैं यह सुनिश्चित करना चाहता था कि मैंने कुछ भी गलत नहीं किया। और नेटवर्क पैरामीटर ने कम से कम प्रक्रिया को खराब नहीं किया।
HackerBaloo

आप कैसे करते हैं 1), वह है, ऊंचा संकेत?
फ्रेडरिक नॉर्ड

16

एक काफी सरल उत्तर दिया गया है - और कई मामलों में काम कर सकता है, अन्य विकल्पों पर संकेत के साथ। यदि (मेरी तरह) आप IDE पर स्विच करने में सक्षम नहीं हैं और Virtio का उपयोग करने के लिए मजबूर हैं, तो निम्नलिखित वैकल्पिक दृष्टिकोण काम कर सकते हैं:

  1. दोनों विंडोज़ 10 डीवीडी / सीडी आईएसओ और सद्गुणी चालक आईएसओ को वीएम में जोड़ें।
  2. विंडोज़ 10 डीवीडी / सीडी को बूट करें और मरम्मत मोड विकल्प से कमांड प्रॉम्प्ट में प्राप्त करें।
  3. चालक को सीएलआई जैसे के माध्यम से लोड करें drvload e:\viostor\w10\amd64\viostor.inf
    • मेरे मामले में e: वह जगह थी, जहाँ ISO स्थापित किया गया था।
    • ड्राइवर को लोड करने के बाद f: वह जगह थी जहाँ विंडोज़ इंस्टाल माउंट हो गया था।
  4. स्टोरेज कंट्रोलर ड्राइवर को इंजेक्ट करने के लिए DISM कमांड का उपयोग करें
    • उदाहरण के लिए dism /image:f:\ /add-driver /driver:e:\viostor\w10\amd64\viostor.inf
    • ऊपर के रूप में, अपने स्वयं के वातावरण के अनुसार ड्राइव अक्षर असाइनमेंट बदलें।

विशेष विंडो बूट सीडी / इमेज और 'पैच' बनाने के साथ फिडेल करने की आवश्यकता है, वास्तविक विंडो मक्खी पर छवि स्थापित करती हैं।

ध्यान दें, इस आला मामले के लिए, मैं सुझाव दूंगा कि स्टार्टअप की मरम्मत (जो मेरे लिए विफल रही) से बचें। यह पता नहीं लग पाया कि इसे लोड करने के बाद vistor.inf को कैसे शामिल किया जाए, और यदि आप इसे आजमाते हैं, तो विंडोज 10 की डीवीडी उत्सुकता से बचने के लिए सावधान रहें या सब कुछ पुनर्स्थापित करें ...

DISM दृष्टिकोण का श्रेय: ड्राइवरों को जोड़ने के लिए पतन का उपयोग करना


1
4 के लिए वैकल्पिक: inf फ़ाइल पर राइट क्लिक करें -> इंस्टॉल करें।
राब

इसके अलावा, विंडोज अपडेट के लिए इसे तोड़कर देखें। एक reddit पोस्ट के अनुसार, "अपडेट ने मेरे Virtio ड्राइवरों को मिटा दिया": reddit.com/r/VFIO/comments/6b06y5/… । यह कोने के मामले में हो सकता है जब आप अपने विंडोज इंस्टाल को ड्यूल बूट और वीएम दोनों के रूप में चलाते हैं और देशी हार्डवेयर पर अपडेट को लागू करते हैं ...
JPvRiel

1
यह, प्लस नीचे जवाब। मुझे बूट को सेफ मोड (bcdedit / set {current} safeboot minimal) में करना था और उसके बाद Safe Mode बूट (bcdedit / deletevalue {current} safeboot) को हटा दें, और फिर पुनरारंभ करें। उसके बाद, इसने विंडोज सर्वर 2016 एसेंशियल के साथ काम किया।
जी ट्रैवॉ

10

सामान्य रूप से अनुसरण करने वाले चरण हैं:

  1. VM में VirtIO ड्राइवर स्थापित करें
  2. VirtIO का उपयोग करने के लिए VM की सिस्टम डिस्क सेट करें
  3. यदि VM बूट नहीं करता है, तो Startup Repair या यहां तक ​​कि Repair Install को निष्पादित करें

प्रक्रिया विस्तार से है:

  1. बूट डिस्क को IDE पर लौटाएं।
  2. सुनिश्चित करें कि विंडोज़ वीएम शटडाउन है।
  3. यहां से VirtIO ड्राइवर आईएसओ डाउनलोड करें
  4. इसे VM के लिए CD ड्राइव पर माउंट करें।
  5. एक स्टोरेज डिवाइस जोड़ें जो कि VirtIO प्रकार की हो। जब से आप ड्राइवरों को स्थापित करने के लिए इसका उपयोग कर रहे हैं, तो आकार का आवंटन कोई फर्क नहीं पड़ता।
  6. Windows VM को प्रारंभ करें। यह ड्राइवरों को स्थापित करने का प्रयास करेगा। यदि ऐसा नहीं होता है, तो डिवाइस प्रबंधक खोलें और आपको इसके बगल में विस्मयादिबोधक चिह्न के साथ सूचीबद्ध SCSI डिवाइस को देखना चाहिए। आप ड्राइवर को अद्यतन करने के लिए चुन सकते हैं और माउंटेड आईएसओ की उपयुक्त निर्देशिका को इंगित कर सकते हैं। एक बार स्थापित होने पर, रिबूट न ​​करें, लेकिन मशीन को बंद कर दें।
  7. विंडोज के लिए पुण्य-प्रबंधक सेटिंग्स में, IDE से VirtIO में स्टोरेज टाइप बदलें।
  8. आप पहले बनाए गए स्टोरेज डिवाइस को हटा सकते हैं। इसकी अब जरूरत नहीं है।
  9. विंडोज शुरू करें, इसे एससीएसआई ड्राइवरों को बूट करना चाहिए और इंस्टॉल करना चाहिए। यह करने के बाद आपको रिबूट करने की आवश्यकता होगी।
  10. यदि VM बूट नहीं करता है, लेकिन ड्राइवर स्थापित हैं, तो आप ऐसा करने का प्रयास कर सकते हैं:

    1. स्टार्टअप मरम्मत जो कुछ सिस्टम समस्याओं को ठीक कर सकती है जो विंडोज को शुरू होने से रोक सकती हैं।
    2. अंतिम समाधान: विंडोज 10 आईएसओ से बूट करते समय मरम्मत स्थापित करें । यह सभी एप्लिकेशन और उपयोगकर्ता सेटिंग्स को रखेगा, बस विंडोज़ और बूट को ताज़ा करना। हाल ही में विंडोज 10 आईएसओ का उपयोग करें।

यदि अंतिम चरण दुर्भाग्य से आवश्यक है, तो एक और कठिनाई का सामना करना पड़ सकता है यदि विंडोज बूट सीडी वर्टिओ डिस्क को समझ नहीं सकता है क्योंकि ये ड्राइवर Microsoft द्वारा इसमें शामिल नहीं थे। इस मामले में, एक को कस्टम बूट सीडी / यूएसबी बनाने की आवश्यकता होती है जिसमें ये ड्राइवर शामिल हैं, लेकिन सुनिश्चित करें कि आप एक विंडोज आईएसओ से शुरू करते हैं जो नवीनतम (वर्तमान में 1511) प्राप्त करके स्थापना के समान स्तर का है।

विंडोज में स्लिपस्ट्रीम ड्राइवरों के लिए कुछ ट्यूटोरियल यहां दिए गए हैं:


यह उत्तर काम करेगा (और विंडोज पर अन्य संस्करणों के लिए काम करता है), सिवाय इसके कि चरण 9 पर, जब आप बूट करने की कोशिश करते हैं तो एक INACCESSIBLE_BOOT_DEVICE त्रुटि होती है (यह वह जगह है जहां मैंने प्रश्न पोस्ट किया था)। एक स्टार्टअप मरम्मत (10.1) काम नहीं करता है और चरण 10.2 वास्तव में संभव नहीं है। एक सुधार स्थापित केवल पहले सिस्टम को बूट करके किया जा सकता है, सीडी के बिना, फिर setup.exeसीडी पर चल रहा है । यह वही है जो प्रश्न में लिंक का वर्णन करता है और जहां तक ​​मैं जानता हूं कि इसे करने का कोई अन्य तरीका नहीं है।
ग्रीम

वास्तव में मुझे कौन सी अन्य जानकारी प्रदान करनी है? मैंने आपको बार-बार कहा है कि विकल्प नहीं है। यहां समस्या यह है कि आप लगातार जोर देते हैं कि यह है। यदि यह मामला है कि 'इंटरनेट पर पाए जाने वाले विभिन्न लेखों में दर्जनों अन्य' हैं, तो संदर्भ एक है। एक लेख लिंक करें जो बताता है कि सीडी से बूट कैसे करें और एक मरम्मत स्थापित करना शुरू करें - पहले स्थापित सिस्टम को बूट किए बिना और setup.exeसीडी पर चल रहा है । एक विश्वसनीय स्रोत से एक लेख लिंक करें जो साबित करता है कि आप झूठ नहीं बोल रहे हैं और मैं माफी मांगूंगा और आपको अपना कीमती उत्थान दूंगा।
ग्रीम

उदाहरण के लिए देखें यह वीडियो इंस्टॉलेशन मीडिया से विंडोज 10 पर स्टार्टअप मरम्मत कैसे करें। यदि नहीं, तो कमांड प्रॉम्प्ट का उपयोग करने का प्रयास करें । जैसा कि मैंने ऊपर कहा था, आपको आईएसओ की स्लिपस्ट्रीम की आवश्यकता हो सकती है - मुझे कोई पता नहीं है यदि WIn10 इंस्टॉलेशन में VirtIO ड्राइवर शामिल हैं।
हैरमिक

या आप बूट किए गए Windows PE इंस्टॉलेशन छवि में VirtIO ड्राइवरों को जोड़ने के लिए drvload विधि को अनुकूलित कर सकते हैं ।
harrymc

2
हालांकि उपरोक्त उत्तर अच्छा लगता है और सरल लगता है, दुर्भाग्यवश pc-q35-2.5मशीन के अनुकरण / प्रकार का उपयोग करके मेरे वीएम के साथ , यह आईडीई नियंत्रक जोड़ना संभव नहीं है।
JPvRiel

5

harrymc से जवाब मेरे लिए ठीक काम करता है।

निम्नलिखित चरणों का पालन मैंने किया:

  1. खिड़कियों में virtio ड्राइवर स्थापित करें
  2. एक अतिरिक्त "डमी" पुण्य डिस्क जोड़ें। रिबूट और जांचें कि क्या "डमी" काम करता है।
  3. यदि चरण 2 काम करता है, तो बूट डिस्क को गुणियो पर स्विच करें।
  4. रीबूट
  5. अतिरिक्त "डमी" पुण्य डिस्क निकालें
  6. ...

कृपया उत्तर के रूप में "धन्यवाद" न जोड़ें। साइट में कुछ समय का निवेश करें और आप अपने पसंद के उत्तर को बढ़ाने के लिए पर्याप्त विशेषाधिकार प्राप्त करेंगे , जो आपको धन्यवाद कहने का सुपर उपयोगकर्ता तरीका है।
DavidPostill

1
यह एक अंडररेटेड उत्तर है - प्रोक्समॉक्स में विंडोज 10 को सभी ड्राइवरों को स्थापित करने के बाद भी शुरू करने में परेशानी हुई। मुझे एक छोटी सी 1 जीबी डिस्क बनाने के लिए एक Virtio block device के रूप में, VM को शुरू करना था, यह सत्यापित करना था कि यह सही ढंग से दिखाई दे रही है, और फिर मुख्य ड्राइव को Virtio में बदल दें। विंडोज 10 ने एचडीडी ड्राइवर का सही पता नहीं लगाया है, इसलिए मुझे स्विच बनाने से पहले इसे बूट पर लोड करने के लिए मनाना पड़ा।
अल्बर्ट एच

3

दुर्भाग्य से ड्राइवर को पूरी तरह से स्थापित करना संभव है और STILL को "दुर्गम बूट डिवाइस" मिल सकता है। कारण थोड़ा चौंकाने वाला है (मुझे लगता है): एक विन 10 इंस्टॉलेशन "ड्राइवरों को याद रखता है" जो कि आवश्यक था जब यह पहली बार स्थापित किया गया था, और डिफ़ॉल्ट रूप से बूट समय पर अन्य स्टोरेज ड्राइवरों को लोड नहीं करेगा। यह किया जाता है, ऐसा लगता है, "पाइरेसी" के लिए - यह अलग-अलग हार्डवेयर पर "समान" इंस्टॉलेशन को चलाने में मुश्किल बनाता है। इस पोस्ट में gentoo मंचों से इस "सुविधा" पर कुछ महान दस्तावेज हैं । सार इस प्रकार है:

जिन ड्राइवरों को निषिद्ध-से-लोड-एट-बूट के लिए लक्षित किया गया है, उन्हें निम्नानुसार निर्धारित किया जा सकता है: रजिस्ट्री कुंजी के भीतर Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services, जो कि स्थापना के लिए ज्ञात हर ड्राइवर के लिए एक उपकुंजी है। इस उपकुंजी का नाम सिर्फ चालक का नाम है। प्रत्येक ड्राइवर उपकुंजी के भीतर, एक उपकुंजी "STARTOVERRIDE" होगी यदि उस चालक को बूट पर लोड होने से रोका जाए। विशेष रूप से, STARTOVERRIDE उपकुंजी के भीतर एक पैरामीटर है जिसका नाम "0" है। यदि इस पैरामीटर का मान "3" है, तो इसे बूट समय पर लोड नहीं किया जाएगा। इस मान को 0 पर सेट करने के बजाय 'ओवरराइड' व्यवहार होगा।

मैं स्वयं केवल Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services पर जाता हूं और "STARTOVERRIDE" खोजता हूं। हर बार जब मैं इसे ढूँढता हूं, अगर इसके अंतर्गत नाम "0" होता है, जिसका मूल्य "3" होता है, तो मैं "0" में बदल जाता हूं। यह ओवरकिल लगता है, आपको केवल उस ड्राइव को बदलना होगा जो लोड करने की आवश्यकता है। मेरे मामले में उनमें से कई हैं, और मुझे कभी भी याद नहीं है, इसलिए मैं उस 'सेवाओं' खंड के भीतर एक "एफ 3-खोज" करता हूं।

और एक अंतिम टिप जो वर्तमान, हस्ताक्षरित, सद्गुण भंडारण के लिए आवश्यक नहीं है, लेकिन हो सकता है कि कोई और इसे पढ़ रहा हो अगर वे अधिक प्रयोगात्मक ड्राइवर का उपयोग करना चाहते हैं जो अभी तक हस्ताक्षरित नहीं है: मैंने पाया कि उपरोक्त करने के बाद EVEN चाल, मैं भी उन्नत विकल्प स्क्रीन में बूट करने के लिए और F7 ("ड्राइवर हस्ताक्षर सत्यापन अक्षम करें") चुनने की आवश्यकता है। आमतौर पर, ड्राइवर सत्यापन को अक्षम करने के लिए bcd ध्वज को सेट करना पर्याप्त नहीं था, क्योंकि मशीन को BCD पढ़ने से पहले ड्राइवर को लोड करने की आवश्यकता होती है और पता चलता है कि उसे हस्ताक्षर को सत्यापित करने की आवश्यकता नहीं है।

सभी में, माइक्रोसॉफ्ट का सबसे चमकदार घंटा नहीं। आपको वास्तव में अपने उपयोगकर्ताओं से घृणा करनी है यदि आप कानूनी उपयोगकर्ताओं को एक कृत्रिम कृत्रिम ब्लू-स्क्रीन देते हैं, तो लोगों को NVM डिस्क के साथ SATA डिस्क को बदलने (कहने) की अनुमति है और यह "बस काम है।"


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