Tại sao tôi không thể thay đổi kích thước VDI ​​động bằng lệnh redirecthd?


29

Tôi thấy ở đây Làm thế nào để tôi tăng kích thước đĩa cứng của máy ảo .

Nó nên hoạt động với một lệnh như

VBoxManage modifyhd xp.vdi --resize 2000

Khi VDI có kích thước cố định, bạn có thể gặp lỗi này:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Sự phân biệt và giải pháp cho điều đó là ở đây .

Nhưng tôi gặp lỗi đó trong khi VDI của tôi là động

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Tại sao vậy?


vấn đề tương tự ở đây với Ubuntu 16.04LTS và vdi động. rất lạ
Luckyrings 31/12/17

Câu trả lời:


26

Để sử dụng, VBoxManage modifyhdchúng tôi có những lưu ý sau:

  • Ổ đĩa cần phải ở định dạng .VDI hoặc .VHD.
  • Ổ đĩa phải ở định dạng động, không cố định (một đĩa cố định có thể được chuyển đổi thành động bằng cách tạo bản sao).
  • Kích thước ổ đĩa sẽ chỉ ảnh hưởng đến kích thước hợp lý , không phải kích thước vật lý.
  • Không thể thu nhỏ một ổ đĩa bằng hoặc dưới kích thước vật lý của nó.
  • Để thu nhỏ kích thước vật lý, chúng ta phải lấp đầy không gian ổ đĩa không sử dụng 0.
  • Một Windows VDI có thể phải được phân mảnh trước khi thu nhỏ kích thước vật lý của nó.

Trong ví dụ trên, người ta đã cố gắng thay đổi kích thước một đĩa động với kích thước vật lý từ 4693 MB đến 2000 MB, điều này là không thể. Do đó có lỗi.


1
Tôi cũng bị vấp ở đây. thật là đau
nicolas

2
Để sửa đổi các ổ đĩa ở định dạng cố định, hãy làm theo câu trả lời của @ ripper234
Sharun

kiểm tra câu trả lời của tôi, nó có tất cả các chi tiết mà bạn cần và tôi có thể chứng nhận rằng nó hoạt động
Mauricio Gracia Gutierrez

Tôi đã tạo ra hình ảnh này hơn hai năm trước, từ lâu tôi đã quên nó là một kích thước cố định và không năng động. Đọc nó trong câu trả lời của bạn nhắc nhở tôi. Tôi đã dành hơn một giờ để cố gắng tìm ra lý do tại sao tôi không thể làm điều này: (... Cảm ơn
Madivad

Cảm ơn, điều này đã giúp. Đối với linux, đừng quên chạy pvresizelệnh để sử dụng không gian đó cho linux
Maksim Luzik

24

Cách giải quyết này có hiệu quả với tôi:

  1. Tắt máy
  2. Tạo một ổ đĩa mới thông qua giao diện quản trị với kích thước bạn muốn
  3. Sử dụng clonemedium VBoxManage với --existingcờ

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Lưu ý : Bây giờ, đĩa mới sẽ có dung lượng dư thừa là chưa được phân bổ và bạn sẽ cần sử dụng gparted để mở rộng kích thước đến mức tối đa.

Không chắc chắn tại sao các chàng VirtualBox không thể sử dụng những điều trên để thực hiện điều này thay vì ném VBOX_E_NOT_SUPPORTED... ít nhất là liên kết đến điều này :)


1
Làm thế nào tôi có thể phân bổ không gian thừa trên các cửa sổ?
Ken

4
@Ken không chắc nếu bạn tìm ra nó; Bắt đầu -> Chạy -> diskmgmt.msc, nhấp chuột phải vào C: (hoặc bất cứ ổ đĩa chính nào) và chọn mở rộng.
Trent

2
Điều này đã giúp. Tôi đã không làm với GUID nhưng với tên tệp ổ đĩa
Luckyrings 31/12/17

