วิธีการปรับขนาดไฟล์ VirtualBox vmdk


539

ฉันไม่มีที่ว่างในดิสก์เครื่องเสมือนซึ่งเป็น vmdk และจำเป็นต้องปรับขนาดอิมเมจเสมือน ปรับขนาดด้วยคำสั่ง

vboxmanage modifyhd Machine-disk1.vmdk --resize 30720

ให้ข้อผิดพลาด

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

ฉันจะปรับขนาดภาพ vmdk ได้อย่างไร?

คำตอบ:


806

หากคุณต้องการสิ้นสุดการสำรองฮาร์ดไดรฟ์ vmdk (บางทีคุณอาจสนใจการใช้ดิสก์ใน vwmare ด้วย) ขั้นตอนทั้งหมด:

VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk

ด้านบนจะปรับขนาดฮาร์ดดิสก์สูงสุด 50GB (50 * 1024MB)

ในการทำสิ่งต่าง ๆ ให้สมบูรณ์คุณต้องปรับขนาดไดรฟ์ด้วย! เพื่อให้บรรลุเป้าหมายนี้คุณอาจต้องดาวน์โหลดgpartedและบูตจาก iso นั้นเพื่อปรับขนาดไดรฟ์ของคุณ (เลือก iso จากภายในการตั้งค่า Virtualbox)

ป.ล. ถ้าขนาดใหม่ของคุณเล็กเกินไปคุณจะได้รับข้อผิดพลาดเดียวกันแม้ว่าจะมีไฟล์ vdi ใหม่


17
มันใช้งานได้! ฉันต้องการเพิ่มว่าคุณสามารถข้ามขั้นตอนที่สามและเก็บดิสก์ในรูปแบบ VDI ฉันเพิ่งทำสิ่งนี้กับอิมเมจ Oracle 12c และทำงานได้ดีโดยไม่ต้องดำเนินการขั้นตอนที่สาม เพียงสลับ "ฮาร์ดไดรฟ์" เก่าสำหรับ VDI ที่โคลนในการตั้งค่า นอกจากนี้ - อย่าลืมปรับขนาดด้วย Gparted และคุณก็พร้อมที่จะไป!
Avindra Goolcharan

12
สำหรับผู้ใช้ Windows ที่ยังไม่ได้เพิ่ม VirtualBox ไปยังตัวแปร PATH ของคุณอย่าลืมเปลี่ยนเป็นไดเรกทอรี Virtual Box เพื่อใช้โปรแกรม VBoxManage เช่น "cd C: \ Program Files \ Oracle \ VirtualBox"
Cleanshooter

2
ฉันได้ symlinked ไฟล์ VM จาก SSD ของฉันเป็น SSD ขนาดใหญ่ ฉันต้องระบุเส้นทาง symlink VBoxManage clonehd "~/path/to/symlink/packer-centos-6.5-x86_64-disk1.vmdk" "/media/k0pernikus/thatFatSlowDisk/cloned_packer-centos-6.5-x86_64-disk1.vdi"หากคุณระบุเส้นทางจริงคำสั่งจะล้มเหลวเนื่องจากVBoxManage: error: Cannot register the hard diskVBox คิดว่ามันถูกกำหนดไว้แล้วที่อื่น
k0pernikus

2
ว้าว. ผมเสียเวลาพยายามค้นคว้าและเหตุผลที่ช่วยให้การสร้างไดรฟ์ที่ไม่ได้รับการสนับสนุนโดยclonehed --resizeปรากฎว่าการผนวก--format vdiกับclonehdเป็นสิ่งสำคัญ!
datv

5
UUIDs ไม่ตรงกันหลังจากทำเช่นนี้ (และแทนที่ไดรฟ์ดั้งเดิม) VirtualBox 5.1.12 จะไม่อัปเดต UUID โดยอัตโนมัติ ฉันต้องลบฮาร์ดไดรฟ์ออกจากรายการฮาร์ดไดรฟ์ที่รู้จัก (ไฟล์ -> Virtual Media Manager) จากนั้นเพิ่มใหม่ลงในอินสแตนซ์
Chaim Eliyah

196

ฉันสามารถปรับขนาด vmdk ได้โดยการโคลนแล้วปรับเปลี่ยนและปรับขนาด

vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720

4
ขอบคุณสำหรับสิ่งนี้. สำหรับทุกคนที่ได้รับข้อผิดพลาด: VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005)ในขณะที่พยายามเรียกใช้คำสั่งนี้บน windows ให้เรียกใช้ Command Prompt ในฐานะผู้ดูแลระบบ
Jim W.

4
@BradFJacobs แต่แน่นอน นั่นคือสิ่งที่มีเหตุผลหลังจากทั้งหมด : P
Paul Draper

