ভার্চুয়ালবক্সে কীভাবে স্বেচ্ছাসেবীর স্ন্যাপশট বেস ভিডিআইতে মার্জ করা যায়


14

আমি একটি হার্ডডিস্ক থেকে অন্যটিতে ভিএম স্থানান্তর করেছি। এখন আমি বেস ভিডিআই এবং একটি সম্পূর্ণ গুচ্ছ স্ন্যাপশট রেখেছি left

আমার পদক্ষেপ

  • পুরানো ভিএম ডিরেক্টরিটি নতুন এইচডিডি-তে অনুলিপি করা হয়েছে
  • পুরানো ভিএম মুছে ফেলা হয়েছে এবং মেশিন ব্যবহার করে নতুন ভিএম যুক্ত করেছেন>> অ্যাড করুন এবং পুরানো এক্সএমএল ফাইল সরবরাহ করুন
  • সংঘাতের কারণে বেস ভিডিআই ফাইল যুক্ত করা যায়নি তাই বেস ভিডিআইয়ের ইউআইডিটি পরিবর্তিত হয়েছে

    VBOXMANGE.EXE internalcommands sethduuid  <path/to/vdi>
    
  • একটি স্ন্যাপশটে রোলব্যাক করার চেষ্টা করা হয়েছে, তবে মনে হচ্ছে ভিএম পুরানো এইচডিডি (যা ফর্ম্যাট করে গেছে) স্ন্যাপশট সন্ধান করছে

এটি ত্রুটি (নেটওয়ার্কটির নাম):

Failed to restore the snapshot networked of the virtual machine lfs.

Could not open the medium 'H:\vm\ft.vdi'.

VD: error VERR_PATH_NOT_FOUND opening image file 'H:\vm\ft.vdi' (VERR_PATH_NOT_FOUND).

Result Code: E_FAIL (0x80004005)
Component: Medium
Interface: IMedium {53f9cc0c-e0fd-40a5-a404-a7a5272082cd}

পুরানো এইচডিডি ড্রাইভ এইচ ছিল: নতুনটি হ'ল ড্রাইভ এন:

আমি স্ন্যাপশটগুলি / ভিএমকে দেখতে কীভাবে পরিবর্তন করতে পারি N:\vm\ft.vdiবেস ভিডির সন্ধানে ? আমি ইতিমধ্যে সাধারণভাবে ভার্চুয়ালবক্সে ডিফল্ট সেটিংস সেট করেছি (ডিফল্ট ভিএম / ভিএম স্ন্যাপশট অবস্থান)।

বা যদি তা না হয় তবে আমি বেস ভিডিআইয়ের সাথে পুরানো স্ন্যাপ শটটি কীভাবে একীভূত করতে পারি যে কেবলমাত্র ভিডিআইর ইউআইইডি পরিবর্তন হয়েছে?

উত্তর:


10

আমি কীভাবে আমার সমস্যার সমাধান করেছি তা এখানে।

প্রথমে আমি জর্ডডোনসিএম দ্বারা স্ক্রিপ্টটি ব্যবহার করে আমার বেস ভিডিআই ফাইলটিতে ইউআইডি পরিবর্তন করতে অস্বীকার করি

তারপরে আমি নতুন অবস্থানের সাথে মেলে খালি vbox ফাইলের মধ্যে পাথগুলি পরিবর্তনের চেষ্টা করেছি। এটি বিভিন্ন বিভিন্ন ত্রুটি পপ-আপ হিসাবে কাজ করে নি এবং আমি এমনকি vbox ফাইলটি ব্যবহার করে ভিএম যোগ করতে সক্ষম হইনি।

সুতরাং আমি এই ব্লগ নিবন্ধটি পিটার পোর্টারকে পেয়েছি যিনি পরামর্শ দিয়েছেন:

যেহেতু প্রতিটি .vdi কেবলমাত্র শেষগুলি থেকে বিভক্ত অঞ্চলগুলিকে ধারণ করে .vdi, কাল্পনিক ক্রমে .vdi এর অনুলিপিটি আমাদের একটি .vdi জাল করে যাতে সমস্ত পূর্ববর্তী স্ন্যাপশটের একটি সম্পূর্ণ অনুলিপি থাকে।

...

আপনার আসল উপর ভিত্তি করে একটি নতুন .vdi ফাইল তৈরি করতে "VBoxManage clonehd" কমান্ডটি ব্যবহার করুন, তারপরে প্রতিটি তৈরি ফাইলটি যুক্ত করুন "বিদ্যমান" আর্গুমেন্টটি ব্যবহার করে কেবলমাত্র বিদ্যমান .vdi তে আপনার ডেটা যুক্ত করা যায়। নিম্নলিখিত কমান্ডগুলির তালিকা আমার উপরের উদাহরণের উপর ভিত্তি করে:

ভিবক্সম্যানেজ ক্লোনহডি মেশিন.ভিডি মেশিন-পূর্ণ.ভিডি

ভিবক্সম্যানেজ ক্লোনহড স্ন্যাপশটস {ইউইউডি 1} .ভিডি মেশিনে পূর্ণ.ভিডি

