वर्चुअलबॉक्स में हार्डडिस्क डेटा को बदलने में असमर्थ


3

विंडोज 10 का उपयोग करते हुए, मेरे पास एक वर्चुअलबॉक्स चल रहा है जो वैज्ञानिक लिफ़क्स है। अब मुझे एक "वास्तविक" हार्डड्राइव का अनुकरण करने की आवश्यकता है, और जैसा कि Google, फ़ोरम, और सुपरयूज़र ने मुझे सिखाया है, इसे इस तरह से प्राप्त किया जा सकता है:

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision" "ISD000081"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/SerialNumber" "83CJ0015"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/ModelNumber" "INTEL SSD1602CW"

.... जो मेरे द्वारा दर्ज किए गए आदेश हैं।

हालांकि, hdparm -I /dev/sdaअभी भी आउटपुट "VBOX HARDDISK" स्टॉक को अपने संबंधित डेटा के साथ सूचीबद्ध करता है।

चीजें जो मैंने कोशिश की हैं:

  • डिस्क नियंत्रक को डबलचेक करें। यह PIIX4 पर सेट है। मैंने भी setextradatapiix3 के लिए कोशिश की , बस मामले में, लेकिन परिणाम नहीं बदलता है।
  • जैसा कि vboxmanageशब्दशः के संदर्भ में बहुत कम प्रस्तुत किया गया है, मैंने अपनी आज्ञा को बढ़ाने का निर्णय लिया, यह देखने के लिए कि क्या स्पष्ट त्रुटियां सामने आने के कोई तरीके थे:
    • गलत तरीके से मशीन का नाम टाइप करना: "TestInstallaoeu"। एक त्रुटि फेंकता है, यह दर्शाता है कि मूल रूप से टाइप किया गया मशीन का नाम सही है
    • बदलने के लिए पैरामीटर को चुकाना "VBoxInternal/Bogus/Parameter" "BogusData":। यह एक त्रुटि उत्पन्न नहीं करता है, यह दर्शाता है कि मेरे आदेश में एक टाइपो हो सकता है (भले ही मैं एक को स्पॉट करने में असमर्थ हूं)।
  • मैंने ऊपर के रूप में डबलक्वाट्स में कमांड लपेटने के साथ और बिना दोनों की कोशिश की है, लेकिन यह कोई फर्क नहीं पड़ता, क्योंकि वैसे भी कोई व्हाट्सएप नहीं हैं।

मैं आगे बढ़ने के नुकसान में हूं। मैंने जो कुछ पढ़ा है वह इंगित करता है कि इसे वैसे ही काम करना चाहिए जैसा कि है, लेकिन मेरे अनुभव इसके विपरीत हैं।


संपादित करें 1:

अनुरोध के रूप में (आंशिक रूप से) अतिरिक्त डेटा।

  • वर्चुअलबॉक्स संस्करण: 5.1.4 r110228
  • होस्ट ओएस: विंडोज 10
  • अतिथि OS: वैज्ञानिक लिनक्स 6.7 (कर्नेल 2.6.32)

वर्चुअल मशीन निर्देशिका में मेटाडेटाफ़ाइलों में से कोई भी मेरे द्वारा दर्ज किए गए डेटा को शामिल नहीं करता है। .vboxफ़ाइल और फ़ाइल दोनों की जाँच की .vbox-prev

.vboxहार्डडिस्क के लिए प्रवेश:

  <HardDisks>
    <HardDisk uuid="{808541e0-6629-47cd-96b3-7ff6021d9dcc}" location="TestDisk.vdi" format="VDI" type="Normal"/>
  </HardDisks>

.vboxस्टोरेज कंट्रोलर के लिए प्रवेश:

<StorageController name="IDE" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true">
        <AttachedDevice passthrough="false" type="DVD" hotpluggable="false" port="1" device="0"/>
        <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
          <Image uuid="{808541e0-6629-47cd-96b3-7ff6021d9dcc}"/>
        </AttachedDevice>
      </StorageController>

एक बात जो मैंने फ़ाइल में देखी है वह यह है कि मेरे द्वारा दर्ज बोगस-कमांड से अवशेष हैं:

<ExtraDataItem name="VboxInternal/Bogus/Parameter" value="asdf"/>

... तो कम से कम मेरे कुछ आदेशों का इरादा है।

.vboxअपनी संपूर्णता में यहाँ देखा जा सकता: Pastebin लिंक


नायब: मैंने अभी देखा कि डेटा के अनाउंसमेंट में एक अटैचमेंट में मैंने इस पोस्ट और लिंक किए गए पास्टबिन में मशीन का नाम और डिस्क का नाम उँगलियों पर रख दिया। "TestDisk" और "Testinstall" के किसी भी संदर्भ को पढ़ते समय, ध्यान रखें कि ये प्रतिस्थापन लेबल हैं जो वास्तविकता में समान नाम हैं। इसलिए "Testinstall" और "TestDisk" इस मामले में विनिमेय हैं।