4
นี่จะทำให้ไฟล์อยู่ในรูปแบบ VDI ซึ่งไม่ตอบคำถามของ Brian ที่ว่า "ฉันจะปรับขนาดอิมเมจ vmdk ได้อย่างไร"
user66001

หมายเหตุหลังจากปรับขนาดไฟล์ vmdk ของคุณคุณจะต้องขยายพาร์ติชันของคุณใน VM โดยการบูตด้วยเช่น gparted-live
stephanfriedrich

สำหรับข้อมูล: ในลินุกซ์ (มิ้นท์) มันทำงานเท่านั้นโดยไม่ต้องใช้คำพูดสองสำหรับvirtualdisk.vmdkเช่นนี้vboxmanage clonehd virtualdisk.vmdk "new-virtualdisk.vdi" --format vdi vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720
หมิ่น

43

ฉันมีไคลเอนต์ Windows 7 บนโฮสต์ Mac และโพสต์นี้มีประโยชน์มาก ขอบคุณ

ฉันจะเพิ่มว่าฉันไม่ได้ใช้ gparted ฉันทำอย่างนี้:

  1. เรียกใช้อิมเมจ vmdk ที่ขยายใหม่
  2. ไปที่ Start และคลิกขวาที่ Computer และเลือก Manage
  3. คลิกการจัดการดิสก์
  4. คุณควรจะเห็นพื้นที่สีเทาบางอย่างเกี่ยวกับ (ในกรณีของฉัน) ไดรฟ์ C ของคุณ
  5. คลิกขวาที่ไดรฟ์ C และเลือกขยายไดรฟ์
  6. เลือกขนาดและไป

หวาน! ฉันชอบที่จะใช้เครื่องมือของบุคคลที่สามที่มีคำเตือนเกี่ยวกับการสูญเสียข้อมูล

ไชโย!


32

VBoxManageไม่หลอกลวง แต่อย่าลืมว่าคุณต้องใช้GPartedหรือเครื่องมืออื่นในการจัดสรรพื้นที่ว่างที่สร้างขึ้นด้วยVBoxManage

ไปที่โพสต์บล็อกของฉันเพื่อรับข้อมูลรายละเอียดและภาพหน้าจอทีละขั้นตอน


VBoxManage อย่างชัดเจนไม่ได้หลอกลวงฉันคิดว่าคุณสับสนรูปแบบไฟล์ VDI และ VMDK
portforwardpodcast

ไม่มีความสับสนเพียงดูที่ลิงค์ ต้องทำการแปลง VMDK เป็น VDI
tvial

@tvial - น่าเสียดายที่ AFAICS กระบวนการแปลง VMDK เป็น VDI จะสูญเสียสแนปชอตใด ๆ ที่คุณมีซึ่งไม่เป็นที่ยอมรับสำหรับคนจำนวนมาก ดังนั้นเพียงแค่ระบุว่า "การหลอกลวง" เป็นการพูดเกินจริงนิดหน่อย ..
Jules

@Jules คำตอบของฉันเกี่ยวข้องกับคำถาม Brian กำลังพยายามใช้ VBoxManage และฉันไม่เพียง แต่ระบุว่าเป็นเช่นนั้น ฉันใช้เวลาหลายชั่วโมงในการเขียนโพสต์บล็อกแบบเป็นขั้นตอนพร้อมภาพหน้าจอ อาจมีข้อมูลที่ขาดหายไปเกี่ยวกับสแน็ปช็อตคุณพูดถูก
tvial

แน่นอน แต่มันไม่ใช่ทางออกที่ดีที่สุด คำตอบที่ให้คำแนะนำสำหรับซอฟต์แวร์ที่จะปรับขนาด VMDK โดยไม่ต้องแปลงเป็น VDI (เช่นคำตอบของ @micwallace และ @davidehrman) เป็นคำตอบที่ดีกว่าสำหรับคนจำนวนมากอย่างชัดเจน (และยังไม่ชัดเจนว่าผู้ถามเดิมเป็นหนึ่งในนั้นหรือไม่ )
จูลส์

31

จริงๆแล้วจำเป็นต้องใช้คำสั่งเหล่านี้เท่านั้น:

VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd "cloned.vdi" --resize 51200

จากนั้นคุณสามารถเลือก cloned.dvi ในที่เก็บ GUI ของ Virtualbox

หลังจากนั้นเริ่ม Windows เสมือนและขยายดิสก์ C ของคุณเป็นวิธีการของ Code Chops

ไม่จำเป็นต้องแปลงไฟล์ * .vdi เป็นไฟล์ * .vmdk


5
ฉันไม่ได้ลงคะแนน แต่ฉันสามารถเข้าใจ downvote เพราะคำตอบทั้งสองคำตอบทั้งสองตอบในปี 2012 (!) เหมือนกันทุกประการ สิ่งนี้ไม่ได้เพิ่มอะไรใหม่
nathanvda