3
@ ripper234 Ba bước cần một số giải thích sâu sắc - cho những người như tôi không chắc chắn những gì họ đang làm. Trong 2) chúng ta đang tạo một đĩa cố định mới hay sao? .vdi .vdmk ?? Xin cho một ví dụ thích hợp, có thể với một hình ảnh. Ngoài ra 3) Clonemedium làm gì trái ngược với clonehd? Hai hướng dẫn đến từ đâu - cụ thể là đích đến - nó đã tồn tại mặc dù chúng tôi đang nhân bản? Cảm ơn
mwarren

Cảm ơn bạn. Bây giờ, tôi đã được hướng dẫn ở đây với tư cách là người dùng Windows (mặc dù đây là AskUbfox), vì vậy tôi sẽ thêm vào đây, trong phiên bản Windows của VBoxManage, bạn phải đặt đường dẫn đến ổ cứng ảo, thay vì VM HƯỚNG DẪN.
Sean Burchett

4

Đây là toàn bộ quá trình, tôi sẽ cố gắng chi tiết nhất có thể

  1. Đảm bảo rằng máy bạn sẽ tăng kích thước ở trạng thái "Tắt máy" (không ở trạng thái "đã lưu" hoặc bất kỳ trạng thái nào khác)

Trong trường hợp của tôi, nó là một máy có kích thước 32 GB và sẽ gọi nó là VM NHỎ

  1. Tạo một máy ảo mới với kích thước mong muốn mới

Trong trường hợp của tôi, tôi đã quyết định tạo một Máy ảo 70 GB mới, đồng thời khôi phục nội dung của máy nhỏ bên trong máy ảo mới này và tôi sẽ gọi nó là Máy ảo LARGE

  1. Chạy lệnh VBoxManage list hddshoặc Mở Trình quản lý phương tiện ảo để lấy GUID của SMALL VM (nguồn gốc) và GUID của VM LARGE (đích)

Với những GUID đó, xây dựng lệnh sau

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID - hiện có

Trong trường hợp của tôi ORIGIN - VM NHỎ là: 39143127-42b6-478a-afb2-5e58f14218b

Trong trường hợp của tôi MÔ TẢ - VM LỚN là: bb808b5b-b88c-49b2-a646-3414af906d84

Tất nhiên GUID của bạn sẽ khác với tôi

Hãy chắc chắn rằng bạn không đảo ngược GUID nếu không máy hoàn toàn mới sẽ thay thế nội dung của máy hiện tại của bạn !!!!

Sau khi chắc chắn rằng bạn không trộn lẫn nguồn gốc với đích, hãy chạy lệnh này:

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 - hiện có

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Phương tiện sao chép được tạo ở định dạng 'VDI'. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Bắt đầu VM LARGE mới mà bạn đã tạo ở bước 2.

  2. Kiểm tra trong công cụ cửa sổ Quản lý máy tính rằng trên thực tế máy có kích thước lớn hơn không sử dụng / không định dạng không gian

  3. Nếu bạn thích, bạn có thể chạy "chkdsk" trên ổ C để đảm bảo mọi thứ đã sẵn sàng (điều này có thể khiến bạn phải khởi động lại hai lần trên VM LARGE )

  4. Sử dụng gparted-live * .iso, "chèn nó" vào máy ảo mới và khởi động lại nó

  5. Khởi động vào môi trường gparted

  6. Phát triển phân vùng của bạn và lưu các thay đổi

  7. "Đẩy" gparted-live * .iso để khởi động lại vào Windows

  8. Kiểm tra trong công cụ cửa sổ Quản lý máy tính rằng máy hiện có ổ C lớn hơn để giải quyết vấn đề lừa đảo của bạn

Tôi đã có ảnh chụp màn hình của quá trình này nhưng quyết định không đưa chúng vào vì nó sẽ khiến câu trả lời của tôi trở nên lớn và đáng sợ đối với những người "vội vàng" để có không gian trống trên máy ảo Windows của họ


Cảm ơn đã hướng dẫn. Ở bước 3, bạn lấy GUID từ đâu? Tôi không chắc Trình quản lý phương tiện ảo là gì.
A.Wan

3
Đừng VBoxManage list hdds
bận

@ A.Wan đây là Trình quản lý phương tiện ảo - google.com /
Mauricio Gracia Gutierrez
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.