ভিবক্সম্যানেজ ক্লোনহড স্ন্যাপশটস {ইউইউডি 2} .ভিডি মেশিনে পূর্ণ.ভিডি

VBoxManage ক্লোনড স্ন্যাপশটস {ইউইউডি 3} .ভিডি মেশিনে পূর্ণ.ভিডি

VBoxManage ক্লোনড স্ন্যাপশটস {UID4} .vdi মেশিন-পূর্ণ.ভিডি

এটি আপনাকে একটি "মেশিন-ফুল.ভিডি" ফাইল দেবে যা প্যারেন্ট .vdi ফাইলগুলির সাথে কোনও সম্পর্ক ছাড়াই সক্রিয় অবস্থায় আপনার মেশিনের পুরো রাজ্যের প্রতিনিধিত্ব করে। আপনি এখন একটি নতুন ভার্চুয়াল মেশিনে এই "মেশিন-ফুল.ভিডি" ফাইলটি ব্যবহার করতে পারেন বা আপনার বিদ্যমান ভিএম সম্পাদনা করে পুরানো .vdi ফাইলটি সরিয়ে এই .vdi যুক্ত করতে পারেন।

সামান্য কিছু টুইটের মাধ্যমে যা আমার জন্য কাজ করেছে বলে মনে হয়েছিল:

এটি হ্যান্ড ডিস্ক এবং এর স্ন্যাপশট:

<HardDisk uuid="{ed1428ca-76be-440a-894b-e666b50f5c86}" location="H:/vm/ft.vdi" format="VDI" type="Normal">
          <HardDisk uuid="{8d8be78f-6648-4503-bee3-8810cb853a99}" location="Snapshots/{8d8be78f-6648-4503-bee3-8810cb853a99}.vdi" format="VDI">
            <HardDisk uuid="{cce0ee4f-5052-4be7-81ff-47ea08202716}" location="Snapshots/{cce0ee4f-5052-4be7-81ff-47ea08202716}.vdi" format="VDI">
              <HardDisk uuid="{c297d4b9-972d-4b07-a839-5d76ee8d0387}" location="Snapshots/{c297d4b9-972d-4b07-a839-5d76ee8d0387}.vdi" format="VDI">
                <HardDisk uuid="{8e9ca914-648f-464c-b515-2606c644d7f0}" location="Snapshots/{8e9ca914-648f-464c-b515-2606c644d7f0}.vdi" format="VDI"/>
              </HardDisk>
            </HardDisk>
          </HardDisk>
        </HardDisk>

এগুলি আমি চালিত কমান্ডগুলি (দুঃখিত এর কিছু অংশ এর উইন্ডোগুলি কেটে ফেলা হয়েছে ...):

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd N:\vm\ft.vdi N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd "N:\vm\VirtualBox       VMs\lfs\Snapshots\{8d8be78f-6648-4503
VBoxManage.exe: error: Parent medium with UUID {ed1428ca-76be-440a-894b-e666b50f5c86} of the medium 'N:\vm\Vi
03-bee3-8810cb853a99}.vdi' is not found in the media registry ('C:\Users\   <user>/.VirtualBox\VirtualBox.xml')
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component Medium, interface    IMedium, callee IUnknow
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite,   fForceNewUuidOnOpen, pM
xManageDisk.cpp

ক্র্যাপ মনে হয় মিডিয়ারেজিস্ট্রি-> হার্ডডিস্কস-এর অধীনে ভার্চুয়ালবক্স.এক্সএমএল-এ আমার একটি এন্ট্রি যুক্ত করা দরকার, তবে প্রতিটি কপির পরে আমাকে প্রতিটি স্ন্যাপশটকে কালানুক্রমিক ক্রমে যুক্ত করতে হবে তা নিশ্চিত করতে হবে। সুতরাং এটি এর মত:

Copy VM
Add entry to VirtualBox.xml
Copy VM ...