2
-1 เห็นด้วยกับnathanvdaแต่ "คำตอบ" นี้ไม่ตอบคำถามของ Brian ที่ว่า "ฉันจะปรับขนาดภาพ vmdk ได้อย่างไร"
user66001

22

เนื่องจากนี่เป็นไฟล์ vmdk คุณสามารถใช้ VMWare ได้vdiskmanagerหากมันพร้อมใช้งานสำหรับแพลตฟอร์มของคุณ VMWare มี x86 Linux, Windows และ OS X รุ่นที่นี่

จากนั้นคุณเพียงทำ:

1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk

มันหลีกเลี่ยงการโคลนจากนั้นขยายดิสก์ ตอนนี้ข้อเสียคือคุณต้องการเครื่องมือพิเศษและ vmdk เป็นรูปแบบดิสก์ของ VMWare และคุณยังคงใช้ Virtualbox อยู่ดังนั้นจึงอาจมีความเข้ากันไม่ได้

qemu-imgอาจใช้งานได้ แต่ฉันไม่แน่ใจว่ารองรับการปรับขนาดไฟล์ vmdk หรือไม่ มันจะมีลักษณะเช่น:

qemu-img resize Machine-disk1.vmdk +8G

และเป็นเพียงตัวเตือนความจำสำหรับทั้งคู่คุณยังคงต้องขยายพาร์ติชันหลังจากปรับขนาดดิสก์พื้นฐาน dd if=/dev/old_disk of=/dev/new_disk bs=16Mเครื่องมือทั้งหมดเหล่านี้เป็นหลัก


1
ผู้ตอบที่ดีที่สุดไม่จำเป็นต้องทำการโคลนนิ่ง
WiringHarness

+1 การทำงานนี้ยอดเยี่ยมสำหรับการปรับขนาด windows VM และฉันไม่จำเป็นต้องบูตระบบเพื่อกู้คืนการติดตั้งของฉันให้ฉันปรับขนาดในการจัดการดิสก์หลังจากบูตกลับขึ้น
benh57

สิ่งนี้ทำงานได้ดีกว่าสำหรับฉันปรับขนาดภาพอูบุนตูบน windows10 ฉันไม่ต้องขยายพาร์ติชั่น (มันเป็นพาร์ติชั่นรูทของฉัน) หลังจากขยายดิสก์
แขกมัวร์

ลิงก์สำหรับดาวน์โหลด vdiskmanager ใช้งานไม่ได้สำหรับฉัน ฉันดาวน์โหลด VMWare fusion รุ่นทดลองจากdownload3.vmware.com/software/fusion/file/…จากนั้นติดตั้งไฟล์. dmg เครื่องมือ vdiskmanager นั้นมีอยู่ที่ / Volumes / VMware \ Fusion / VMware \ Fusion.app/Contents/Library/vmware-vdiskmanager
user674669

16

พยายามแก้ไขปัญหาทั้งหมดที่นี่ แต่ดูเหมือนจะไม่มีอะไรทำงาน หลังจากขุดชั่วโมงฉันพบบล็อกโพสต์นี้และชอบทุกอย่างเวทย์มนตร์ ฉันต้องทำการปรับเปลี่ยนเล็กน้อยดังนั้นนี่คือเวอร์ชันที่ปรับเปลี่ยนแล้ว ทดสอบกับนักเทียบท่ารุ่น 17.06.0-ce, build 02c1d87

