Loading

×Sorry to interrupt
CSS Error

Refresh

Cookie Preference Center

General Information on cookies

When you visit our website, we use cookies to ensure that we give you the best experience. This information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies by clicking on the different category headings to find out more and change your settings. However, blocking some types of cookies may impact your experience on the site and the services we are able to offer. Further information can be found in our

Cookie Policy.

Strictly Necessary

Strictly Necessary

Always Active

Strictly Necessary

Strictly necessary cookies are always enabled since they are essential for our website to function. They enable core functionality such as security, network management, and website accessibility. You can set your browser to block or alert you about these cookies, but this may affect how the website functions. For more information please visit www.aboutcookies.org or www.allaboutcookies.org.

Cookie Details‎

Performance

Performance

Performance

Performance cookies are used to analyze the user experience to improve our website by collecting and reporting information on how you use it. They allow us to know which pages are the most and least popular, see how visitors move around the site, optimize our website and make it easier to navigate.

Cookie Details‎

Please confirm your settings by refreshing the page.

Functional

Functional

Functional

Functional cookies help us keep track of your past browsing choices so we can improve usability and customize your experience. These cookies enable the website to remember your preferred settings, language preferences, location and other customizable elements such as font or text size. If you do not allow these cookies, then some or all of these services may not function properly.

Cookie Details‎

Advertising

Advertising

Advertising

Advertising cookies are used to send you relevant advertising and promotional information. They may be set through our site by third parties to build a profile of your interests and show you relevant advertisements on other sites. These cookies do not directly store personal information, but their function is based on uniquely identifying your browser and internet device.

Cookie Details‎

Advertising Cookies

Consent Leg.Interest

Select All Vendors

Select All Vendors

Select All Hosts

Select All

Clear Filters

Information storage and access

Apply

Confirm My Choices Reject All Allow All

Skip to main content

Products and Accounts

Support

Knowledge

Communities

Success

Learning

My Subscriptions

Loading

Knowledge Base

Replace Existing VMDK with New VMDK (1003482)

Last Updated: 1/4/2008Categories: Total Views: 7838Language:
English

Subscribe to get an email
newsletter with new updates

Please provide article feedback:

Details

We have virtual machines with a number of existing virtual disks. We need to specify that the first device retains the first device ID. I am trying to do this programmatically, by replacing a VMDK file with another VMDK file in a flat file format. I also want to use the same backing file for the new virtual disk as that for the existing flat virtual disk, but I receive an error.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Is there a way to pass DeviceConfigReq that will replace the VMDK backing file with a fresh one without destroying the actual device? Or is there a way to reinitialize the disk file in VirtualCenter 2.0?

Solution

To replace an existing VMDK with a new unformatted one, you can create a new disk file and perform an edit operation on the virtual device:

1. Identify the device on which the virtual disks are stored. For example:

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

/* Get the device from VM of type “com.vmware.vim.VirtualDisk”. The code retrieves the first such device found*/

for(int i=0;i<dev.length;i++) < font {></dev.length;i++)>

System.out.println("dev " + dev[i].getClass().getCanonicalName());

if(dev[i].getClass().getCanonicalName().equalsIgnoreCase("com.vmware.vim.VirtualDisk")) {

device = dev[i];

i = dev.length + 1;

if(device != null) {

2. Create a new backing file. Use a new file name. For example:

// Create new backing file information, using a new file name

VirtualDiskFlatVer2BackingInfo diskfileBacking1 = new VirtualDiskFlatVer2BackingInfo();

diskfileBacking1.setFileName("[str] Test1/Testnew.vmdk");

diskfileBacking1.setDiskMode("persistent");

3. Set fileOperation to create and setOperation to edit.

Setting these two operations must be correct:

To create a new backing file, fileOperation must be “create”.

To edit the existing device setOperation must be “edit”.

For example:

dspec.setFileOperation(VirtualDeviceConfigSpecFileOperation.create);

dspec.setOperation(VirtualDeviceConfigSpecOperation.edit);

array[0] = dspec;

4. Set this new backing file information into the virtual device. For example:

//Set the backing file information in the device

device.setBacking(diskfileBacking1);

VirtualMachineConfigSpec spec = new VirtualMachineConfigSpec();

VirtualDeviceConfigSpec [] array = new VirtualDeviceConfigSpec[1];

VirtualDeviceConfigSpec dspec = new VirtualDeviceConfigSpec();

dspec.setDevice(device);

5. Reconfigure the device. For example:

// Reconfigure operation

spec.setDeviceChange(array);

_service.reconfigVM_Task(vmmor,spec);

Caution: Using a VirtualDeviceConfigSpecFileOperation.replace operation on disks is not supported. This operation applies only to floppy images.

Detectable by VMware SkylineTM

Actions

Copy

link to clipboard
copied!

Print

Language:
English

Attachments

Additional Resources

KB
•
End Of General Availability of the Free vSphere Hypervisor (ESXi 7.x and 8.x) (2107518)

Result 1 of 1

Ask The Community

Get answers quickly from VMware experts in the community

Post Subject

CONTINUE IN COMMUNITIES

Related Products:

VMware Infrastructure SDK

Related Versions:

VMware Infrastructure SDK 2.0.x

Take Our Survey

Was this article helpful?

YES

NO

Copyright © 2005-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.

Terms of Use

Your California Privacy Rights

Privacy

Accessibility

Cookie Settings

Support Assistant