Câu hỏi Làm thế nào để tăng kích thước đĩa cứng của máy ảo?


enter image description here

Tôi đã hết dung lượng trên máy ảo WinXP của mình, mà tôi chỉ cho không gian 10 GB khi tôi tạo ra nó. Có cách nào dễ dàng để tăng nó lên, nói, 20 GB? Tôi không thể thấy bất kỳ tùy chọn rõ ràng nào trong cài đặt VirtualBox.


Đề xuất dưới đây đưa ra lỗi này

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Loại bỏ các .vdi từ VirtualBox trước khi gọi lệnh VBoxManage, sau đó thêm nó trở lại, đã thành công. Nhưng bây giờ tôi không thể khởi động máy ảo, tôi nhận được màn hình đáng lo ngại này:

enter image description here

Nhân tiện, nó nói FATAL: Could not read from the boot medium! System halted.


VDI phải được gắn lại với máy ảo sau lệnh VBoxManage. Hơn nữa, phân vùng sẽ cần phải được thay đổi kích thước từ các cửa sổ WITHIN, bởi vì bạn sẽ có không gian trống này:

enter image description here

Tôi đã có thể thay đổi kích thước phân vùng một cách dễ dàng bằng cách sử dụng một phần mềm miễn phí có tên EASEUS Partition Master 9.1.0 Home Edition.


234
2017-12-18 11:51


gốc


Vấn đề của bạn là bạn đã symlinked đĩa vào một '/ media / data' vị trí và rằng nó không cư trú trên bản gốc '/ home / wim / VirtualBox VM' vị trí. Tôi đã trả lời bằng cách tôi đã sửa lỗi này. - stolsvik
tôi đã nêu chi tiết kinh nghiệm của mình ở đây: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size   câu trả lời "được chấp nhận" dưới đây là cách xa ngay cả ngay cả. - kmonsoor
Có khả năng khác là "sao chép vdi hiện có" thành "vdi trống mới, có kích thước lớn hơn so với hiện tại" (tham khảo- justintung.com/2011/01/06/… ) - parasrish
Ngoài ra, lưu ý rằng, chỉ cần thay đổi kích thước có thể không hữu ích, vì kích thước "vdi" sẽ tăng lên, nhưng dựa trên "vm-os-installation", phân vùng chính của bạn vẫn giữ nguyên và không gian được phân bổ thường được hiển thị "không được phân bổ ". Do đó, bạn cần thực hiện "phân bổ lại phân vùng" (Tham khảo liên kết ở trên). - parasrish


Các câu trả lời:


Mở một thiết bị đầu cuối và điều hướng đến thư mục với hình ảnh đĩa VirtualBox, sau đó sử dụng lệnh sau:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

thay thế YOUR_HARD_DISK và SIZE_IN_MB với tên hình ảnh của bạn và kích thước mong muốn. sudo có thể cần thiết trong một số máy hoặc bạn có thể gặp lỗi. Câu trả lời này và lời giải thích đầy đủ hơn là ở đây, trên webupd8. Tín dụng cho Andrew ở đó để đăng câu trả lời này.

Sau khi thay đổi kích thước, phần bổ sung không gian ổ cứng ảo cần được phân vùng và định dạng để khách sử dụng nó. Điều này có thể được thực hiện với gparted bằng cách khởi động khách từ một ISO sống. Chúng tôi cũng có thể thay đổi kích thước phân vùng hiện có bằng gparted. Đối với điều này, chúng tôi có thể cần phải vô hiệu hóa /swap và tạo phân vùng trao đổi mới.


299
2017-12-18 12:07



+1. Chỉ cần sử dụng này để tăng kích thước của đĩa Windows 7 của tôi từ 20 đến 30 GB, và nó làm việc rất trơn tru (không cần đăng ký vv). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%  Lúc đầu Windows không phát hiện được không gian đã tăng lên, nhưng sau khi nó đã được thực hiện, và sau đó tôi có thể sử dụng công cụ Disk Management được tích hợp sẵn để tăng kích thước của phân vùng C: của tôi. - Jonik
1, Đây chắc chắn là cách sạch nhất để làm điều đó. - Starx
@asd Thay đổi kích thước đĩa không đủ, bạn cũng cần phải thay đổi kích thước phân vùng. - Bruno
NÀY S WORK LÀM VIỆC! Tuy nhiên, bạn cần phải tăng phân vùng sau đó để cửa sổ có thể đăng ký không gian mới. Phương pháp tốt nhất và nhanh nhất / dễ nhất: howtogeek.com/howto/windows-vista/… - tfont
Tôi nghĩ rằng trong các phiên bản gần đây của VirtualBox, .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720 hiện nay. modifyhd cũng hoạt động được - có khả năng tương thích ngược với các lệnh cũ hơn. - TranslucentCloud


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

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Tuy nhiên, tôi hiểu làm thế nào mileage có thể thay đổi :-) Theo như thay đổi kích thước phân vùng, trong Windows 7, tôi đã có thể thay đổi kích cỡ tại màn hình bạn cho thấy bằng cách nhấp chuột phải vào C: lái xe trong bảng điều khiển phía dưới và chọn mở rộng âm lượng.

