เป็นไปได้หรือไม่ที่จะแปลงเครื่องเสมือนเป็นสภาพแวดล้อมทางกายภาพ?


78

เป็นไปได้ที่จะแปลงไฟล์. vdi เป็น. iso ที่สามารถเบิร์นเป็น cd หรือ dvd และทำให้มันเหมือนตัวติดตั้ง หรือเป็นไปได้ที่จะแปลงเครื่องเสมือนเป็นสภาพแวดล้อมจริงหรือไม่?


1
คำตอบบน AskUbuntu.com นี้อาจนำไปใช้กับสภาพแวดล้อมจำนวนมากที่ทำงานบนเครื่องโฮสต์ Linux: askubuntu.com/a/32506/31592
blong

คำตอบ:


64

ใช่และไม่.

คุณสามารถแปลง VDI เป็นดิสก์อิมเมจด้วยเครื่องมือVBoxManage คำสั่งนี้โคลนภาพดิสก์เสมือนที่ลงทะเบียนไว้กับไฟล์ภาพอื่น หากคุณต้องการแปลงดิสก์เสมือนเป็นรูปแบบอื่นนี่เป็นเครื่องมือ VirtualBox อย่างเป็นทางการที่จะใช้ [*]

VBoxManage clonehd file.vdi output.img --format RAW
  • หากคุณใช้ VDI แบบไดนามิกและคุณมี VirtualBox เวอร์ชันเก่ากว่าclonehdอาจทำงานไม่ถูกต้อง เครื่องมือคำสั่งภายในของ VBoxManage รวมถึงconverttorawซึ่งสามารถแปลง VDI แบบไดนามิกเป็นอิมเมจดิสก์ดิบ ( ต้นฉบับ ) [+]

VBoxManage internalcommands converttoraw file.vdi output.img

แต่ ... ไฟล์ IMG เอาต์พุตนั้นไม่ใช่อิมเมจ ISO และระบบปฏิบัติการที่ติดตั้งจะไม่ได้รับการกำหนดค่าให้เรียกใช้จากซีดี / ดีวีดีที่สามารถบู๊ตได้ คุณสามารถ "เบิร์น" (เขียน) IMG ลงบนฮาร์ดไดรฟ์และอาจบู๊ตบนฮาร์ดแวร์เปล่า (เช่นไม่ได้อยู่ในเครื่องเสมือน) แต่อาจไม่เพราะระบบปฏิบัติการที่ติดตั้งบน IMG นั้นคาดว่าจะเห็นฮาร์ดแวร์เสมือนที่ VirtualBox ให้บริการและคุณกำลังบูตด้วยฮาร์ดแวร์จริงที่ไม่ได้คาดหวัง

Windows บางรุ่นไม่รองรับสถานการณ์นี้ได้ดี ลีนุกซ์บางรุ่นทำ บางครั้งเป็นไปได้ที่จะกำหนดค่า OS (ล่วงหน้าหรือหลัง) เพื่อโยกย้ายจากสภาพแวดล้อมหนึ่งไปยังอีกเช่นนี้ แต่ขั้นตอนเฉพาะขึ้นอยู่กับระบบปฏิบัติการที่ถูกโยกย้าย


บน Windows คุณอาจต้องระบุเส้นทางแบบเต็มไปยังโปรแกรม:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

เพิ่มC: \ Program Files \ Sun \ VirtualBoxไปยัง PATH ของคุณเพื่อใช้เวอร์ชันย่อ


[*]ฉันสมมติว่าตัวเลือก"- ฟอร์แมต RAW"จะแปลงเป็นดิสก์อิมเมจมาตรฐานราวกับว่าคุณใช้คำสั่งddบนฮาร์ดไดรฟ์ทางกายภาพ แต่ตรงไปตรงมาฉันไม่พบเอกสารใด ๆ ที่สนับสนุนสิ่งนี้ดังนั้นโปรดทราบว่านี่อาจไม่ถูกต้อง

[+]ฉันเพิ่งทดสอบทั้งคำสั่งภายใต้ VirtualBox 3.1.2 ไฟล์เอาต์พุตทั้งสองเหมือนกันตามmd5sumแต่ฉันยังไม่ได้ทดสอบไฟล์เอาต์พุตอย่างสมบูรณ์