เมื่อนักพัฒนาเริ่มต้นแอปพลิเคชันของพวกเขา containerizing พวกเขามักจะสร้างภาพจำนวนมากและเติมเต็มพื้นที่ฮาร์ดไดรฟ์ 20GB ที่จัดสรรให้กับเครื่องเสมือนจริงของนักเทียบท่าโดยค่าเริ่มต้น เพื่อให้แน่ใจว่าเครื่องเสมือนของ Docker มีพื้นที่ดิสก์มากมายเราควรปรับขนาด / dev / sda1 ให้เป็นจำนวนที่เหมาะสมกว่า

  1. ดาวน์โหลดGParted สด CD / USB / HD / PXE บูตภาพ
  2. docker-machine stop defaultหยุดเครื่องเสมือนเทียบท่า

  3. ตัวติดตั้งแพ็คเกจ Boot2Docker มาพร้อมกับปริมาณ VMDK ซึ่งเครื่องมือดั้งเดิมของ VirtualBox ไม่สามารถปรับขนาดได้ เพื่อที่จะปรับขนาดปริมาณดิสก์หางโคลนแรกปริมาณ VDI vboxmanage clonehd /full/path/to/disk.vmdk /full/path/to/disk_resized.vdi --format VDI --variant Standardจากปริมาณ

  4. ปรับขนาดปริมาณ VDI ที่ถูกโคลนใหม่เป็นความจุที่ต้องการ เราขอแนะนำที่ vboxmanage modifyhd /full/path/to/disk_resized.vdi --resize <size in MB>64GB
  5. เปิดแอปพลิเคชั่น VirtualBox เลือกdefaultVM แล้วคลิกที่ปุ่ม "การตั้งค่า" ด้านบนผู้จัดการ VirtualBox
  6. คลิกที่ไอคอน“ ที่เก็บข้อมูล” ลบปริมาณ VMDK เริ่มต้นป้อนคำอธิบายรูปภาพที่นี่
  7. เพิ่มคอนโทรลเลอร์ IDE ใหม่ตัวควบคุม IDE
  8. เมานต์ GParted ISO ผ่านตัวเลือก“ เพิ่มอุปกรณ์ซีดี / ดีวีดี”เพิ่มอุปกรณ์ซีดี / ดีวีดี
  9. เมานต์โวลุ่ม VDI ที่ถูกโคลนผ่านตัวเลือก“ เพิ่มอุปกรณ์ซีดี / ดีวีดี”เมานต์ระดับเสียง
  10. หากคุณใช้ Docker บนคอมพิวเตอร์ที่มีฮาร์ดไดรฟ์แบบ solid-state โปรดตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือก“ Solid-state Drive” สำหรับโวลุ่ม VDI ที่ถูกโคลนโซลิดสเตทไดรฟ์
  11. คลิกที่ไอคอน“ เริ่ม” เพื่อบู๊ตเครื่องเสมือนจริงของนักเทียบท่าซึ่งจะเปิดใช้งาน GParted ISO เลือก“ GParted Live (การตั้งค่าเริ่มต้น)”GParted Live (การตั้งค่าเริ่มต้น)
  12. ตั้งค่านโยบายสำหรับการจัดการปุ่มกดเป็น "ไม่ต้องแตะปุ่มแผนที่"keymaps
  13. ตั้งค่ากำหนดภาษาเป็นตัวเลือก“ 33” ซึ่งแมปกับ“ US English”ภาษาอังกฤษแบบสหรัฐอเมริกา
  14. เลือกตัวเลือก“ 1” เพื่อเรียกใช้“ Forcevideo” และกำหนดค่า X ด้วยตนเองForcevideo
  15. รักษาความละเอียดเริ่มต้นที่“ 1024 × 760” โดยเลือกตัวเลือก“ 2”1024 × 760
  16. รักษา“ vesa” เริ่มต้นเป็นการ์ด VGAเว้นว่างไว้หากต้องการเริ่มต้น
  17. รักษาความลึกของสีเริ่มต้นเป็น“ 24” โดยเลือกตัวเลือก“ 0” ความลึกของสี
  18. เมื่อ GParted เปิดตัวให้คลิกที่ไอคอน“ ปรับขนาด / ย้าย”GParted
  19. ตั้งค่าขนาดวอลุ่มดิสก์ใหม่เป็นขนาดที่ต้องการโดยการลากแถบเลื่อน ในตัวอย่างนี้ขนาดสูงสุดคือ 127,035MB คลิกที่ปุ่ม“ ปรับขนาด / ย้าย” เพื่อเริ่มกระบวนการขนาดปริมาณดิสก์
  20. ยืนยันการดำเนินการปรับขนาดโดยคลิกที่ปุ่ม“ นำไปใช้”อบมัน
  21. ปิดเครื่องหลังจากการดำเนินการปรับขนาดเสร็จสิ้นฮาร์ดรีเซ็ต np :)
  22. ลบ ISO GPartedเกือบเสร็จแล้ว
  23. ล็อกอินเข้าสู่เครื่องเสมือน Docker เพื่อตรวจสอบว่าการปรับขนาดโวลต์สำเร็จโดยการเริ่มต้นเครื่อง docker-machine start default
  24. หากคุณประสบปัญหาเครือข่ายรีสตาร์ทเครื่องนักเทียบท่า

มีรายละเอียดมากและเป็นประโยชน์ ขอบคุณ ใน Optin gparted ฉันตามเส้นทางวิดีโอบังคับมันไม่ทำงาน X อัตโนมัติตัวเลือกทำงานแม้ว่า
mshsayem

15

คุณสามารถใช้ Vmware player เพื่อปรับขนาด vmdk สิ่งนี้จะลบการแปลงแบบไปกลับ (ระบุไว้ในโพสต์อื่น ๆ ) หากคุณต้องการเก็บไว้ในรูปแบบ vmdk เพียงตรวจสอบให้แน่ใจว่าเมื่อคุณเพิ่ม vmdk ลงใน vmware อย่าคลิกที่รูปแบบการอัพเกรดเมื่อได้รับแจ้งให้เก็บค่าปัจจุบันไว้ในกรณีที่ VirtualBox ไม่ยอมรับ