संपादित करें 2: विभिन्न संयोजनों की कोशिश करने के बाद, मैंने अब आदेशों का एक सेट ढूंढ लिया है जो वास्तव में इसे .vboxफ़ाइल में बनाते हैं । सबसे अधिक संभावना एक टाइपो ने मुझे ऐसा करने से पहले रोका। आदेश थे:

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/ModelNumber" "INTEL SSD1602CW"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision" "1602CW.1.3"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/SerialNumber" "1602CW1800200926"

हालांकि, hdparm -I /dev/sdaअभी भी आउटपुट का कहना है कि डिस्क "VBOX HARDDISK" मॉडल की है। दूसरे शब्दों में, मुद्दा वही रहता है।


2
बस कुछ मूर्ख: क्या आपने वर्चुअल मशीन को रिबूट किया है? (बस मामले में यह किसी तरह कैश किया गया था ...)। कृपया वर्चुअलबॉक्स का संस्करण, अतिथि कर्नेल और भौतिक रूप से hdd डिस्क्रिप्शन फाइल के अंदर जोड़ें ( *.vboxयदि आपकी कमांड कुछ संशोधित हो तो HDD इमेज फाइल के साथ फ़ोल्डर में )। सौभाग्य।
हस्तूर

@ हस् त य-ईश। जब मैं vboxmanage कमांड चला रहा था तब मशीन बंद थी। मैं तब वर्चुअल मशीन को बूट करने और डिस्क की जांच करने के लिए आगे बढ़ा। अतिरिक्त वर्सियन डेटा को प्रश्न में संपादित किया गया।
जरमुंड

SL में जाएं और बिना किसी तर्क के माउंट कमांड करें, इससे आपको (आदि) / etc / mtab फ़ाइल दिखनी चाहिए।
Xalorous

जवाबों:


0

मेरा मानना ​​है कि आपने setextradata/getextradataविकल्प के अर्थ को गलत समझा । VBox मैनुअल के अनुसार ,

ये कमांड आपको एक वर्चुअल मशीन या एक वर्चुअलबॉक्स कॉन्फ़िगरेशन के लिए स्ट्रिंग डेटा संलग्न और पुनः प्राप्त करने देते हैं (वर्चुअल मशीन नाम के बजाय वैश्विक निर्दिष्ट करके)।

प्रस्तुत उपयोग का मामला निम्नलिखित है:

# VBoxManage setextradata Fedora5 installdate 2006.01.01
# VBoxManage getextradata Fedora5 installdate
    VirtualBox Command Line Management Interface Version 5.1.6
    (C) 2005-2016 Oracle Corporation
    All rights reserved.

    Value: 2006.01.01

यहाँ installdateनिम्न स्ट्रिंग से जुड़ा एक कीवर्ड है 2006.0.1.01; कीवर्ड को जोड़ने से संबंधित स्ट्रिंग वापस आ जाती है। दूसरे शब्दों में, VM setextradata/getextradataका एक तरीका है burningकुछ प्रकार के डेटा जिनकी पुनर्प्राप्ति भविष्य में मददगार हो सकती है।

इसका एमुलेट [आईएनजी] से "वास्तविक" हार्डड्राइव से कोई लेना-देना नहीं है । AFAIK, VBox में ऐसा कोई विकल्प नहीं है; यदि आप अन्यथा सोचते हैं, तो क्या आप कुछ संदर्भ प्रदान कर सकते हैं?

आप जो लिखते हैं, उसमें से आपके द्वारा उल्लिखित कमांड को किसी ऐसे व्यक्ति से लिया जाता है जो अपने वीएम से जुड़े कुछ लेबल एचडीडी के गुणों का विवरण देता है, जिस पर वीएम चल रहा था। मैनुअल द्वारा दिए गए वाक्यविन्यास के बाद, स्ट्रिंग "ISD000081", "83CJ0015", "INTEL SSD1602CW" को वीएम को TestInstall नामक एक (लंबे) कीवर्ड के साथ फाइल पथों द्वारा प्रतिनिधित्व किया गया था। यदि आपके पास एक वीएम है जिसे टेस्ट इनस्टॉल कहा जाता है, तो ये तार वीएम को ऊपर दिए गए आदेशों के साथ क्वेरी करके उपलब्ध होंगे, उदाहरण के लिए

vboxmanage getextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision"

स्ट्रिंग वापस करना चाहिए

 "ISD000081"

आप यह जांचने की कोशिश कर सकते हैं कि मैंने जो आपको बताया था वह सही है, या आप बस xml फ़ाइल खोल सकते हैं जो VM को आम तौर पर TestInstall.vbox कहा जाता है , और आपको इस तरह एक नई लाइन मिलेगी।

<ExtraDataItem name="keyword" value="character_string"/>

जो फिर से दिखाता है कि क्या कमंडल सेट्राट्रैडटा / गेटेक्स्ट्राडाटा का उपयोग किया जाता है।


सामान्य तौर पर आप सही होंगे, लेकिन वर्चुअल बॉक्स को सेट करने के लिए वर्चुअल बॉक्स की आंतरिक दिनचर्या द्वारा VboxInternal कुंजी भी पढ़ी जाती है। जैसे, वे आंतरिक आदेशों के परिणामों को प्रभावित करते हैं जैसे कि hdparm
LSerni