Computer management screen


23
2018-04-15 11:53



sudo Là không phải cần thiết. Nó có thể làm hỏng quyền trong thư mục chính của bạn, yêu cầu bạn sử dụng sudo cho hộp ảo là một xấu ý kiến. - Lekensteyn
@ Lekensteyn: Tốt để biết rằng nó không phải là cần thiết. Tôi đã sử dụng nó bởi vì những người khác đã nói rằng nó không hoạt động mà không có gốc. Theo như sự cho phép tham nhũng đi, chmod hoạt động tốt để sửa chữa những sai lầm như vậy. - Richard Povinelli
@ Lekensteyn: chown sẽ sửa lỗi sở hữu. Tôi đề cập đến chmod và chown, bởi vì tôi đã phải sửa chữa vấn đề bạn đang tham khảo nhiều lần :-) - Richard Povinelli
Điều này là rất tốt cho Windows, nhưng nếu bạn có một hệ điều hành khách Linux liên kết này có thể giúp với kích thước lại các phân vùng: forums.virtualbox.org/viewtopic.php?f=35&t=50661 - Jon
Nếu bạn đang chạy các cửa sổ bên trong Linux, bạn cần phải làm theo các tùy chọn này, và mở rộng đĩa, nếu không cửa sổ sẽ không thêm không gian bổ sung mà chúng tôi đã thêm vào - Ajith R Nair


Wim, tôi nghĩ rằng bạn sẽ cần phải hủy đăng ký nó từ Vbox đầu tiên. Tệp, Trình quản lý phương tiện, Nhấp vào bạn hdd và hủy đăng ký nó. Sau đó thử lại lần nữa.


17
2017-12-19 11:40



Không yêu cầu trên Linux trong VirtualBox. Chỉ cần phải tắt hệ điều hành khách hoàn toàn trước. - Underverse


Sau khi thay đổi kích thước và không thể xem được kích thước trên máy khách Windows XP của tôi, tôi phải

  1. sao chép nó
  2. thay đổi kích thước bằng "VBoxManage modifyhd winxppro \ Clone.vdi --định dạng 30720" và mọi thứ đã hoạt động

Tôi thấy trong các diễn đàn khác, ảnh chụp nhanh có thể ảnh hưởng đến việc thay đổi kích thước và không thể xóa tất cả các ảnh chụp cho các lỗi khác nhau, giải pháp tìm được duy nhất cho tôi là sao chép ảnh để xóa ảnh chụp nhanh rồi thay đổi kích thước và mọi thứ đã hoạt động. Để thay đổi kích thước các cửa sổ bên ngoài, bạn có thể tìm thấy một đĩa CD khởi động có gparted đây có thể giúp


7
2018-05-28 11:11





Tôi đã có cùng một vấn đề mà tôi đã di chuyển một đĩa, và thay thế bản gốc bằng một liên kết tượng trưng. Điều này làm việc OK sau đó, nhưng bạn gặp phải các vấn đề với lệnh 'modifyhd', vì điều đó dường như hợp quy hóa đường dẫn đến tệp vdi khi làm việc với nó. Điều này làm cho nó trông giống như bạn đang cố gắng để thêm một đĩa mới với cùng một UUID nhưng trên một con đường khác nhau - hoặc một cái gì đó như thế.

Có hai vấn đề:

  1. Đĩa phải được loại bỏ khỏi VM sử dụng nó, nhưng sau đó cũng "từ danh sách các hdds của VirtualBox". Điều này đã được khắc phục bằng lệnh 'closemedium', loại bỏ nó khỏi danh sách đó.

  2. Đĩa được thay đổi kích thước là một "đĩa cố định" thay vì "động", và chỉ có thể thay đổi kích thước đĩa động. Điều đó đã được sửa với lệnh 'clone' (bản sao là động), và sau đó thay đổi kích thước đĩa kết quả.