1
ขอบคุณทำอย่างนั้น ฉันคิดว่าก่อนอื่นต้องใส่เข้าไปใน VM เพื่อให้สามารถปรับขนาดได้ แต่นั่นเป็นขั้นตอนเล็ก ๆ นอกจากนี้อย่าเริ่มต้น VM ใน VMware การเปลี่ยนแปลง HW ทำให้เกิด bluescreen สำหรับฉัน
Andreas Reiff

สุดยอดเคล็ดลับ! มันเร็วมากเช่นกัน (ใช้เวลา 1 วินาที) และทำให้การตั้งค่า "แบ่งเป็น 2GB ไฟล์" ของฉัน ขอบคุณ !!
Osmar

คุณจะนำ VMDK เข้าสู่เครื่องเล่น VMware ได้อย่างไร? ดูเหมือนจะเป็นคำตอบที่ดี แต่ก็ไม่สมบูรณ์
thaspius

11

สำหรับการลดขนาดภาพฉันใช้ขั้นตอนต่อไปนี้:

  1. บนเครื่องลูกข่าย cat /dev/zero > z;sync;sleep 3;sync;rm -f z
  2. ปิดเครื่องไคลเอนต์
  3. บนโฮสต์ VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
  4. บนโฮสต์ VBoxManage modifyhd cloned.vdi --compact
  5. บนโฮสต์ VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk

11

ตามที่ระบุไว้ในคำตอบโดย Luca ขั้นตอนที่จำเป็นคือ:

  1. โคลนอิมเมจ VMDK เป็นรูปแบบ VDI

    VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi

  2. ปรับขนาดอิมเมจ VDI

    VBoxManage modifyhd "cloned.vdi" --resize 51200

  3. โคลนกลับเป็นรูปแบบ VMDK

    VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk

ขั้นตอนที่ 3 เป็นทางเลือกถ้าคุณสามารถใช้อิมเมจ VDI แทน

ทุกขั้นตอนเหล่านี้จะสามารถดำเนินการในส่วนติดต่อผู้ใช้แบบกราฟิก VirtualBox File -> Virtual Media Managerเป็นอย่างดีภายใต้ Copyเลือกไดรฟ์ที่คุณต้องการโคลนและจากนั้นเลือก กล่องโต้ตอบจะเปิดขึ้นเพื่อให้คุณเลือกรูปแบบดิสก์และตัวเลือกต่างๆ หากต้องการปรับขนาดภาพ VDI เพียงใช้แถบเลื่อนที่ด้านล่าง (คลิกที่Propertiesหากไม่สามารถมองเห็นได้)

สุดท้ายคุณอาจต้องเปลี่ยนขนาดดิสก์ใน guest OS เช่นกัน:

  1. รัน guest OS และปรับขนาดดิสก์พาร์ติชัน หากคุณกำลังใช้ Linux คุณสามารถใช้หรือgpartedkparted

9

VirtualBox สำหรับ Windows

ปรับขนาดไฟล์ดิสก์ในขณะที่รักษาการตั้งค่าเครื่องเสมือนของคุณ!


ขั้นตอนที่ 1 - ปรับขนาดไฟล์ดิสก์

เริ่ม cmd.exe