এবং বাকী আমি যা করেছি তা যদি অন্য কাউকে সহায়তা করে:

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox   VMs\lfs\Snapshots\{8d8be78
_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox   VMs\lfs\Snapshots\{cce0ee4f-5052-4be7-81ff-47ea08202716}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{c297d4b9-972d-4b07-a839-5d76ee8d0387}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4

C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{8e9ca914-648f-464c-b515-2606c644d7f0}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4

এবং তারপরে আমি কেবল ft_full.vdi এর বেস হিসাবে ব্যবহার করে একটি নতুন ভিএম তৈরি করেছি। গুই সেটিংস প্যানে বাকী সেটিংস মেলাল।


1
দেখে মনে হচ্ছে আপনি এটি আরও দ্রুত করতে পেরেছিলেন superuser.com/questions/590968/…
আন্দ্রে রেজেন্টভ

4

আমি কেবল এই মাথা ব্যাথা পেরিয়েছি এবং একটি আপাত বোকা সমাধান রয়েছে। খুব খারাপ লাগলো এখানে আসতে আমার পুরো দিন লেগেছে।

আপনি VBoxManage.exe অভ্যন্তরীণ কম্যান্ডস ডাম্ফডিনফো একবার দেখুন, আপনি দেখতে পারেন যে প্রতিটি ভিডিআই এর পিতামাতার সম্পর্কে তথ্য আছে। সুতরাং, আমি যা করেছি তা একটি ফাঁকা মেশিন তৈরি করে এবং "ভাঙা" পিতামাতার এইচডি মাধ্যমিক ড্রাইভ হিসাবে যুক্ত করা হয়েছে। এটি মিডিয়া ম্যানেজারের মধ্যে রাখে।

তারপরে, আমি ফাঁকা ভিএম-তে একটি এসএটিএ নিয়ন্ত্রণকারী যুক্ত করেছি এবং স্তর 3 স্ন্যাপশট যুক্ত করেছি। ঠিক আছে ক্লিক করুন। আবার সম্পাদনা করুন এবং স্তর 2 স্ন্যাপশট যোগ করুন, ওকে ক্লিক করুন। সম্পাদনা করুন, স্তর 1 স্ন্যাপ শট যুক্ত করুন।

এটি তাদের ভিএম এর ভিতরে পৃথক ড্রাইভ করে তোলে, তবে মিডিয়া ম্যানেজারের ভিতরে তারা সমস্ত একে অপরের সাথে যুক্ত থাকে।

চূড়ান্ত পদক্ষেপটি হল, কেবলমাত্র ব্যাংক ভিএম মুছুন এবং আপনার ওল্ড ভিএম যুক্ত করুন। সম্পন্ন ... এবং হ্যাঁ, এটি নির্বোধ / সরল।

c:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands dumphdinfo D:
\Virtual_box\Virtual_box_HD_C.vdi

1 Header: uuidCreation={13ea5785-58db-4ad9-8459-9b13d89a3aaa}
1 Header: uuidModification={b1bfd84d-6fcc-4640-80fc-b7c1a6b929cb}
1 Header: uuidParent={19ed1b87-d127-402d-b463-59899c683a47}
  2 Header: uuidCreation={19ed1b87-d127-402d-b463-59899c683a47}
  2 Header: uuidModification={709f1fad-68a3-47c7-9336-f3409fcae95b}
  2 Header: uuidParent={436c1ffd-04ee-4d6b-968c-de95e65d8a5a}
    3 Header: uuidCreation={436c1ffd-04ee-4d6b-968c-de95e65d8a5a}
    3 Header: uuidModification={049d869e-89c2-48aa-b0cc-eb324895f3b9}
    3 Header: uuidParent={e09c65f4-828d-4a53-8ecc-20365d43a52e}
      4 Header: uuidCreation={e09c65f4-828d-4a53-8ecc-20365d43a52e}
      4 Header: uuidModification={6c397704-fe65-4661-b60f-767e207ffb58}
      4 Header: uuidParent={00000000-0000-0000-0000-000000000000}

একটি সরলকরণ হ'ল, আমি সহজেই পিতামাতাকে এবং তারপরে ফাইল ম্যানেজার থেকে ভার্চুয়াল ডিস্ক ম্যানেজারের কাছে স্ন্যাপশট ডিস্ক ফাইলটি ফেলেছিলাম। । তারপর আমি .vbox ফাইল খুলতে পারে (আমি দুই লাইন যা ভাগ করা ফোল্ডার যা আমার লিনাক্স ইনস্টলেশনের উপর উপস্থিত করেনি রেফারেন্স মন্তব্য করতে হয়েছিল
zoechi

0

পুরানো পথের নাম ( H:ড্রাইভে) কেবলমাত্র .vboxভিএম এর জন্য ফাইলটিতে নির্দিষ্ট করা যেতে পারে , এটি কেবলমাত্র একটি এক্সএমএল ফাইল। যদি তা হয় তবে আপনি সেই ফাইলটির একটি অনুলিপি সংরক্ষণ করতে পারেন, নতুন পথের নাম ( N:ড্রাইভের একটি) হিসাবে পাথনামটি সম্পাদনা করতে পারেন এবং দেখুন যে এটি সমস্যার সমাধান করে।


1
আমি <হার্ড ডিস্ক> নোডে প্রাসঙ্গিক বৈশিষ্ট্যটি পরিবর্তন করেছি এবং ভিএম পুনরায় যুক্ত করেছি। তবে এটি ত্রুটিটি ফিরিয়ে দেয়: A differencing image of snapshot {xxx} could not be found. Could not find an open hard disk with UUID {yyy}
শে

এটি আমার কাছে ঘটে থাকে সম্ভবত আমি কেবলমাত্র ইউইউডিটিকে পুরানো ডিস্ক ইউইডিতে সেট করতে পারি। এটা কি সম্ভব?
জামাতেজে

ইউইডিকে পিছনে সেট করতে এই ভদ্রলোকের স্ক্রিপ্টটি ব্যবহার করেছেন: ভার্চুয়ালবক্স
ভিডিআইয়ের ইউইউডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.