it-swarm.dev

كيف يمكنني تغيير UUID من القرص الظاهري؟

أحاول إنشاء جهاز ظاهري جديد باستخدام Oracle VirtualBox ، باستخدام قرص ثابت موجود بالفعل. عندما أحاول تحديد ملف القرص الثابت الموجود ، وهو ملف.

لذلك حاولت الأمر التالي لتغيير UUID الخاص به.

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

لقد حصلت على هذا الخطأ.

خطأ في بناء الجملة: معلمة UUID غير صالحة

كيف يمكنني حل هذا؟

119
Chandan Raikar

الأمر الصحيح هو التالي.

VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd"

يحتوي مسار القرص الظاهري على مسافة ، لذلك يجب وضعه في علامات اقتباس مزدوجة لتجنب تحليلها كمعلمتين.

149
Chandan Raikar

عملت التالية بالنسبة لي:

  1. تشغيل مجموعة VBoxManage Internalcommands sethduuid "ملف VDI/VMDK" مرتين (المرة الأولى فقط لتكوين UUID بشكل مريح ، يمكنك استخدام أي طريقة أخرى لإنشاء UUID بدلاً من ذلك)

  2. افتح الملف .vbox في محرر نصوص

  3. استبدل UUID الموجود في Machine uuid = "{...}" بمعرف UUID الذي حصلت عليه عند تشغيل sethduuid في المرة الأولى

  4. استبدل UUID الموجود في HardDisk uuid = "{...}" وفي الصورة uuid = "{}" (في النهاية) مع UUID التي حصلت عليها عندما قمت بتشغيل sethduuid في المرة الثانية

28
borchvm

على الرغم من أنك قد قمت بحل المشكلة ، إلا أنني قمت بنشر السبب هنا لبعض الآخرين مع مشكلة مماثلة.

السبب هو وجود مسافة في المسار (اسم الدليل VirtualBox VMs) والتي ستفصل الأمر. لذلك يظهر الخطأ.

10
Java Xu

لقد بحثت في الويب عن إجابة تتعلق بـ MAC OS ، لذلك .. الحل هو

cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/

VBoxManage internalcommands sethduuid "full/path/to/vdi"
10
Al3x

إذا قمت بنسخ قرص (ملف vmdk) من جهاز لآخر وتحتاج إلى تغيير UUID للقرص في النسخة ، فلن تحتاج إلى تغيير UUID للجهاز كما هو مقترح من قبل إجابة أخرى.

كل ما عليك القيام به هو تعيين UUID جديد لصورة القرص:

VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb

ثم استبدل UUID القديم بأحد تم إنشاؤه حديثًا في مكانين في ملف * .vbox الخاص بك

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

و في

    <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
      <Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/>
    </AttachedDevice>

عملت بالنسبة لي ل VirtualBox الاصدار. 5.1.8 يعمل على نظام التشغيل Mac OS X El Capitan.

8
Oleg Gryb

فشل الأمر لأنه يحتوي على مساحة في أحد اسم المجلد ، أي VirtualBox VMs.

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

إذا لم تكن هناك مساحة في اسم المجلد أو اسم الملف ، فسيعمل الأمر حتى بدون اقتباسه ، على سبيل المثال بعد تغيير "VirtualBox VMs" إلى "VBoxVMs"

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd
5
januarvs

على الرغم من أن هذا السؤال قديم ، إلا أن تغيير UUID على محرك أقراص ثابت ظاهري في نظام windows سيجعل النوافذ تتعامل معه كجهاز غير نشط (حيث يلاحظ تغيير القرص) وسيطلب إعادة تنشيط!

3
aniston

نفس الحل مثل @ Al3x لنظام التشغيل Windows x64 ، في cmd.exe:

cd %programfiles%\Oracle\VirtualBox

VBoxManage internalcommands sethduuid "full/path/to/.vdi"

هذا يعشوئ UUID من القرص. نصيحة للمحترفين: انقر بزر الماوس الأيمن على ملف .vdi أثناء الضغط على مفتاح shift وحدد "نسخ كمسار" للحصول على "full/path/to/.vdi" وتمكين التحرير السريع في cmd.exe ، ثم انقر بزر الماوس الأيمن للصق.

3
masterxilo

البديل الآخر للحل الأصلي الخاص بك هو استخدام رمز الهروب \ قبل المسافة:

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
2
Whitaker