-1

परिदृश्य

मेरा मानना ​​है कि आपके पास VM पर कुछ सॉफ़्टवेयर हैं जो यह जांचता है कि यह एक विशिष्ट हार्ड डिस्क पर चल रहा है, और ऐसा इसके मेक और मॉडल को पढ़कर होता है। तो, सॉफ्टवेयर असली मशीन पर चलेगा लेकिन वर्चुअलाइज्ड मशीन पर ऐसा करने से मना कर देगा।

समान रूप से, आप नहीं चाहते हैं कि सॉफ़्टवेयर को यह एहसास हो कि यह एक वर्चुअल मशीन पर चल रहा है, और सॉफ़्टवेयर ने हार्ड डिस्क जैसे "VBOX" के फैक्ट्री ब्रांड के टेलटेल्स की जांच की।

यदि यह परिदृश्य सही है , तो आपका दृष्टिकोण भी सही है - वर्चुअलबॉक्स ने वास्तविक मशीन की समान जानकारी की रिपोर्ट की है। यह एक्स्ट्राडाटा संपत्ति के पेड़ की एक विशेष शाखा का उपयोग करके किया जाता है।

यदि यह सही नहीं है , और आप कुछ अन्य का अनुकरण करना चाहते हैं, संभवतः हार्ड डिस्क की भौतिक संपत्ति (समय, विलंबता, या कुछ और), तो @ MariusMatutiae का उत्तर सही है - जो आप कर रहे हैं वह सही नहीं है इसे करने का तरीका, और यह बस काम नहीं करेगा।

यह काम करता हैं!

आप शायद गलत VBoxManage सिंटैक्स का उपयोग कर रहे हैं, या हो सकता है कि आप गलत कंट्रोलर का उल्लेख कर रहे हों (जैसे कि आप PIIX4 का उपयोग नहीं कर रहे हैं, लेकिन कहते हैं, AHCI)। AHCI या PIIX3 का उपयोग करते समय आप अभी भी PIIX4 एक्स्ट्राटाटा सेट कर सकते हैं, सिवाय इसके कि वे मशीन को प्रभावित नहीं करेंगे।

मैंने अपने एक वीएम पर कोशिश की है, जो एएचसीआई हार्ड डिस्क (सभी एक लाइन पर) का उपयोग करता है:

D:\Programmi\Oracle\VirtualBox>vboxmanage setextradata
    "Aladdin-Clone" "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" 
    "HITACHI HTD723216L9SA61"

और मैंने प्राप्त किया (मैंने केवल मॉडल संख्या बदल दी है, लेकिन यह विश्वास करने का कोई कारण नहीं है कि अन्य दो कुंजियाँ काम नहीं करेंगी)

/dev/sda:

ATA device, with non-removable media
        Model Number:       HITACHI HTD723216L9SA61
        Serial Number:      VB35affeb2-744b8198
        Firmware Revision:  1.0
Standards:
        Used: ATA/ATAPI-6 published, ANSI INCITS 361-2002
        Supported: 6 5 4

अद्यतन करें

जीथब पर एक पूर्ण पायथन लिपि है, " एंटीवमेडिटेशन ", जो एक वर्चुअलबॉक्स मशीन को अनुकूलित करने की अनुमति देता है ताकि यह दूसरे के समान हो। आप डेटा को बचाने के लिए एक मशीन पर स्क्रिप्ट चला सकते हैं और यह VM को संशोधित करने के लिए एक स्क्रिप्ट उत्पन्न करेगा ... या आप स्रोत कोड को देख सकते हैं और वहां से कमांड उठा सकते हैं। ध्यान दें कि नियंत्रक के आधार पर ड्राइव मेक और मॉडल सेट करने के लिए एक से अधिक कमांड हैं


आप @Jarmund की तरह ही संतुलन बना रहे हैं: आप जो भी कर रहे हैं, और वही आपके द्वारा संदर्भित अजगर स्क्रिप्ट पर लागू होता है, VM के लेबल को बदलना है , आप कुछ भी अनुकरण नहीं कर रहे हैं । ओपी कहता है: मुझे अब "वास्तविक" हार्डड्राइव का अनुकरण करने की आवश्यकता है , यह एक अलग मामला है।
MariusMatutiae

मैंने "असली हार्ड डिस्क का अनुकरण" किया, जिसका अर्थ है "अतिथि VM में कुछ है विश्वास करो कि यह एक विशिष्ट हार्ड डिस्क पर चल रहा है"। हार्ड डिस्क निश्चित रूप से पहले से ही नकली है, जो कि VirtualBox के बारे में है।
LSerni

1
Google रिटर्न: इम्यूलेट: ...: (कम्प्यूटिंग) फ़ंक्शन या क्रिया (एक अलग कंप्यूटर, सॉफ्टवेयर सिस्टम, आदि) को पुन: उत्पन्न करता है।
MariusMatutiae

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