मेरे पास एक ही समस्या थी जहां मैंने एक डिस्क को स्थानांतरित किया था, और मूल को सिम्लिंक के साथ बदल दिया था। यह ठीक बाद में काम करता है, लेकिन आप 'संशोधित' आदेश के साथ समस्याओं में चलते हैं, क्योंकि यह स्पष्ट रूप से vdi-file के लिए पथ को इसके साथ काम करते समय canonicalizes। इससे ऐसा लगता है कि आप एक ही UUID के साथ एक नई डिस्क को जोड़ने का प्रयास कर रहे हैं, लेकिन एक अलग पथ पर - या ऐसा कुछ।
दो समस्याएं थीं:
डिस्क को उस वीएम से हटाया जाना था जो इसका इस्तेमाल करता था, लेकिन फिर "एचडीएसडी की वर्चुअलबॉक्स सूची से" भी। यह 'क्लोज्डियम' कमांड के साथ तय किया गया था, जो इसे उस सूची से हटा देता है।
आकार दिया जाने वाला डिस्क "डायनेमिक" के बजाय "फिक्स्ड डिस्क" था, और केवल डायनामिक डिस्क को ही आकार दिया जा सकता है। यह एक 'क्लोन' कमांड के साथ तय किया गया था (क्लोन गतिशील है), और फिर परिणामस्वरूप डिस्क का आकार बदलें।
यह कैसे किया गया इसके लिए मेरा लॉग है। ध्यान दें कि मैं रूट के रूप में चल रहे किसी भी बिंदु पर नहीं हूं , सिवाय इसके कि जब मैं विभाजन और फाइल सिस्टम का आकार बदलूं।
वीएम से डिस्क की सहायता प्राप्त करें।
समस्या का समाधान
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
आह, डिस्क अभी भी "सिस्टम में" है:
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
वर्चुअलबॉक्स डिस्क सूची ("क्लैमेडियम") से डिस्क को हटाएं / हटाएं:
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)
पुन: आकार बदलने का प्रयास करें:
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, "निश्चित आकार" DOESN'T WORK! 'क्लोन' बचाव करने के लिए, क्योंकि एक 'गतिशील रूप से आवंटित' क्लोन डिस्क छोड़ देता है:
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
अब संक्षिप्त करें (तात्कालिक):
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%
जानकारी के लिए, VM को भेजने के लिए बहुत कुछ है। इसे जड़ के रूप में किया जाता है। मान लें कि आपके पास केवल एक विभाजन है और संभवतः स्वैप है।
# 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.