Làm cách nào để thay đổi UUID của đĩa ảo?


131

Tôi đang cố gắng tạo một máy ảo mới với Oracle VirtualBox, sử dụng một đĩa cứng đã tồn tại. Khi tôi cố gắng chọn tệp đĩa cứng hiện có, tệp .vhd, nó sẽ hiển thị một lỗi cho biết không thể sử dụng đĩa cứng ảo vì UUID đã tồn tại.

Vì vậy, tôi đã thử lệnh sau để thay đổi UUID của nó.

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

Tôi nhận được lỗi này.

Lỗi cú pháp: Tham số UUID không hợp lệ

Làm thế nào tôi có thể giải quyết điều này?


1
Các đường dẫn có ký tự khoảng trắng nên được đặt trong dấu ngoặc kép, như bạn đã phát hiện ra.
AB

Câu trả lời:


171

Lệnh đúng là lệnh sau.

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

Đường dẫn cho đĩa ảo chứa một khoảng trắng, vì vậy nó phải được đặt trong dấu ngoặc kép để tránh nó bị phân tách thành hai tham số.


25
Tôi thực sự mong muốn VirtualBox sẽ có một số UI hoặc một cửa sổ cho phép chúng tôi thay đổi điều này
fedmich 11/2/2015

1
Điều này cần phải được trích dẫn do không gian trong filepath.
Chris Stryczynski

Sẽ thật tuyệt nếu UI VirtualBox cung cấp tùy chọn tạo UUID mới khi bạn cố mở một đĩa đã biết. Thành thật mà nói tôi không thực sự sử dụng trình quản lý đĩa cho bất cứ điều gì, tôi muốn VirtualBox chỉ coi các đĩa ảo là đường dẫn tệp thay vì cố gắng coi chúng như tài nguyên để quản lý và theo dõi.
jrh

34

Sau đây làm việc cho tôi:

  1. chạy VBoxManage Internalcommands sethduuid "tệp VDI / VMDK" hai lần (lần đầu tiên chỉ để tạo UUID thuận tiện, bạn có thể sử dụng bất kỳ phương thức tạo UUID nào khác thay thế)

  2. mở tệp .vbox trong trình soạn thảo văn bản

  3. thay thế UUID được tìm thấy trong Máy uuid = "{...}" bằng UUID bạn nhận được khi chạy sethduuid lần đầu tiên

  4. thay thế UUID được tìm thấy trong HardDisk uuid = "{...}" và trong Image uuid = "{}" (đến cuối) bằng UUID bạn nhận được khi chạy sethduuid lần thứ hai


1
Tôi nghĩ rằng câu trả lời này hữu ích hơn cho bất kỳ ai (bao gồm cả tôi), những người muốn sao chép máy ảo.
cbuchart

1
Chỉ cần tự hỏi - tại sao bạn cần phải thay đổi máy uuid? Nếu tôi chỉ muốn sao chép đĩa vmdk từ máy này sang máy khác, tôi không cần điều đó, phải không?
Oleg Gryb

1
Bạn cần thay đổi uuid Machine nếu bạn sao chép đĩa ảo trên cùng một máy
borchvm

1
Làm việc hoàn hảo trong trường hợp của tôi - cảm ơn! Tôi không cần điều chỉnh UUID máy.
Benco

1
@FabrizioBertoglio hy vọng bạn có câu trả lời của mình - nhưng bạn cần dừng các dịch vụ vbox dưới bất kỳ hình thức nào để chỉnh sửa các tệp đó - nếu không bạn sẽ nhận được cùng một ole. Đồng thời đảm bảo UUID cho SATA HardDisk <thiết bị đính kèm> ở dưới cùng của tệp cấu hình khớp với UUID cho Đĩa cứng trong phần HardDrive ở đầu tệp cấu hình. Trước khi bạn thực hiện bất kỳ điều này mặc dù bạn cũng sẽ muốn thêm <Phần cứng UUID = myMachineUUID> của mình.
Ken

12

Nếu bạn đã sao chép một đĩa (tệp vmdk) từ máy này sang máy khác và cần thay đổi UUID của đĩa trong bản sao, bạn không cần thay đổi UUID của máy như đã được đề xuất bởi câu trả lời khác.

Tất cả những gì bạn cần làm là gán UUID mới cho ảnh đĩa:

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

và sau đó thay thế UUID cũ bằng UUID mới được tạo ở hai vị trí trong tệp * .vbox của bạn

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

và trong

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

Nó làm việc cho tôi cho VirtualBox ver. 5.1.8 chạy trên Mac OS X El Capitan.


Bạn có thể đúng. Tôi đã làm theo hướng dẫn của bạn và tôi vẫn gặp lỗi Truy vấn UUID không thành công, ngay cả khi Đĩa cứng hiển thị chính xác cả trên file -> Virtual Media Managervà trên Cài đặt máy với UUID chính xác
Fabrizio Bertoglio

Tôi không chắc trường hợp của bạn là gì. Những gì tôi đã mô tả ở trên chính xác là những gì tôi đã làm và nó hoạt động với tôi trên Mac với VB 5.1.8
Oleg Gryb

Tôi đã giải quyết vấn đề với các bước sau: 1. re-installing virtual box using synaptic package managerSau đó, sự 2. In the virtual box machine configuration, I did not disable the Floppy disk and EFI Setting. I kept them enabled.cố đã được khắc phục.
Fabrizio Bertoglio

@OlegGryb Nó có thể phụ thuộc vào Hệ điều hành máy chủ và cả Hệ điều hành khách.
Ken

11

Mặc dù bạn đã giải quyết vấn đề, tôi chỉ đăng lý do ở đây cho một số người khác có vấn đề tương tự.

Lý do là có một khoảng trắng trong đường dẫn của bạn (tên thư mục VirtualBox VMs) sẽ tách lệnh. Vì vậy, lỗi xuất hiện.


11

Tôi đã tìm kiếm trên web câu trả lời liên quan đến MAC OS, vì vậy .. giải pháp là

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

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

1
Siêu hữu ích !!
Giải pháp Addo

6

Lệnh thất bại vì nó có không gian trong một trong các tên thư mục, tức là 'VirtualBox VMs.

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

Nếu không có khoảng trống ở tên thư mục hoặc tên tệp, thì lệnh sẽ hoạt động ngay cả khi không trích dẫn nó, ví dụ: sau khi thay đổi 'VirtualBox VMs thành' VBoxVMs '

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

4

Mặc dù câu hỏi này đã cũ, nhưng lưu ý rằng việc thay đổi UUID trên ổ cứng ảo trong hệ thống windows sẽ khiến windows coi nó như một máy không được kích hoạt (vì nó thông báo thay đổi đĩa) và sẽ yêu cầu kích hoạt lại!


4

Giải pháp tương tự như @ Al3x cho Windows x64, trong cmd.exe:

cd %programfiles%\Oracle\VirtualBox

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

Điều này ngẫu nhiên UUID của đĩa. Mẹo chuyên nghiệp: Nhấp chuột phải vào tệp .vdi trong khi giữ shift và chọn "Sao chép dưới dạng đường dẫn" để lấy "full/path/to/.vdi"và bật chỉnh sửa nhanh trong cmd.exe, sau đó nhấp chuột phải để dán.


2

Một cách khác cho giải pháp ban đầu của bạn là sử dụng ký tự thoát \trước khoảng trắng:

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.