cdเพื่อ dir ของ Oracle VM VirtualBox ของ (ในระบบ 64 บิต: "C:\Program Files\Oracle\VirtualBox\")

เรียกใช้คำสั่งเหล่านี้ (ตามด้านบน):

VBoxManage clonehd "C:\path\to\source.vmdk" "C:\path_to\cloned.vdi" --format vdi
VBoxManage modifyhd "C:\path\to\cloned.vdi" --resize 51200

Windows Explorer และ "คัดลอกที่อยู่เป็นข้อความ" ผ่านแถบที่อยู่จะช่วยให้คุณได้รับเส้นทางที่คุณต้องการ

ในระบบ windows ไดเรกทอรี VirtaulBox VM ภายใต้ผู้ใช้ของคุณอาจมีไฟล์ฐานข้อมูลที่จัดรูปแบบ XML ของการตั้งค่าที่คุณกำหนดค่าไว้สำหรับ VM ของคุณ เปลี่ยนชื่อไฟล์นี้ด้วย.bakนามสกุล (มันมี.vboxนามสกุล) เปลี่ยนชื่อ.vmdkไฟล์ต้นฉบับด้วย.bakนามสกุลเพื่อหลีกเลี่ยงข้อผิดพลาดอื่น ตอนนี้คุณสามารถทำขั้นตอนที่สามได้อย่างปลอดภัยโดยไม่มีข้อความแสดงข้อผิดพลาดในการแปลงเครื่องกลับเป็น.vmdkรูปแบบหรือข้อผิดพลาด "ดิสก์ที่ซ้ำกัน"

VBoxManage clonehd "C:\path_to\cloned.vdi" "C:\path_to\source.vmdk" --format vmdk

คุณจะนำเสนอกับโทเค็น UID คัดลอกโทเค็นนี้โดยการไฮไลต์จากหน้าต่าง Windows Command Interpetor และใช้Ctrl+Cแป้นพิมพ์ลัด

เปิด.vbox.bakไฟล์ในตัวแก้ไขข้อความเช่น Notepad ++ คุณจะเห็นไฟล์ฐานข้อมูลแบบ XML มองหาบรรทัดเหล่านี้:

<VirtualBox xmlns="http://www.virtualbox.org/" version="1.16-windows">
  <Machine uuid="{some uid}" name="source disk name" OSType="the_vbox_OS" snapshotFolder="Snapshots" lastStateChange="2043-03-23T00:54:18Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...

ในบรรทัด<HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ..., ลบโพสต์ที่เก่า token ระหว่างวงเล็บและวางคนที่คุณคัดลอกมาจากหน้าต่างคำสั่ง ตรวจสอบให้แน่ใจว่าคุณออกจากวงเล็บในสถานที่ !

บันทึกไฟล์นี้และออกจากโปรแกรมแก้ไขข้อความ เปลี่ยนชื่อ.vbox.bakไฟล์เพื่อให้กลับมาเป็นนามสกุลที่คาด.vboxไว้


ขั้นตอนที่ 2 - ลบขยะ

ตอนนี้คุณสามารถลบ.bakไฟล์ที่เหลืออยู่ในไดเรกทอรีได้แล้ว สิ่งที่เหลืออยู่คือการปรับขนาด.vmdkด้วย.vboxฐานข้อมูลที่อัปเดตในขณะที่การตั้งค่า VirtualBox Manager ที่เก็บรักษาไว้ก่อนหน้า


ขั้นตอนที่ 3 - ปรับขนาดพาร์ติชันของดิสก์เพื่อเติมพื้นที่ว่าง

ตอนนี้คุณสามารถเริ่ม VirtualBox VM Manager และดำเนินการ VM ของคุณโดยใช้เครื่องมือที่เหมาะสมสำหรับระบบปฏิบัติการเพื่อเติมพื้นที่ว่างใหม่

สำหรับของ Windows VMsใช้diskpartจากคำสั่งพรอมต์ booted จาก Windows Recovery Consule (Partition Recovery) เพื่อSELECT DISK 1, LIST PARTITIONและรวบรวมจำนวนพาร์ทิชันที่คุณไดรฟ์แล้วC:\ SELECT PARTITION #คุณสามารถใช้EXTEND SIZE=mbเพื่อปรับขนาดไดรฟ์ Windows C: \ ให้เป็นค่าที่เหมาะสม ให้แน่ใจว่าคุณออกจากห้องสำหรับการกู้คืนและพาร์ทิชันบูต! การลบ 4096 MB จากขนาดดิสก์เสมือนใหม่ของคุณปลอดภัยเพื่อรับค่านี้เนื่องจากไฟล์ shadow copy และ windows recovery

สำหรับLinux VMนั้น.ISOคุณสามารถบูตด้วยไฟล์ดิสก์ของ VM ได้ที่: http://gparted.org/ มันจะนำคุณไปสู่ส่วนติดต่อผู้ใช้แบบกราฟิกที่ใช้ gparted-gtk ซึ่งคุณสามารถเติมได้ พื้นที่ว่างของคุณ

สำหรับPPC / Mac VMs , Disk Utilityจาก Finder จะ asisst คุณในการเติมพื้นที่ว่าง แต่คุณอาจต้องการที่จะต้องพิจารณาตัวเลือกลินุกซ์ GPartedเป็นปัจจุบันวิธีการเดียวที่จะบูต MacOSX ใน VirtualBox คือ hackintosh และคุณไม่สามารถขยายไดรฟ์ของคุณ ในขณะที่บู๊ตเป็น MacOSX คุณอาจต้องการปรับแต่งค่าติดตั้งของ VM ชั่วคราวเพื่อgpartedให้สามารถบู๊ตได้ พาร์ติชัน MacOSX ได้รับการยอมรับโดย gparted เป็นHFS- "Heaping File System" พาร์ติชัน


ขั้นตอนที่ 4 - รูปถ่ายแมว

เพราะอินเทอร์เน็ต ;) คุณทำเสร็จแล้ว เพลิดเพลินไปกับ.vmdkอิมเมจดิสก์เสมือนที่ถูกปรับขนาดใหม่ด้วย VirtualBox สำหรับ Windows!