Đây là nhật ký của tôi về cách nó được thực hiện. Lưu ý rằng tôi không phải tại bất kỳ điểm nào chạy dưới dạng root, ngoại trừ khi tôi sau đó thực hiện thay đổi kích thước của phân vùng và hệ thống tập tin.

XÁC NHẬN HIỆP HỘI CHO DISK TỪ VM. 

PROBLEM STILL PERSISTS:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ah, đĩa vẫn còn "trong hệ thống":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Xóa / xóa đĩa khỏi danh sách đĩa VirtualBox ("closemedium"):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Thử thay đổi kích thước lại:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

DAMN, "kích thước cố định" KHÔNG LÀM VIỆC! 'clonehd' để giải cứu, như vậy để lại một đĩa 'nhân bản được phân bổ động':

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

BÂY GIỜ LÀM KÍCH THƯỚC (tức thời):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

THÌ BAO GỒM ĐỂ MỘT SỐ VM, ĐỂ CÀI ĐẶT. Điều này được thực hiện dưới dạng root. Giả sử rằng bạn chỉ có một phân vùng và có thể hoán đổi.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.

5
2018-04-09 12:01



Điều này làm việc cho tôi, theo hướng dẫn ở đây: yinfor.com/2015/05/… - marijnz0r


Điều này làm việc cho tôi với Virtualbox 5.2.6 được cài đặt trên Ubuntu 16.04 Host Machine và Windows 10 Guest: mở Virtualbox Manager, nhấn vào Global Tools (góc trên bên phải) và chọn Virtual Media Manager. Nhấp vào Hard Disk Tab và chọn hệ điều hành khách của bạn. Ở cuối hộp, nhấp vào tab Thuộc tính. Ở phía dưới bạn có thể thấy kích thước của đĩa ảo, và với thanh trượt bạn có thể tăng kích thước theo ý thích của bạn. (Bạn chỉ có thể tăng, không giảm kích thước bằng phương pháp này). Nhấp vào Áp dụng. Khởi động Windows Guest OS, mở Computer Management, kích chuột phải vào ổ C: và chọn Extend Volume để mở rộng hệ thống tập tin với phần chưa được phân bổ.

Đó là tất cả những gì tôi phải làm, hoạt động hoàn hảo cho tôi.


2
2018-01-24 17:55



Làm việc tuyệt vời. Không phải đây là câu trả lời được chấp nhận, ít nhất là cho các phiên bản gần đây của VirtualBox? - AlwaysLearning


Một cách chắc chắn là làm điều đó giống như di chuyển đến một ổ đĩa cứng lớn hơn mà không chạy trong máy ảo. Đầu tiên sử dụng ccleaner hoặc chương trình tương tự trong XP để dọn sạch tất cả các tập tin rác mà nó có thể. Sau đó tạo một ổ cứng ảo thứ cấp với kích thước bạn muốn. Khởi động với ISO clonezilla trong ổ đĩa ODD ảo của bạn và sao chép cùng với tùy chọn 'thay đổi kích cỡ thành kích thước phân vùng mới' được chọn. Sau đó thiết lập ổ cứng ảo mới là chính, và không xóa ổ cứng cũ cho đến khi bạn biết nó hoạt động.


1
2017-12-19 14:03





Tôi nhận được lỗi tương tự cho đến khi tôi sử dụng sudo để chạy lệnh, sau đó làm việc hoàn hảo, vẫn cần phải có phân vùng phát triển từ bên trong khách để sử dụng thêm không gian.


1
2018-02-01 09:34



Một số người báo cáo điều này gây ra các thư mục nhà có quyền xấu - Jonathan


Như một vấn đề của thực tế, có vẻ như là modifyhd một mình không làm bạn tốt trong một số trường hợp. Tôi thực sự mở rộng vd WinXP của mình bằng cách sao chép hình ảnh sau khi mở rộng.

Dưới đây là hướng dẫn từng bước hoàn chỉnh đã làm việc cho tôi một vài tuần trước: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/


1
2018-05-01 19:25



Bạn có thể giải thích các bước ở đây không? Các câu trả lời có ít hơn một liên kết đến một trang web khác thường bị cau mày ở đây và có thể bị xóa. - Tom Brossman
Vâng, bạn cần phải hiểu những gì modifyhd làm, mà không phải là nhiều hơn mở rộng đĩa ảo nằm bên dưới, đó là tất cả. Bạn vẫn cần phải mở rộng hệ thống tập tin trên đó. - Marcin Kaminski