ดูเพิ่มเติมบทช่วยสอน"All about VDIs"ที่ฟอรัม VirtualBox


3
ขนาดของ VDI มีขนาดเท่าไหร่? มันเป็นเรื่องสำคัญไหม สมมติว่าขนาด VDI คือ 20GB และขนาด HDD ที่แท้จริงคือ 200GB ... จะเกิดอะไรขึ้น
Pwnna

วิธีแรก "clonehd" ดูเหมือนว่าช้าอย่างน่ากลัว แต่ที่สองทำงานรักษา
แมตต์ H

1
นอกจากนี้โปรดทราบว่าหากคุณจัดการเพื่อให้ windows os สามารถบู๊ตได้คุณจะต้องเปิดใช้งานระบบใหม่ในกรณีส่วนใหญ่
Kimmax

ถ้าคุณต้องsysprep /generalizeติดตั้งเวอร์ชวลก่อนล่ะ สิ่งนี้จะเตรียมการติดตั้งที่จะติดตั้งบนฮาร์ดแวร์ใหม่ (หรือฮาร์ดแวร์จริงในกรณีนี้)
Robula

1
@Pwnna คุณกำลังคัดลอก img ของฮาร์ดดิสก์ (ไม่ใช่แค่พาร์ติชั่น แต่เป็นพาร์ติชั่นแผนที่ทั้งหมดที่มีพาร์ติชั่น) ฉันเคยทำสิ่งนี้ในอดีตและจำได้ว่าเห็นคำตอบนี้พื้นที่ที่ไม่ได้ใช้ / ไม่ได้แบ่งในตอนท้าย: serverfault.com/questions/268889/…
sudo

21

หากไฟล์ vdi ของคุณมีพาร์ติชั่นและคุณต้องการแยกพาร์ติชั่นเพียงหนึ่งอันใช้สิ่งต่อไปนี้:

ก่อนอื่นตามที่ quack quixote ได้กล่าวไว้ก่อนหน้านี้ให้แปลงไฟล์ vdi เป็นไฟล์ภาพดิบ:

# VBoxManage clonehd file.vdi file.raw --format RAW

จากนั้นตั้งค่าอุปกรณ์ลูปสำหรับภาพ:

# loopdev=$(losetup --show -r -f file.raw)

ใช้ kpartx เพื่อสร้างอุปกรณ์สำหรับแต่ละพาร์ติชันในไฟล์ raw:

# apt-get install kpartx
# kpartx -a $loopdev

ดูอุปกรณ์ที่เรามีตอนนี้ ในตัวอย่างนี้มีเพียงหนึ่งอุปกรณ์เท่านั้นเนื่องจากมีเพียงพาร์ติชันเดียวในอิมเมจ raw:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

ตอนนี้เมานต์เพื่อยืนยันว่าทำงานได้อย่างถูกต้อง:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

ใช้ dd เพื่อคัดลอกเนื้อหาพาร์ติชันไปยังพาร์ติชันเป้าหมายอื่น:

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

หลังจากเสร็จสิ้นการลบการแมปอุปกรณ์อีกครั้ง:

# kpartx -d file.raw

เป็นไปได้กับ Windows?
Ehsan

13

คำตอบคือแน่นอนใช่ในกรณีที่โฮสต์และระบบแขกของคุณเป็น Linux มันทำกับแพคเกจและqemu TKLPatchคุณสามารถใช้ไฟล์ VDI หรือ VMDK

อ่านเพิ่มเติม:


3
1 "แน่นอน"มีข้อแม้"..as ยาวในฐานะแขกของคุณลินุกซ์" และโซลูชัน (ของคุณ) นั้นขึ้นอยู่กับเครื่องมือ TurnKey Linux บางตัว แต่ขั้นตอนดูเสียง (ยินดีต้อนรับสู่ Super User!)
ต้มตุ๋น quixote

5

ฉันลองVBoxManage clonehd file.vdi output.img --format RAWจากคำตอบที่ยอมรับแต่ไม่ประสบความสำเร็จมาก