ขอบคุณสำหรับขั้นตอนที่ครอบคลุมพวกเขามีประโยชน์มาก! ความแตกต่างบางอย่างที่ฉันทำ: ฉันใช้เครื่องมือพาร์ติชันดิสก์เพื่อขยายไดรฟ์ข้อมูลดิสก์ของฉันบน Win10 VM ของฉัน นอกจากนี้ยังมีขั้นตอนโดยละเอียดที่ขาดหายไปซึ่งจะเพิ่มดิสก์ vmdk ที่โคลนอีกครั้งลงในการกำหนดค่า VM แค่นั้นแหละ. ไชโย!
j4v1

ส่วนขั้นตอนในการเปลี่ยนชื่อไฟล์ vm config ".vbox" เป็น ".vbox.bak" ก่อนการโคลนนิ่งมีความสำคัญมาก ! มิฉะนั้นการกระทำของโคลนนิ่งจะล้มเหลว
Andres

นี่อาจเป็นคำตอบที่ "สมบูรณ์ที่สุด" ถ้าคุณได้รับข้อผิดพลาดจากคำสั่ง VBoxManage ที่ล้มเหลว ในกรณีของฉันแม้ว่าฉันจะเปลี่ยนชื่อไฟล์กำหนดค่าเป็น "* .vbox.bak" VBox ยังคงรักษาสถานะไว้ (ผ่านทางรีจิสทรีหรือไม่) ดังนั้นฉันต้องใช้คำสั่ง VBoxManage เพิ่มเติม vboxmanage list hddsยกตัวอย่างเช่นเพื่อดูดิสก์เสมือน: vboxmanage closemedium disk <filename.vmdk>ในการลบคนที่ไม่พึงประสงค์: ดู SATA พอร์ต # อุปกรณ์ vboxmanage showvminfo <vmName>#: ไปยังดิสก์ DETACH: vboxmanage storageattach <vmName> --storagectl SATA --port <p#> --device <d#> --medium none
electromaggot

7

นี่คือวิธีการปรับขนาดดิสก์ VirtualBox ของคุณโดยไม่คำนึงว่าเป็นรูปแบบคงที่หรือดิสก์รูปแบบไดนามิก โดยเฉพาะจะป้องกันข้อผิดพลาดที่คุณมีเมื่อคุณฟอร์แมตดิสก์


⚠️สำรองข้อมูลดิสก์เสมือน คุณไม่มีทางรู้ว่าสิ่งใดผิดพลาด

บนโฮสต์ของคุณ:

  1. เปิดหน้าต่างเทอร์มินัล

    บน Windows: cmdเปิดพร้อมรับคำสั่ง

  2. ไปที่ไดเรกทอรีด้วยดิสก์เสมือนที่คุณต้องการปรับขนาด ตัวอย่างเช่น:

    cd "My VMs"
  3. สร้างดิสก์ VirtualBox ใหม่ด้วยชื่อไฟล์ขนาด (เป็นเมกะไบต์) และรูปแบบที่คุณต้องการStandard(ไดนามิก (ไดนามิก) หรือFixed) ตัวอย่างเช่นในการสร้างดิสก์ที่มีรูปแบบคงที่ 50 GB ชื่อMyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed

    หากVBoxManageไม่รู้จักเป็นคำสั่งให้ระบุพา ธ แบบเต็มไปยังคำสั่งนั้น มันสามารถพบได้ในไดเรกทอรีการติดตั้ง VirtualBox บน Windows คำสั่งดังกล่าวจะกลายเป็น:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
  4. คัดลอกดิสก์ดั้งเดิมไปยังดิสก์ใหม่

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. ปรับขนาดเสร็จแล้ว! คุณสามารถตรวจสอบคุณสมบัติของดิสก์ใหม่ได้หากต้องการ:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. เปลี่ยนเครื่องเสมือนเพื่อใช้ดิสก์ใหม่แทน

ถัดไปในระบบปฏิบัติการแขกของคุณคุณจะต้องปรับขนาดพาร์ติชันเพื่อใช้พื้นที่ว่างที่มีใหม่


3

ฉันมาที่นี่เพราะฉันต้องการปรับขนาดดิสก์สำหรับสภาพแวดล้อมการพัฒนา Docker (CoreOS) ของฉัน

เอกสาร CoreOS กล่าวว่าไม่จำเป็นต้องปรับขนาดพาร์ติชันระบบปฏิบัติการ - นั่นเป็นการหลอกลวง หลังจากปรับขนาดดิสก์เสมือนคุณควรทำตามคำแนะนำเหล่านี้และปรับขนาดพาร์ติชันระบบปฏิบัติการผ่าน GParted:

https://docs.docker.com/articles/b2d_volume_resize/


3

ตัวเลือกที่ง่ายและรวดเร็ว:

  1. ปิดเครื่อง
  2. สร้างดิสก์กล่องเสมือนใหม่ด้วยขนาดที่ต้องการ
  3. ย้ายเนื้อหาจากดิสก์เก่าไปยังดิสก์ใหม่:

    vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
    
  4. เปิดเครื่อง

  5. คุณอาจต้องปรับขนาดพาร์ติชันในระบบปฏิบัติการเพื่อเติมส่วนที่เหลือของดิสก์