สิ่งที่ทำงานกับฉันด้วยเครื่องเสมือน Windows 8.1 บนโฮสต์ Windows 7 คือ:

  1. สร้างเครื่อง Windows 8.1 ใน VirtualBox ติดตั้งและใช้งานได้ตามปกติกับ VM
  2. แปลง Virtual .vdi ฮาร์ดดิสก์เป็น Windows VHDด้วยVBoxManage clonehd source.vdi target.vhd --format vhd
  3. เมานต์ VHD ในเครื่องโฮสต์ Windowsเป็นไดรฟ์ (คุณสามารถเมานต์ VHD ในตัวจัดการดิสก์ในการจัดการคอมพิวเตอร์
  4. โคลน VHD (ที่เมาท์เป็นไดรฟ์) ไปยังฮาร์ดดิสก์ใหม่ (USB แบบพกพาสำหรับแล็ปท็อป HD ในกรณีของฉัน) DriveImage XMLหรือเครื่องมือโคลนดิสก์ที่คล้ายกัน ตอนนี้คุณได้โคลนฮาร์ดไดรฟ์. vdi กับโลหะเปลือยแล้ว
  5. ติดตั้งฮาร์ดดิสก์ใหม่ในเครื่อง (ในกรณีของฉันสลับ HDD ของแล็ปท็อป)
  6. ใส่ Windows 8.1 ติดตั้ง USB / CD บูตจากนั้นเลือกตัวเลือกขั้นสูงและซ่อมอัตโนมัติ การซ่อมแซมอัตโนมัติจะทำให้ฮาร์ดดิสก์ใหม่สามารถบู๊ตได้
  7. บูตจากฮาร์ดดิสก์ใหม่ที่มี Windows 8.1 และเรียกใช้ Windows Update นี่จะดาวน์โหลดไดรเวอร์สำหรับฮาร์ดแวร์ของคอมพิวเตอร์ของคุณซึ่งไม่ทราบว่าเมื่อคุณใช้ Windows ใน VirtualBox คุณจะต้องติดตั้งไดรเวอร์ที่ขาดหายไปด้วยตนเองถ้ามี
  8. ถอนการติดตั้ง VirtualBox Guest Additions เลือกติดตั้ง VirtualBox เพื่อให้โลหะเปลือยของคุณ Windows 8.1 สามารถเป็นโฮสต์ VirtualBox

1
จาก @sum: คุณสามารถลองBootICEเพื่อแทนที่ขั้นตอนที่ 6 และให้แน่ใจว่าได้ติดตั้ง MBR ที่ถูกต้อง
fixer1234

ขอบคุณ BootICE มีความน่าเชื่อถือในบางวัดมากกว่าการติดตั้ง Windows 8.1 หรือไม่ ขั้นตอนที่ 6 ฉันจะอธิบาย MBR อาจทำให้สับสนหรือไม่
Jan H

1
โพสต์นี้เป็นคำตอบของผู้ใช้ใหม่ (ฉันเชื่อว่าsuperuser.com/users/523958/sum ) มันจะถูกลบเพราะมันไม่ได้มีคุณสมบัติเป็นคำตอบดังนั้นฉันจึงคัดลอกโพสต์และบันทึกเป็นความคิดเห็นเพื่อที่ว่าจะไม่สูญหาย ฉันไม่คุ้นเคยกับมันเป็นการส่วนตัว
fixer1234

3

ฉันทำกระบวนการนี้อย่างรวดเร็วด้วยเพียงสองบรรทัดคำสั่งใน Linux:

#VBoxManage คำสั่งภายใน converttoraw your_disk_virtual.vmdk your_disk_virtual.img

หรือ

#VBoxManage คำสั่งภายใน converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

บทความเต็มของฉัน: http://www.previsioni.com.br/jailsonjan/?p=389


.img ในกรณีนี้จะสามารถบูตได้หรือไม่
Pumphouse

ฉันคิดว่าไม่ ฉันเห็นคำตอบที่คล้ายกันจากผู้ใช้ 0-rep ซึ่งดูเหมือนจะเป็นวิธีที่ง่าย แต่กลับกลายเป็นว่าไร้ประโยชน์
T.Todua

0

ใช้คำสั่งต่อไปนี้เพื่อแปลง:

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

นี่คือผลลัพธ์:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.