คำเตือน

หากดิสก์ใหม่สั้นกว่าต้นฉบับคุณจะสูญเสียข้อมูลที่อยู่จากตำแหน่งขนาดดิสก์ใหม่บนดิสก์ต้นทาง

คุณสามารถป้องกันการจัดสรรพื้นที่เดลต้านี้โดยที่ delta = size (ดิสก์ต้นทาง) - ขนาด (ดิสก์ใหม่) ที่ส่วนท้ายของดิสก์ต้นทางภายใน OS ก่อนขั้นตอนที่ 1


0

ทิ้งมันไปและเริ่มใหม่อีกครั้ง ละเว้นคำตอบทั้งหมดเหล่านี้ - อย่าเสียเวลาของคุณ


ตกลงดังนั้นคุณจะเริ่มต้น VM ด้วยไดรฟ์ที่มีขนาดใหญ่ขึ้นได้อย่างไรเช่นจาก Vagrant
Chris L. Barnes

-4

ดาวน์โหลด / ติดตั้ง / ใช้ VMWare Workstation และสร้าง VM ใหม่ตามไฟล์ vmdk ปัจจุบันของคุณจากนั้นคุณสามารถปรับขนาด vmdk ของคุณ สำหรับรายละเอียดเกี่ยวกับเรื่องนี้ google สำหรับ VMware


-4

เพียงคุณต้องทำตามขั้นตอนต่อไปนี้:

  1. ปิดเครื่องของคุณ
  2. คลิกขวาที่ชื่อเครื่องเสมือน> การตั้งค่า> ที่เก็บข้อมูล
  3. คลิกที่คอนโทรลเลอร์: SATA> เพิ่มฮาร์ดดิสก์
  4. เลือกขนาดชนิดของฮาร์ดดิสก์ไดรฟ์ใหม่แล้วกดสร้าง
  5. ยกเลิกสถานะเครื่อง
  6. ใส่ Ubuntu Live CD
  7. Boot จาก ubuntu live cd
  8. เปิด "gparted" (ติดตั้งแล้วไม่จำเป็นต้องติดตั้ง)
  9. ตรวจสอบว่าระบบเห็นฮาร์ดดิสก์ที่คุณสร้างขึ้นใหม่หรือไม่
  10. เปิด Terminal
  11. พิมพ์รหัสต่อไปนี้
  12. sudo dd if = / dev / sda ของ = / dev / sdb (อันแรกคือพา ธ พาร์ติชั่นเก่าอันที่สองคือพา ธ พาร์ติชั่นใหม่)
  13. รอจนกว่าจะเสร็จสิ้นการคัดลอกข้อมูล (ขั้นตอนนี้อาจใช้เวลาสักครู่ตามข้อกำหนดโฮสต์ของคุณ)
  14. หลังจากคัดลอกเสร็จแล้วให้กลับไปที่ gparted และเลือกรีเฟรชอุปกรณ์
  15. เลือกพาร์ติชั่นใหม่ / dev / sdb โดยจะต้องเป็นพาร์ติชั่นเก่าหลังจากทำคำสั่ง dd
  16. มันจะแสดงพื้นที่ที่ขยายเป็นข้อมูลที่ไม่ได้จัดสรร
  17. ลบการสลับพาร์ติชัน / พาร์ติชันเสริม
  18. คลิกขวาที่รูทพาร์ติชัน / dev / sdb> ปรับขนาด
  19. จัดสรรพื้นที่ทั้งหมดโดยไม่ต้องจัดสรร swap
  20. สร้างพาร์ติชันเสริมใหม่> เลือกเพิ่มเติม> สร้าง
  21. สร้างพาร์ติชัน linux-swap ใหม่> เลือก linux-swap> สร้าง
  22. ตอนนี้ปิดเครื่องที่ทำงานอยู่
  23. คลิกขวาที่เครื่อง> การตั้งค่า> ที่เก็บข้อมูล
  24. เปิดซีดี Ubuntu ออก
  25. คลิกขวาที่ฮาร์ดดิสก์เก่า> ลบไฟล์แนบ
  26. ตอนนี้คุณสามารถเริ่ม vm จากฮาร์ดดิสก์ที่สร้างขึ้นใหม่
  27. ตรวจสอบที่เก็บข้อมูลโดยป้อนคำสั่ง df -kh
  28. มันจะต้องแสดงขนาดใหม่ให้คุณเห็น

ขอแสดงความยินดีเพลิดเพลินกับพื้นที่ว่างของคุณ
วิดีโอนี้จะช่วยคุณ: https://youtu.be/ikSIDI535L0


ใช่แน่นอนสำหรับ UBUNTU
Mohammad Nimer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.